From f157d56c01891b4b0c4a83da758c28cd629b3dd5 Mon Sep 17 00:00:00 2001
From: Greg Wilson <greg.wilson@plot.ly>
Date: Wed, 21 May 2025 09:05:44 -0400
Subject: [PATCH] fix: re-instating TYPE_CHECKING to address type-checking
 issues

1.  Restore `TYPE_CHECKING` code clauses in `codegen/__init__.py` and `codegen/utils.py`
    that were removed in #4978.
1.  Update `requires-optional.txt` to specify `black==25.1.0` to be consistent with
    version specified in `pyproject.toml`.
1.  Change required Python version in `pyproject.toml` to 3.9 because desired version
    of `black` does not work with Python 3.8.

closes #5186
---
 codegen/__init__.py                           |    40 +-
 codegen/utils.py                              |    16 +-
 plotly/graph_objects/__init__.py              |   442 +-
 plotly/graph_objs/__init__.py                 |   315 +-
 plotly/graph_objs/_barpolar.py                |   476 +-
 plotly/graph_objs/_box.py                     |   827 +-
 plotly/graph_objs/_candlestick.py             |   494 +-
 plotly/graph_objs/_carpet.py                  |   386 +-
 plotly/graph_objs/_choropleth.py              |   485 +-
 plotly/graph_objs/_choroplethmap.py           |   485 +-
 plotly/graph_objs/_choroplethmapbox.py        |   485 +-
 plotly/graph_objs/_cone.py                    |   602 +-
 plotly/graph_objs/_contour.py                 |   710 +-
 plotly/graph_objs/_contourcarpet.py           |   539 +-
 plotly/graph_objs/_densitymap.py              |   476 +-
 plotly/graph_objs/_densitymapbox.py           |   476 +-
 plotly/graph_objs/_deprecations.py            |   632 +-
 plotly/graph_objs/_figure.py                  | 12686 ++++++++-------
 plotly/graph_objs/_figurewidget.py            | 12690 ++++++++--------
 plotly/graph_objs/_frame.py                   |    88 +-
 plotly/graph_objs/_funnel.py                  |   647 +-
 plotly/graph_objs/_funnelarea.py              |   467 +-
 plotly/graph_objs/_heatmap.py                 |   692 +-
 plotly/graph_objs/_histogram.py               |   647 +-
 plotly/graph_objs/_histogram2d.py             |   620 +-
 plotly/graph_objs/_histogram2dcontour.py      |   629 +-
 plotly/graph_objs/_icicle.py                  |   494 +-
 plotly/graph_objs/_image.py                   |   490 +-
 plotly/graph_objs/_indicator.py               |   260 +-
 plotly/graph_objs/_isosurface.py              |   593 +-
 plotly/graph_objs/_layout.py                  |  1046 +-
 plotly/graph_objs/_mesh3d.py                  |   683 +-
 plotly/graph_objs/_ohlc.py                    |   494 +-
 plotly/graph_objs/_parcats.py                 |   260 +-
 plotly/graph_objs/_parcoords.py               |   278 +-
 plotly/graph_objs/_pie.py                     |   530 +-
 plotly/graph_objs/_sankey.py                  |   287 +-
 plotly/graph_objs/_scatter.py                 |   719 +-
 plotly/graph_objs/_scatter3d.py               |   548 +-
 plotly/graph_objs/_scattercarpet.py           |   503 +-
 plotly/graph_objs/_scattergeo.py              |   512 +-
 plotly/graph_objs/_scattergl.py               |   620 +-
 plotly/graph_objs/_scattermap.py              |   476 +-
 plotly/graph_objs/_scattermapbox.py           |   476 +-
 plotly/graph_objs/_scatterpolar.py            |   530 +-
 plotly/graph_objs/_scatterpolargl.py          |   512 +-
 plotly/graph_objs/_scattersmith.py            |   485 +-
 plotly/graph_objs/_scatterternary.py          |   512 +-
 plotly/graph_objs/_splom.py                   |   413 +-
 plotly/graph_objs/_streamtube.py              |   584 +-
 plotly/graph_objs/_sunburst.py                |   485 +-
 plotly/graph_objs/_surface.py                 |   575 +-
 plotly/graph_objs/_table.py                   |   278 +-
 plotly/graph_objs/_treemap.py                 |   485 +-
 plotly/graph_objs/_violin.py                  |   624 +-
 plotly/graph_objs/_volume.py                  |   602 +-
 plotly/graph_objs/_waterfall.py               |   710 +-
 plotly/graph_objs/bar/__init__.py             |    44 +-
 plotly/graph_objs/bar/_error_x.py             |   178 +-
 plotly/graph_objs/bar/_error_y.py             |   169 +-
 plotly/graph_objs/bar/_hoverlabel.py          |   124 +-
 plotly/graph_objs/bar/_insidetextfont.py      |   205 +-
 plotly/graph_objs/bar/_legendgrouptitle.py    |    46 +-
 plotly/graph_objs/bar/_marker.py              |   196 +-
 plotly/graph_objs/bar/_outsidetextfont.py     |   205 +-
 plotly/graph_objs/bar/_selected.py            |    46 +-
 plotly/graph_objs/bar/_stream.py              |    46 +-
 plotly/graph_objs/bar/_textfont.py            |   205 +-
 plotly/graph_objs/bar/_unselected.py          |    46 +-
 plotly/graph_objs/bar/hoverlabel/__init__.py  |    13 +-
 plotly/graph_objs/bar/hoverlabel/_font.py     |   205 +-
 .../bar/legendgrouptitle/__init__.py          |    13 +-
 .../graph_objs/bar/legendgrouptitle/_font.py  |   124 +-
 plotly/graph_objs/bar/marker/__init__.py      |    18 +-
 plotly/graph_objs/bar/marker/_colorbar.py     |   484 +-
 plotly/graph_objs/bar/marker/_line.py         |   151 +-
 plotly/graph_objs/bar/marker/_pattern.py      |   151 +-
 .../bar/marker/colorbar/__init__.py           |    20 +-
 .../bar/marker/colorbar/_tickfont.py          |   124 +-
 .../bar/marker/colorbar/_tickformatstop.py    |    98 +-
 .../graph_objs/bar/marker/colorbar/_title.py  |    53 +-
 .../bar/marker/colorbar/title/__init__.py     |    13 +-
 .../bar/marker/colorbar/title/_font.py        |   124 +-
 plotly/graph_objs/bar/selected/__init__.py    |    16 +-
 plotly/graph_objs/bar/selected/_marker.py     |    46 +-
 plotly/graph_objs/bar/selected/_textfont.py   |    39 +-
 plotly/graph_objs/bar/unselected/__init__.py  |    16 +-
 plotly/graph_objs/bar/unselected/_marker.py   |    46 +-
 plotly/graph_objs/bar/unselected/_textfont.py |    39 +-
 plotly/graph_objs/barpolar/__init__.py        |    34 +-
 plotly/graph_objs/barpolar/_hoverlabel.py     |   124 +-
 .../graph_objs/barpolar/_legendgrouptitle.py  |    46 +-
 plotly/graph_objs/barpolar/_marker.py         |   187 +-
 plotly/graph_objs/barpolar/_selected.py       |    46 +-
 plotly/graph_objs/barpolar/_stream.py         |    46 +-
 plotly/graph_objs/barpolar/_unselected.py     |    46 +-
 .../barpolar/hoverlabel/__init__.py           |    13 +-
 .../graph_objs/barpolar/hoverlabel/_font.py   |   205 +-
 .../barpolar/legendgrouptitle/__init__.py     |    13 +-
 .../barpolar/legendgrouptitle/_font.py        |   124 +-
 plotly/graph_objs/barpolar/marker/__init__.py |    18 +-
 .../graph_objs/barpolar/marker/_colorbar.py   |   484 +-
 plotly/graph_objs/barpolar/marker/_line.py    |   151 +-
 plotly/graph_objs/barpolar/marker/_pattern.py |   151 +-
 .../barpolar/marker/colorbar/__init__.py      |    20 +-
 .../barpolar/marker/colorbar/_tickfont.py     |   124 +-
 .../marker/colorbar/_tickformatstop.py        |    98 +-
 .../barpolar/marker/colorbar/_title.py        |    53 +-
 .../marker/colorbar/title/__init__.py         |    13 +-
 .../barpolar/marker/colorbar/title/_font.py   |   124 +-
 .../graph_objs/barpolar/selected/__init__.py  |    16 +-
 .../graph_objs/barpolar/selected/_marker.py   |    46 +-
 .../graph_objs/barpolar/selected/_textfont.py |    39 +-
 .../barpolar/unselected/__init__.py           |    16 +-
 .../graph_objs/barpolar/unselected/_marker.py |    46 +-
 .../barpolar/unselected/_textfont.py          |    39 +-
 plotly/graph_objs/box/__init__.py             |    36 +-
 plotly/graph_objs/box/_hoverlabel.py          |   124 +-
 plotly/graph_objs/box/_legendgrouptitle.py    |    46 +-
 plotly/graph_objs/box/_line.py                |    46 +-
 plotly/graph_objs/box/_marker.py              |   106 +-
 plotly/graph_objs/box/_selected.py            |    39 +-
 plotly/graph_objs/box/_stream.py              |    46 +-
 plotly/graph_objs/box/_unselected.py          |    39 +-
 plotly/graph_objs/box/hoverlabel/__init__.py  |    13 +-
 plotly/graph_objs/box/hoverlabel/_font.py     |   205 +-
 .../box/legendgrouptitle/__init__.py          |    13 +-
 .../graph_objs/box/legendgrouptitle/_font.py  |   124 +-
 plotly/graph_objs/box/marker/__init__.py      |    13 +-
 plotly/graph_objs/box/marker/_line.py         |    68 +-
 plotly/graph_objs/box/selected/__init__.py    |    13 +-
 plotly/graph_objs/box/selected/_marker.py     |    53 +-
 plotly/graph_objs/box/unselected/__init__.py  |    13 +-
 plotly/graph_objs/box/unselected/_marker.py   |    53 +-
 plotly/graph_objs/candlestick/__init__.py     |    33 +-
 plotly/graph_objs/candlestick/_decreasing.py  |    46 +-
 plotly/graph_objs/candlestick/_hoverlabel.py  |   133 +-
 plotly/graph_objs/candlestick/_increasing.py  |    46 +-
 .../candlestick/_legendgrouptitle.py          |    46 +-
 plotly/graph_objs/candlestick/_line.py        |    39 +-
 plotly/graph_objs/candlestick/_stream.py      |    46 +-
 .../candlestick/decreasing/__init__.py        |    13 +-
 .../candlestick/decreasing/_line.py           |    46 +-
 .../candlestick/hoverlabel/__init__.py        |    13 +-
 .../candlestick/hoverlabel/_font.py           |   205 +-
 .../candlestick/increasing/__init__.py        |    13 +-
 .../candlestick/increasing/_line.py           |    46 +-
 .../candlestick/legendgrouptitle/__init__.py  |    13 +-
 .../candlestick/legendgrouptitle/_font.py     |   124 +-
 plotly/graph_objs/carpet/__init__.py          |    30 +-
 plotly/graph_objs/carpet/_aaxis.py            |   599 +-
 plotly/graph_objs/carpet/_baxis.py            |   599 +-
 plotly/graph_objs/carpet/_font.py             |   124 +-
 plotly/graph_objs/carpet/_legendgrouptitle.py |    46 +-
 plotly/graph_objs/carpet/_stream.py           |    46 +-
 plotly/graph_objs/carpet/aaxis/__init__.py    |    20 +-
 plotly/graph_objs/carpet/aaxis/_tickfont.py   |   124 +-
 .../carpet/aaxis/_tickformatstop.py           |    98 +-
 plotly/graph_objs/carpet/aaxis/_title.py      |    53 +-
 .../graph_objs/carpet/aaxis/title/__init__.py |    13 +-
 plotly/graph_objs/carpet/aaxis/title/_font.py |   124 +-
 plotly/graph_objs/carpet/baxis/__init__.py    |    20 +-
 plotly/graph_objs/carpet/baxis/_tickfont.py   |   124 +-
 .../carpet/baxis/_tickformatstop.py           |    98 +-
 plotly/graph_objs/carpet/baxis/_title.py      |    53 +-
 .../graph_objs/carpet/baxis/title/__init__.py |    13 +-
 plotly/graph_objs/carpet/baxis/title/_font.py |   124 +-
 .../carpet/legendgrouptitle/__init__.py       |    13 +-
 .../carpet/legendgrouptitle/_font.py          |   124 +-
 plotly/graph_objs/choropleth/__init__.py      |    44 +-
 plotly/graph_objs/choropleth/_colorbar.py     |   484 +-
 plotly/graph_objs/choropleth/_hoverlabel.py   |   124 +-
 .../choropleth/_legendgrouptitle.py           |    46 +-
 plotly/graph_objs/choropleth/_marker.py       |    53 +-
 plotly/graph_objs/choropleth/_selected.py     |    39 +-
 plotly/graph_objs/choropleth/_stream.py       |    46 +-
 plotly/graph_objs/choropleth/_unselected.py   |    39 +-
 .../choropleth/colorbar/__init__.py           |    20 +-
 .../choropleth/colorbar/_tickfont.py          |   124 +-
 .../choropleth/colorbar/_tickformatstop.py    |    98 +-
 .../graph_objs/choropleth/colorbar/_title.py  |    53 +-
 .../choropleth/colorbar/title/__init__.py     |    13 +-
 .../choropleth/colorbar/title/_font.py        |   124 +-
 .../choropleth/hoverlabel/__init__.py         |    13 +-
 .../graph_objs/choropleth/hoverlabel/_font.py |   205 +-
 .../choropleth/legendgrouptitle/__init__.py   |    13 +-
 .../choropleth/legendgrouptitle/_font.py      |   124 +-
 .../graph_objs/choropleth/marker/__init__.py  |    13 +-
 plotly/graph_objs/choropleth/marker/_line.py  |    62 +-
 .../choropleth/selected/__init__.py           |    13 +-
 .../graph_objs/choropleth/selected/_marker.py |    39 +-
 .../choropleth/unselected/__init__.py         |    13 +-
 .../choropleth/unselected/_marker.py          |    39 +-
 plotly/graph_objs/choroplethmap/__init__.py   |    44 +-
 plotly/graph_objs/choroplethmap/_colorbar.py  |   484 +-
 .../graph_objs/choroplethmap/_hoverlabel.py   |   124 +-
 .../choroplethmap/_legendgrouptitle.py        |    46 +-
 plotly/graph_objs/choroplethmap/_marker.py    |    53 +-
 plotly/graph_objs/choroplethmap/_selected.py  |    39 +-
 plotly/graph_objs/choroplethmap/_stream.py    |    46 +-
 .../graph_objs/choroplethmap/_unselected.py   |    39 +-
 .../choroplethmap/colorbar/__init__.py        |    20 +-
 .../choroplethmap/colorbar/_tickfont.py       |   124 +-
 .../choroplethmap/colorbar/_tickformatstop.py |    98 +-
 .../choroplethmap/colorbar/_title.py          |    53 +-
 .../choroplethmap/colorbar/title/__init__.py  |    13 +-
 .../choroplethmap/colorbar/title/_font.py     |   124 +-
 .../choroplethmap/hoverlabel/__init__.py      |    13 +-
 .../choroplethmap/hoverlabel/_font.py         |   205 +-
 .../legendgrouptitle/__init__.py              |    13 +-
 .../choroplethmap/legendgrouptitle/_font.py   |   124 +-
 .../choroplethmap/marker/__init__.py          |    13 +-
 .../graph_objs/choroplethmap/marker/_line.py  |    62 +-
 .../choroplethmap/selected/__init__.py        |    13 +-
 .../choroplethmap/selected/_marker.py         |    39 +-
 .../choroplethmap/unselected/__init__.py      |    13 +-
 .../choroplethmap/unselected/_marker.py       |    39 +-
 .../graph_objs/choroplethmapbox/__init__.py   |    44 +-
 .../graph_objs/choroplethmapbox/_colorbar.py  |   484 +-
 .../choroplethmapbox/_hoverlabel.py           |   124 +-
 .../choroplethmapbox/_legendgrouptitle.py     |    46 +-
 plotly/graph_objs/choroplethmapbox/_marker.py |    53 +-
 .../graph_objs/choroplethmapbox/_selected.py  |    39 +-
 plotly/graph_objs/choroplethmapbox/_stream.py |    46 +-
 .../choroplethmapbox/_unselected.py           |    39 +-
 .../choroplethmapbox/colorbar/__init__.py     |    20 +-
 .../choroplethmapbox/colorbar/_tickfont.py    |   124 +-
 .../colorbar/_tickformatstop.py               |    98 +-
 .../choroplethmapbox/colorbar/_title.py       |    53 +-
 .../colorbar/title/__init__.py                |    13 +-
 .../choroplethmapbox/colorbar/title/_font.py  |   124 +-
 .../choroplethmapbox/hoverlabel/__init__.py   |    13 +-
 .../choroplethmapbox/hoverlabel/_font.py      |   205 +-
 .../legendgrouptitle/__init__.py              |    13 +-
 .../legendgrouptitle/_font.py                 |   124 +-
 .../choroplethmapbox/marker/__init__.py       |    13 +-
 .../choroplethmapbox/marker/_line.py          |    62 +-
 .../choroplethmapbox/selected/__init__.py     |    13 +-
 .../choroplethmapbox/selected/_marker.py      |    39 +-
 .../choroplethmapbox/unselected/__init__.py   |    13 +-
 .../choroplethmapbox/unselected/_marker.py    |    39 +-
 plotly/graph_objs/cone/__init__.py            |    32 +-
 plotly/graph_objs/cone/_colorbar.py           |   484 +-
 plotly/graph_objs/cone/_hoverlabel.py         |   124 +-
 plotly/graph_objs/cone/_legendgrouptitle.py   |    46 +-
 plotly/graph_objs/cone/_lighting.py           |   106 +-
 plotly/graph_objs/cone/_lightposition.py      |    53 +-
 plotly/graph_objs/cone/_stream.py             |    46 +-
 plotly/graph_objs/cone/colorbar/__init__.py   |    20 +-
 plotly/graph_objs/cone/colorbar/_tickfont.py  |   124 +-
 .../cone/colorbar/_tickformatstop.py          |    98 +-
 plotly/graph_objs/cone/colorbar/_title.py     |    53 +-
 .../cone/colorbar/title/__init__.py           |    13 +-
 .../graph_objs/cone/colorbar/title/_font.py   |   124 +-
 plotly/graph_objs/cone/hoverlabel/__init__.py |    13 +-
 plotly/graph_objs/cone/hoverlabel/_font.py    |   205 +-
 .../cone/legendgrouptitle/__init__.py         |    13 +-
 .../graph_objs/cone/legendgrouptitle/_font.py |   124 +-
 plotly/graph_objs/contour/__init__.py         |    35 +-
 plotly/graph_objs/contour/_colorbar.py        |   484 +-
 plotly/graph_objs/contour/_contours.py        |   142 +-
 plotly/graph_objs/contour/_hoverlabel.py      |   124 +-
 .../graph_objs/contour/_legendgrouptitle.py   |    46 +-
 plotly/graph_objs/contour/_line.py            |    62 +-
 plotly/graph_objs/contour/_stream.py          |    46 +-
 plotly/graph_objs/contour/_textfont.py        |   124 +-
 .../graph_objs/contour/colorbar/__init__.py   |    20 +-
 .../graph_objs/contour/colorbar/_tickfont.py  |   124 +-
 .../contour/colorbar/_tickformatstop.py       |    98 +-
 plotly/graph_objs/contour/colorbar/_title.py  |    53 +-
 .../contour/colorbar/title/__init__.py        |    13 +-
 .../contour/colorbar/title/_font.py           |   124 +-
 .../graph_objs/contour/contours/__init__.py   |    13 +-
 .../graph_objs/contour/contours/_labelfont.py |   124 +-
 .../graph_objs/contour/hoverlabel/__init__.py |    13 +-
 plotly/graph_objs/contour/hoverlabel/_font.py |   205 +-
 .../contour/legendgrouptitle/__init__.py      |    13 +-
 .../contour/legendgrouptitle/_font.py         |   124 +-
 plotly/graph_objs/contourcarpet/__init__.py   |    30 +-
 plotly/graph_objs/contourcarpet/_colorbar.py  |   484 +-
 plotly/graph_objs/contourcarpet/_contours.py  |   142 +-
 .../contourcarpet/_legendgrouptitle.py        |    46 +-
 plotly/graph_objs/contourcarpet/_line.py      |    62 +-
 plotly/graph_objs/contourcarpet/_stream.py    |    46 +-
 .../contourcarpet/colorbar/__init__.py        |    20 +-
 .../contourcarpet/colorbar/_tickfont.py       |   124 +-
 .../contourcarpet/colorbar/_tickformatstop.py |    98 +-
 .../contourcarpet/colorbar/_title.py          |    53 +-
 .../contourcarpet/colorbar/title/__init__.py  |    13 +-
 .../contourcarpet/colorbar/title/_font.py     |   124 +-
 .../contourcarpet/contours/__init__.py        |    13 +-
 .../contourcarpet/contours/_labelfont.py      |   124 +-
 .../legendgrouptitle/__init__.py              |    13 +-
 .../contourcarpet/legendgrouptitle/_font.py   |   124 +-
 plotly/graph_objs/densitymap/__init__.py      |    28 +-
 plotly/graph_objs/densitymap/_colorbar.py     |   484 +-
 plotly/graph_objs/densitymap/_hoverlabel.py   |   124 +-
 .../densitymap/_legendgrouptitle.py           |    46 +-
 plotly/graph_objs/densitymap/_stream.py       |    46 +-
 .../densitymap/colorbar/__init__.py           |    20 +-
 .../densitymap/colorbar/_tickfont.py          |   124 +-
 .../densitymap/colorbar/_tickformatstop.py    |    98 +-
 .../graph_objs/densitymap/colorbar/_title.py  |    53 +-
 .../densitymap/colorbar/title/__init__.py     |    13 +-
 .../densitymap/colorbar/title/_font.py        |   124 +-
 .../densitymap/hoverlabel/__init__.py         |    13 +-
 .../graph_objs/densitymap/hoverlabel/_font.py |   205 +-
 .../densitymap/legendgrouptitle/__init__.py   |    13 +-
 .../densitymap/legendgrouptitle/_font.py      |   124 +-
 plotly/graph_objs/densitymapbox/__init__.py   |    28 +-
 plotly/graph_objs/densitymapbox/_colorbar.py  |   484 +-
 .../graph_objs/densitymapbox/_hoverlabel.py   |   124 +-
 .../densitymapbox/_legendgrouptitle.py        |    46 +-
 plotly/graph_objs/densitymapbox/_stream.py    |    46 +-
 .../densitymapbox/colorbar/__init__.py        |    20 +-
 .../densitymapbox/colorbar/_tickfont.py       |   124 +-
 .../densitymapbox/colorbar/_tickformatstop.py |    98 +-
 .../densitymapbox/colorbar/_title.py          |    53 +-
 .../densitymapbox/colorbar/title/__init__.py  |    13 +-
 .../densitymapbox/colorbar/title/_font.py     |   124 +-
 .../densitymapbox/hoverlabel/__init__.py      |    13 +-
 .../densitymapbox/hoverlabel/_font.py         |   205 +-
 .../legendgrouptitle/__init__.py              |    13 +-
 .../densitymapbox/legendgrouptitle/_font.py   |   124 +-
 plotly/graph_objs/funnel/__init__.py          |    37 +-
 plotly/graph_objs/funnel/_connector.py        |    53 +-
 plotly/graph_objs/funnel/_hoverlabel.py       |   124 +-
 plotly/graph_objs/funnel/_insidetextfont.py   |   205 +-
 plotly/graph_objs/funnel/_legendgrouptitle.py |    46 +-
 plotly/graph_objs/funnel/_marker.py           |   178 +-
 plotly/graph_objs/funnel/_outsidetextfont.py  |   205 +-
 plotly/graph_objs/funnel/_stream.py           |    46 +-
 plotly/graph_objs/funnel/_textfont.py         |   205 +-
 .../graph_objs/funnel/connector/__init__.py   |    13 +-
 plotly/graph_objs/funnel/connector/_line.py   |    53 +-
 .../graph_objs/funnel/hoverlabel/__init__.py  |    13 +-
 plotly/graph_objs/funnel/hoverlabel/_font.py  |   205 +-
 .../funnel/legendgrouptitle/__init__.py       |    13 +-
 .../funnel/legendgrouptitle/_font.py          |   124 +-
 plotly/graph_objs/funnel/marker/__init__.py   |    17 +-
 plotly/graph_objs/funnel/marker/_colorbar.py  |   484 +-
 plotly/graph_objs/funnel/marker/_line.py      |   151 +-
 .../funnel/marker/colorbar/__init__.py        |    20 +-
 .../funnel/marker/colorbar/_tickfont.py       |   124 +-
 .../funnel/marker/colorbar/_tickformatstop.py |    98 +-
 .../funnel/marker/colorbar/_title.py          |    53 +-
 .../funnel/marker/colorbar/title/__init__.py  |    13 +-
 .../funnel/marker/colorbar/title/_font.py     |   124 +-
 plotly/graph_objs/funnelarea/__init__.py      |    37 +-
 plotly/graph_objs/funnelarea/_domain.py       |   108 +-
 plotly/graph_objs/funnelarea/_hoverlabel.py   |   124 +-
 .../graph_objs/funnelarea/_insidetextfont.py  |   205 +-
 .../funnelarea/_legendgrouptitle.py           |    46 +-
 plotly/graph_objs/funnelarea/_marker.py       |    62 +-
 plotly/graph_objs/funnelarea/_stream.py       |    46 +-
 plotly/graph_objs/funnelarea/_textfont.py     |   205 +-
 plotly/graph_objs/funnelarea/_title.py        |    53 +-
 .../funnelarea/hoverlabel/__init__.py         |    13 +-
 .../graph_objs/funnelarea/hoverlabel/_font.py |   205 +-
 .../funnelarea/legendgrouptitle/__init__.py   |    13 +-
 .../funnelarea/legendgrouptitle/_font.py      |   124 +-
 .../graph_objs/funnelarea/marker/__init__.py  |    16 +-
 plotly/graph_objs/funnelarea/marker/_line.py  |    62 +-
 .../graph_objs/funnelarea/marker/_pattern.py  |   151 +-
 .../graph_objs/funnelarea/title/__init__.py   |    13 +-
 plotly/graph_objs/funnelarea/title/_font.py   |   205 +-
 plotly/graph_objs/heatmap/__init__.py         |    30 +-
 plotly/graph_objs/heatmap/_colorbar.py        |   484 +-
 plotly/graph_objs/heatmap/_hoverlabel.py      |   124 +-
 .../graph_objs/heatmap/_legendgrouptitle.py   |    46 +-
 plotly/graph_objs/heatmap/_stream.py          |    46 +-
 plotly/graph_objs/heatmap/_textfont.py        |   124 +-
 .../graph_objs/heatmap/colorbar/__init__.py   |    20 +-
 .../graph_objs/heatmap/colorbar/_tickfont.py  |   124 +-
 .../heatmap/colorbar/_tickformatstop.py       |    98 +-
 plotly/graph_objs/heatmap/colorbar/_title.py  |    53 +-
 .../heatmap/colorbar/title/__init__.py        |    13 +-
 .../heatmap/colorbar/title/_font.py           |   124 +-
 .../graph_objs/heatmap/hoverlabel/__init__.py |    13 +-
 plotly/graph_objs/heatmap/hoverlabel/_font.py |   205 +-
 .../heatmap/legendgrouptitle/__init__.py      |    13 +-
 .../heatmap/legendgrouptitle/_font.py         |   124 +-
 plotly/graph_objs/histogram/__init__.py       |    50 +-
 plotly/graph_objs/histogram/_cumulative.py    |    55 +-
 plotly/graph_objs/histogram/_error_x.py       |   178 +-
 plotly/graph_objs/histogram/_error_y.py       |   169 +-
 plotly/graph_objs/histogram/_hoverlabel.py    |   124 +-
 .../graph_objs/histogram/_insidetextfont.py   |   124 +-
 .../graph_objs/histogram/_legendgrouptitle.py |    46 +-
 plotly/graph_objs/histogram/_marker.py        |   196 +-
 .../graph_objs/histogram/_outsidetextfont.py  |   124 +-
 plotly/graph_objs/histogram/_selected.py      |    46 +-
 plotly/graph_objs/histogram/_stream.py        |    46 +-
 plotly/graph_objs/histogram/_textfont.py      |   124 +-
 plotly/graph_objs/histogram/_unselected.py    |    46 +-
 plotly/graph_objs/histogram/_xbins.py         |    53 +-
 plotly/graph_objs/histogram/_ybins.py         |    53 +-
 .../histogram/hoverlabel/__init__.py          |    13 +-
 .../graph_objs/histogram/hoverlabel/_font.py  |   205 +-
 .../histogram/legendgrouptitle/__init__.py    |    13 +-
 .../histogram/legendgrouptitle/_font.py       |   124 +-
 .../graph_objs/histogram/marker/__init__.py   |    18 +-
 .../graph_objs/histogram/marker/_colorbar.py  |   484 +-
 plotly/graph_objs/histogram/marker/_line.py   |   151 +-
 .../graph_objs/histogram/marker/_pattern.py   |   151 +-
 .../histogram/marker/colorbar/__init__.py     |    20 +-
 .../histogram/marker/colorbar/_tickfont.py    |   124 +-
 .../marker/colorbar/_tickformatstop.py        |    98 +-
 .../histogram/marker/colorbar/_title.py       |    53 +-
 .../marker/colorbar/title/__init__.py         |    13 +-
 .../histogram/marker/colorbar/title/_font.py  |   124 +-
 .../graph_objs/histogram/selected/__init__.py |    16 +-
 .../graph_objs/histogram/selected/_marker.py  |    46 +-
 .../histogram/selected/_textfont.py           |    39 +-
 .../histogram/unselected/__init__.py          |    16 +-
 .../histogram/unselected/_marker.py           |    46 +-
 .../histogram/unselected/_textfont.py         |    39 +-
 plotly/graph_objs/histogram2d/__init__.py     |    36 +-
 plotly/graph_objs/histogram2d/_colorbar.py    |   484 +-
 plotly/graph_objs/histogram2d/_hoverlabel.py  |   124 +-
 .../histogram2d/_legendgrouptitle.py          |    46 +-
 plotly/graph_objs/histogram2d/_marker.py      |    46 +-
 plotly/graph_objs/histogram2d/_stream.py      |    46 +-
 plotly/graph_objs/histogram2d/_textfont.py    |   124 +-
 plotly/graph_objs/histogram2d/_xbins.py       |    53 +-
 plotly/graph_objs/histogram2d/_ybins.py       |    53 +-
 .../histogram2d/colorbar/__init__.py          |    20 +-
 .../histogram2d/colorbar/_tickfont.py         |   124 +-
 .../histogram2d/colorbar/_tickformatstop.py   |    98 +-
 .../graph_objs/histogram2d/colorbar/_title.py |    53 +-
 .../histogram2d/colorbar/title/__init__.py    |    13 +-
 .../histogram2d/colorbar/title/_font.py       |   124 +-
 .../histogram2d/hoverlabel/__init__.py        |    13 +-
 .../histogram2d/hoverlabel/_font.py           |   205 +-
 .../histogram2d/legendgrouptitle/__init__.py  |    13 +-
 .../histogram2d/legendgrouptitle/_font.py     |   124 +-
 .../graph_objs/histogram2dcontour/__init__.py |    41 +-
 .../histogram2dcontour/_colorbar.py           |   484 +-
 .../histogram2dcontour/_contours.py           |   142 +-
 .../histogram2dcontour/_hoverlabel.py         |   124 +-
 .../histogram2dcontour/_legendgrouptitle.py   |    46 +-
 plotly/graph_objs/histogram2dcontour/_line.py |    62 +-
 .../graph_objs/histogram2dcontour/_marker.py  |    46 +-
 .../graph_objs/histogram2dcontour/_stream.py  |    46 +-
 .../histogram2dcontour/_textfont.py           |   124 +-
 .../graph_objs/histogram2dcontour/_xbins.py   |    53 +-
 .../graph_objs/histogram2dcontour/_ybins.py   |    53 +-
 .../histogram2dcontour/colorbar/__init__.py   |    20 +-
 .../histogram2dcontour/colorbar/_tickfont.py  |   124 +-
 .../colorbar/_tickformatstop.py               |    98 +-
 .../histogram2dcontour/colorbar/_title.py     |    53 +-
 .../colorbar/title/__init__.py                |    13 +-
 .../colorbar/title/_font.py                   |   124 +-
 .../histogram2dcontour/contours/__init__.py   |    13 +-
 .../histogram2dcontour/contours/_labelfont.py |   124 +-
 .../histogram2dcontour/hoverlabel/__init__.py |    13 +-
 .../histogram2dcontour/hoverlabel/_font.py    |   205 +-
 .../legendgrouptitle/__init__.py              |    13 +-
 .../legendgrouptitle/_font.py                 |   124 +-
 plotly/graph_objs/icicle/__init__.py          |    45 +-
 plotly/graph_objs/icicle/_domain.py           |   108 +-
 plotly/graph_objs/icicle/_hoverlabel.py       |   124 +-
 plotly/graph_objs/icicle/_insidetextfont.py   |   205 +-
 plotly/graph_objs/icicle/_leaf.py             |    39 +-
 plotly/graph_objs/icicle/_legendgrouptitle.py |    46 +-
 plotly/graph_objs/icicle/_marker.py           |   169 +-
 plotly/graph_objs/icicle/_outsidetextfont.py  |   205 +-
 plotly/graph_objs/icicle/_pathbar.py          |    76 +-
 plotly/graph_objs/icicle/_root.py             |    39 +-
 plotly/graph_objs/icicle/_stream.py           |    46 +-
 plotly/graph_objs/icicle/_textfont.py         |   205 +-
 plotly/graph_objs/icicle/_tiling.py           |    53 +-
 .../graph_objs/icicle/hoverlabel/__init__.py  |    13 +-
 plotly/graph_objs/icicle/hoverlabel/_font.py  |   205 +-
 .../icicle/legendgrouptitle/__init__.py       |    13 +-
 .../icicle/legendgrouptitle/_font.py          |   124 +-
 plotly/graph_objs/icicle/marker/__init__.py   |    18 +-
 plotly/graph_objs/icicle/marker/_colorbar.py  |   484 +-
 plotly/graph_objs/icicle/marker/_line.py      |    62 +-
 plotly/graph_objs/icicle/marker/_pattern.py   |   151 +-
 .../icicle/marker/colorbar/__init__.py        |    20 +-
 .../icicle/marker/colorbar/_tickfont.py       |   124 +-
 .../icicle/marker/colorbar/_tickformatstop.py |    98 +-
 .../icicle/marker/colorbar/_title.py          |    53 +-
 .../icicle/marker/colorbar/title/__init__.py  |    13 +-
 .../icicle/marker/colorbar/title/_font.py     |   124 +-
 plotly/graph_objs/icicle/pathbar/__init__.py  |    13 +-
 plotly/graph_objs/icicle/pathbar/_textfont.py |   205 +-
 plotly/graph_objs/image/__init__.py           |    25 +-
 plotly/graph_objs/image/_hoverlabel.py        |   124 +-
 plotly/graph_objs/image/_legendgrouptitle.py  |    46 +-
 plotly/graph_objs/image/_stream.py            |    46 +-
 .../graph_objs/image/hoverlabel/__init__.py   |    13 +-
 plotly/graph_objs/image/hoverlabel/_font.py   |   205 +-
 .../image/legendgrouptitle/__init__.py        |    13 +-
 .../image/legendgrouptitle/_font.py           |   124 +-
 plotly/graph_objs/indicator/__init__.py       |    36 +-
 plotly/graph_objs/indicator/_delta.py         |   124 +-
 plotly/graph_objs/indicator/_domain.py        |   108 +-
 plotly/graph_objs/indicator/_gauge.py         |   124 +-
 .../graph_objs/indicator/_legendgrouptitle.py |    46 +-
 plotly/graph_objs/indicator/_number.py        |    62 +-
 plotly/graph_objs/indicator/_stream.py        |    46 +-
 plotly/graph_objs/indicator/_title.py         |    53 +-
 plotly/graph_objs/indicator/delta/__init__.py |    17 +-
 .../graph_objs/indicator/delta/_decreasing.py |    46 +-
 plotly/graph_objs/indicator/delta/_font.py    |   124 +-
 .../graph_objs/indicator/delta/_increasing.py |    46 +-
 plotly/graph_objs/indicator/gauge/__init__.py |    24 +-
 plotly/graph_objs/indicator/gauge/_axis.py    |   335 +-
 plotly/graph_objs/indicator/gauge/_bar.py     |    53 +-
 plotly/graph_objs/indicator/gauge/_step.py    |   110 +-
 .../graph_objs/indicator/gauge/_threshold.py  |    53 +-
 .../indicator/gauge/axis/__init__.py          |    16 +-
 .../indicator/gauge/axis/_tickfont.py         |   124 +-
 .../indicator/gauge/axis/_tickformatstop.py   |    98 +-
 .../indicator/gauge/bar/__init__.py           |    13 +-
 .../graph_objs/indicator/gauge/bar/_line.py   |    46 +-
 .../indicator/gauge/step/__init__.py          |    13 +-
 .../graph_objs/indicator/gauge/step/_line.py  |    46 +-
 .../indicator/gauge/threshold/__init__.py     |    13 +-
 .../indicator/gauge/threshold/_line.py        |    46 +-
 .../indicator/legendgrouptitle/__init__.py    |    13 +-
 .../indicator/legendgrouptitle/_font.py       |   124 +-
 .../graph_objs/indicator/number/__init__.py   |    13 +-
 plotly/graph_objs/indicator/number/_font.py   |   124 +-
 plotly/graph_objs/indicator/title/__init__.py |    13 +-
 plotly/graph_objs/indicator/title/_font.py    |   124 +-
 plotly/graph_objs/isosurface/__init__.py      |    44 +-
 plotly/graph_objs/isosurface/_caps.py         |    53 +-
 plotly/graph_objs/isosurface/_colorbar.py     |   484 +-
 plotly/graph_objs/isosurface/_contour.py      |    53 +-
 plotly/graph_objs/isosurface/_hoverlabel.py   |   124 +-
 .../isosurface/_legendgrouptitle.py           |    46 +-
 plotly/graph_objs/isosurface/_lighting.py     |   106 +-
 .../graph_objs/isosurface/_lightposition.py   |    53 +-
 plotly/graph_objs/isosurface/_slices.py       |    53 +-
 plotly/graph_objs/isosurface/_spaceframe.py   |    46 +-
 plotly/graph_objs/isosurface/_stream.py       |    46 +-
 plotly/graph_objs/isosurface/_surface.py      |    62 +-
 plotly/graph_objs/isosurface/caps/__init__.py |    17 +-
 plotly/graph_objs/isosurface/caps/_x.py       |    46 +-
 plotly/graph_objs/isosurface/caps/_y.py       |    46 +-
 plotly/graph_objs/isosurface/caps/_z.py       |    46 +-
 .../isosurface/colorbar/__init__.py           |    20 +-
 .../isosurface/colorbar/_tickfont.py          |   124 +-
 .../isosurface/colorbar/_tickformatstop.py    |    98 +-
 .../graph_objs/isosurface/colorbar/_title.py  |    53 +-
 .../isosurface/colorbar/title/__init__.py     |    13 +-
 .../isosurface/colorbar/title/_font.py        |   124 +-
 .../isosurface/hoverlabel/__init__.py         |    13 +-
 .../graph_objs/isosurface/hoverlabel/_font.py |   205 +-
 .../isosurface/legendgrouptitle/__init__.py   |    13 +-
 .../isosurface/legendgrouptitle/_font.py      |   124 +-
 .../graph_objs/isosurface/slices/__init__.py  |    17 +-
 plotly/graph_objs/isosurface/slices/_x.py     |    68 +-
 plotly/graph_objs/isosurface/slices/_y.py     |    68 +-
 plotly/graph_objs/isosurface/slices/_z.py     |    68 +-
 plotly/graph_objs/layout/__init__.py          |   124 +-
 plotly/graph_objs/layout/_activeselection.py  |    46 +-
 plotly/graph_objs/layout/_activeshape.py      |    46 +-
 plotly/graph_objs/layout/_annotation.py       |   430 +-
 plotly/graph_objs/layout/_coloraxis.py        |   124 +-
 plotly/graph_objs/layout/_colorscale.py       |    55 +-
 plotly/graph_objs/layout/_font.py             |   124 +-
 plotly/graph_objs/layout/_geo.py              |   331 +-
 plotly/graph_objs/layout/_grid.py             |   151 +-
 plotly/graph_objs/layout/_hoverlabel.py       |    97 +-
 plotly/graph_objs/layout/_image.py            |   178 +-
 plotly/graph_objs/layout/_legend.py           |   277 +-
 plotly/graph_objs/layout/_map.py              |   133 +-
 plotly/graph_objs/layout/_mapbox.py           |   142 +-
 plotly/graph_objs/layout/_margin.py           |    88 +-
 plotly/graph_objs/layout/_modebar.py          |   124 +-
 plotly/graph_objs/layout/_newselection.py     |    46 +-
 plotly/graph_objs/layout/_newshape.py         |   178 +-
 plotly/graph_objs/layout/_polar.py            |   165 +-
 plotly/graph_objs/layout/_scene.py            |   160 +-
 plotly/graph_objs/layout/_selection.py        |   151 +-
 plotly/graph_objs/layout/_shape.py            |   331 +-
 plotly/graph_objs/layout/_slider.py           |   259 +-
 plotly/graph_objs/layout/_smith.py            |    68 +-
 plotly/graph_objs/layout/_template.py         |    46 +-
 plotly/graph_objs/layout/_ternary.py          |    96 +-
 plotly/graph_objs/layout/_title.py            |   142 +-
 plotly/graph_objs/layout/_transition.py       |    53 +-
 plotly/graph_objs/layout/_uniformtext.py      |    46 +-
 plotly/graph_objs/layout/_updatemenu.py       |   205 +-
 plotly/graph_objs/layout/_xaxis.py            |   962 +-
 plotly/graph_objs/layout/_yaxis.py            |   962 +-
 .../graph_objs/layout/annotation/__init__.py  |    17 +-
 plotly/graph_objs/layout/annotation/_font.py  |   124 +-
 .../layout/annotation/_hoverlabel.py          |    53 +-
 .../layout/annotation/hoverlabel/__init__.py  |    13 +-
 .../layout/annotation/hoverlabel/_font.py     |   124 +-
 .../graph_objs/layout/coloraxis/__init__.py   |    16 +-
 .../graph_objs/layout/coloraxis/_colorbar.py  |   484 +-
 .../layout/coloraxis/colorbar/__init__.py     |    20 +-
 .../layout/coloraxis/colorbar/_tickfont.py    |   124 +-
 .../coloraxis/colorbar/_tickformatstop.py     |    98 +-
 .../layout/coloraxis/colorbar/_title.py       |    53 +-
 .../coloraxis/colorbar/title/__init__.py      |    13 +-
 .../layout/coloraxis/colorbar/title/_font.py  |   124 +-
 plotly/graph_objs/layout/geo/__init__.py      |    28 +-
 plotly/graph_objs/layout/geo/_center.py       |    46 +-
 plotly/graph_objs/layout/geo/_domain.py       |   120 +-
 plotly/graph_objs/layout/geo/_lataxis.py      |   130 +-
 plotly/graph_objs/layout/geo/_lonaxis.py      |   130 +-
 plotly/graph_objs/layout/geo/_projection.py   |   112 +-
 .../layout/geo/projection/__init__.py         |    13 +-
 .../layout/geo/projection/_rotation.py        |    53 +-
 plotly/graph_objs/layout/grid/__init__.py     |    13 +-
 plotly/graph_objs/layout/grid/_domain.py      |   102 +-
 .../graph_objs/layout/hoverlabel/__init__.py  |    16 +-
 plotly/graph_objs/layout/hoverlabel/_font.py  |   124 +-
 .../layout/hoverlabel/_grouptitlefont.py      |   124 +-
 plotly/graph_objs/layout/legend/__init__.py   |    20 +-
 plotly/graph_objs/layout/legend/_font.py      |   124 +-
 .../layout/legend/_grouptitlefont.py          |   124 +-
 plotly/graph_objs/layout/legend/_title.py     |    53 +-
 .../layout/legend/title/__init__.py           |    13 +-
 .../graph_objs/layout/legend/title/_font.py   |   124 +-
 plotly/graph_objs/layout/map/__init__.py      |    21 +-
 plotly/graph_objs/layout/map/_bounds.py       |    62 +-
 plotly/graph_objs/layout/map/_center.py       |    46 +-
 plotly/graph_objs/layout/map/_domain.py       |   108 +-
 plotly/graph_objs/layout/map/_layer.py        |   205 +-
 .../graph_objs/layout/map/layer/__init__.py   |    21 +-
 plotly/graph_objs/layout/map/layer/_circle.py |    39 +-
 plotly/graph_objs/layout/map/layer/_fill.py   |    39 +-
 plotly/graph_objs/layout/map/layer/_line.py   |    53 +-
 plotly/graph_objs/layout/map/layer/_symbol.py |    88 +-
 .../layout/map/layer/symbol/__init__.py       |    13 +-
 .../layout/map/layer/symbol/_textfont.py      |    76 +-
 plotly/graph_objs/layout/mapbox/__init__.py   |    21 +-
 plotly/graph_objs/layout/mapbox/_bounds.py    |    62 +-
 plotly/graph_objs/layout/mapbox/_center.py    |    46 +-
 plotly/graph_objs/layout/mapbox/_domain.py    |   108 +-
 plotly/graph_objs/layout/mapbox/_layer.py     |   205 +-
 .../layout/mapbox/layer/__init__.py           |    21 +-
 .../graph_objs/layout/mapbox/layer/_circle.py |    39 +-
 .../graph_objs/layout/mapbox/layer/_fill.py   |    39 +-
 .../graph_objs/layout/mapbox/layer/_line.py   |    53 +-
 .../graph_objs/layout/mapbox/layer/_symbol.py |    88 +-
 .../layout/mapbox/layer/symbol/__init__.py    |    13 +-
 .../layout/mapbox/layer/symbol/_textfont.py   |    76 +-
 .../layout/newselection/__init__.py           |    13 +-
 .../graph_objs/layout/newselection/_line.py   |    53 +-
 plotly/graph_objs/layout/newshape/__init__.py |    21 +-
 plotly/graph_objs/layout/newshape/_label.py   |   115 +-
 .../layout/newshape/_legendgrouptitle.py      |    46 +-
 plotly/graph_objs/layout/newshape/_line.py    |    53 +-
 .../layout/newshape/label/__init__.py         |    13 +-
 .../graph_objs/layout/newshape/label/_font.py |   124 +-
 .../newshape/legendgrouptitle/__init__.py     |    13 +-
 .../layout/newshape/legendgrouptitle/_font.py |   124 +-
 plotly/graph_objs/layout/polar/__init__.py    |    21 +-
 .../graph_objs/layout/polar/_angularaxis.py   |   484 +-
 plotly/graph_objs/layout/polar/_domain.py     |   108 +-
 plotly/graph_objs/layout/polar/_radialaxis.py |   585 +-
 .../layout/polar/angularaxis/__init__.py      |    16 +-
 .../layout/polar/angularaxis/_tickfont.py     |   124 +-
 .../polar/angularaxis/_tickformatstop.py      |    98 +-
 .../layout/polar/radialaxis/__init__.py       |    26 +-
 .../polar/radialaxis/_autorangeoptions.py     |    97 +-
 .../layout/polar/radialaxis/_tickfont.py      |   124 +-
 .../polar/radialaxis/_tickformatstop.py       |    98 +-
 .../layout/polar/radialaxis/_title.py         |    46 +-
 .../layout/polar/radialaxis/title/__init__.py |    13 +-
 .../layout/polar/radialaxis/title/_font.py    |   124 +-
 plotly/graph_objs/layout/scene/__init__.py    |    36 +-
 plotly/graph_objs/layout/scene/_annotation.py |   376 +-
 .../graph_objs/layout/scene/_aspectratio.py   |    53 +-
 plotly/graph_objs/layout/scene/_camera.py     |    62 +-
 plotly/graph_objs/layout/scene/_domain.py     |   108 +-
 plotly/graph_objs/layout/scene/_xaxis.py      |   621 +-
 plotly/graph_objs/layout/scene/_yaxis.py      |   621 +-
 plotly/graph_objs/layout/scene/_zaxis.py      |   621 +-
 .../layout/scene/annotation/__init__.py       |    17 +-
 .../layout/scene/annotation/_font.py          |   124 +-
 .../layout/scene/annotation/_hoverlabel.py    |    53 +-
 .../scene/annotation/hoverlabel/__init__.py   |    13 +-
 .../scene/annotation/hoverlabel/_font.py      |   124 +-
 .../layout/scene/camera/__init__.py           |    18 +-
 .../graph_objs/layout/scene/camera/_center.py |    53 +-
 plotly/graph_objs/layout/scene/camera/_eye.py |    53 +-
 .../layout/scene/camera/_projection.py        |    39 +-
 plotly/graph_objs/layout/scene/camera/_up.py  |    53 +-
 .../graph_objs/layout/scene/xaxis/__init__.py |    26 +-
 .../layout/scene/xaxis/_autorangeoptions.py   |    97 +-
 .../layout/scene/xaxis/_tickfont.py           |   124 +-
 .../layout/scene/xaxis/_tickformatstop.py     |    98 +-
 .../graph_objs/layout/scene/xaxis/_title.py   |    46 +-
 .../layout/scene/xaxis/title/__init__.py      |    13 +-
 .../layout/scene/xaxis/title/_font.py         |   124 +-
 .../graph_objs/layout/scene/yaxis/__init__.py |    26 +-
 .../layout/scene/yaxis/_autorangeoptions.py   |    97 +-
 .../layout/scene/yaxis/_tickfont.py           |   124 +-
 .../layout/scene/yaxis/_tickformatstop.py     |    98 +-
 .../graph_objs/layout/scene/yaxis/_title.py   |    46 +-
 .../layout/scene/yaxis/title/__init__.py      |    13 +-
 .../layout/scene/yaxis/title/_font.py         |   124 +-
 .../graph_objs/layout/scene/zaxis/__init__.py |    26 +-
 .../layout/scene/zaxis/_autorangeoptions.py   |    97 +-
 .../layout/scene/zaxis/_tickfont.py           |   124 +-
 .../layout/scene/zaxis/_tickformatstop.py     |    98 +-
 .../graph_objs/layout/scene/zaxis/_title.py   |    46 +-
 .../layout/scene/zaxis/title/__init__.py      |    13 +-
 .../layout/scene/zaxis/title/_font.py         |   124 +-
 .../graph_objs/layout/selection/__init__.py   |    13 +-
 plotly/graph_objs/layout/selection/_line.py   |    53 +-
 plotly/graph_objs/layout/shape/__init__.py    |    21 +-
 plotly/graph_objs/layout/shape/_label.py      |   115 +-
 .../layout/shape/_legendgrouptitle.py         |    46 +-
 plotly/graph_objs/layout/shape/_line.py       |    53 +-
 .../graph_objs/layout/shape/label/__init__.py |    13 +-
 plotly/graph_objs/layout/shape/label/_font.py |   124 +-
 .../layout/shape/legendgrouptitle/__init__.py |    13 +-
 .../layout/shape/legendgrouptitle/_font.py    |   124 +-
 plotly/graph_objs/layout/slider/__init__.py   |    28 +-
 .../graph_objs/layout/slider/_currentvalue.py |    88 +-
 plotly/graph_objs/layout/slider/_font.py      |   124 +-
 plotly/graph_objs/layout/slider/_pad.py       |    60 +-
 plotly/graph_objs/layout/slider/_step.py      |   137 +-
 .../graph_objs/layout/slider/_transition.py   |    46 +-
 .../layout/slider/currentvalue/__init__.py    |    13 +-
 .../layout/slider/currentvalue/_font.py       |   124 +-
 plotly/graph_objs/layout/smith/__init__.py    |    21 +-
 plotly/graph_objs/layout/smith/_domain.py     |   108 +-
 .../graph_objs/layout/smith/_imaginaryaxis.py |   268 +-
 plotly/graph_objs/layout/smith/_realaxis.py   |   286 +-
 .../layout/smith/imaginaryaxis/__init__.py    |    13 +-
 .../layout/smith/imaginaryaxis/_tickfont.py   |   124 +-
 .../layout/smith/realaxis/__init__.py         |    13 +-
 .../layout/smith/realaxis/_tickfont.py        |   124 +-
 plotly/graph_objs/layout/template/__init__.py |    17 +-
 plotly/graph_objs/layout/template/_data.py    |   484 +-
 plotly/graph_objs/layout/template/_layout.py  |     4 +-
 .../layout/template/data/__init__.py          |   115 +-
 .../graph_objs/layout/template/data/_bar.py   |     4 +-
 .../layout/template/data/_barpolar.py         |     4 +-
 .../graph_objs/layout/template/data/_box.py   |     4 +-
 .../layout/template/data/_candlestick.py      |     4 +-
 .../layout/template/data/_carpet.py           |     4 +-
 .../layout/template/data/_choropleth.py       |     4 +-
 .../layout/template/data/_choroplethmap.py    |     4 +-
 .../layout/template/data/_choroplethmapbox.py |     4 +-
 .../graph_objs/layout/template/data/_cone.py  |     4 +-
 .../layout/template/data/_contour.py          |     4 +-
 .../layout/template/data/_contourcarpet.py    |     4 +-
 .../layout/template/data/_densitymap.py       |     4 +-
 .../layout/template/data/_densitymapbox.py    |     4 +-
 .../layout/template/data/_funnel.py           |     4 +-
 .../layout/template/data/_funnelarea.py       |     4 +-
 .../layout/template/data/_heatmap.py          |     4 +-
 .../layout/template/data/_histogram.py        |     4 +-
 .../layout/template/data/_histogram2d.py      |     4 +-
 .../template/data/_histogram2dcontour.py      |     4 +-
 .../layout/template/data/_icicle.py           |     4 +-
 .../graph_objs/layout/template/data/_image.py |     4 +-
 .../layout/template/data/_indicator.py        |     4 +-
 .../layout/template/data/_isosurface.py       |     4 +-
 .../layout/template/data/_mesh3d.py           |     4 +-
 .../graph_objs/layout/template/data/_ohlc.py  |     4 +-
 .../layout/template/data/_parcats.py          |     4 +-
 .../layout/template/data/_parcoords.py        |     4 +-
 .../graph_objs/layout/template/data/_pie.py   |     4 +-
 .../layout/template/data/_sankey.py           |     4 +-
 .../layout/template/data/_scatter.py          |     4 +-
 .../layout/template/data/_scatter3d.py        |     4 +-
 .../layout/template/data/_scattercarpet.py    |     4 +-
 .../layout/template/data/_scattergeo.py       |     4 +-
 .../layout/template/data/_scattergl.py        |     4 +-
 .../layout/template/data/_scattermap.py       |     4 +-
 .../layout/template/data/_scattermapbox.py    |     4 +-
 .../layout/template/data/_scatterpolar.py     |     4 +-
 .../layout/template/data/_scatterpolargl.py   |     4 +-
 .../layout/template/data/_scattersmith.py     |     4 +-
 .../layout/template/data/_scatterternary.py   |     4 +-
 .../graph_objs/layout/template/data/_splom.py |     4 +-
 .../layout/template/data/_streamtube.py       |     4 +-
 .../layout/template/data/_sunburst.py         |     4 +-
 .../layout/template/data/_surface.py          |     4 +-
 .../graph_objs/layout/template/data/_table.py |     4 +-
 .../layout/template/data/_treemap.py          |     4 +-
 .../layout/template/data/_violin.py           |     4 +-
 .../layout/template/data/_volume.py           |     4 +-
 .../layout/template/data/_waterfall.py        |     4 +-
 plotly/graph_objs/layout/ternary/__init__.py  |    23 +-
 plotly/graph_objs/layout/ternary/_aaxis.py    |   412 +-
 plotly/graph_objs/layout/ternary/_baxis.py    |   412 +-
 plotly/graph_objs/layout/ternary/_caxis.py    |   412 +-
 plotly/graph_objs/layout/ternary/_domain.py   |   108 +-
 .../layout/ternary/aaxis/__init__.py          |    20 +-
 .../layout/ternary/aaxis/_tickfont.py         |   124 +-
 .../layout/ternary/aaxis/_tickformatstop.py   |    98 +-
 .../graph_objs/layout/ternary/aaxis/_title.py |    46 +-
 .../layout/ternary/aaxis/title/__init__.py    |    13 +-
 .../layout/ternary/aaxis/title/_font.py       |   124 +-
 .../layout/ternary/baxis/__init__.py          |    20 +-
 .../layout/ternary/baxis/_tickfont.py         |   124 +-
 .../layout/ternary/baxis/_tickformatstop.py   |    98 +-
 .../graph_objs/layout/ternary/baxis/_title.py |    46 +-
 .../layout/ternary/baxis/title/__init__.py    |    13 +-
 .../layout/ternary/baxis/title/_font.py       |   124 +-
 .../layout/ternary/caxis/__init__.py          |    20 +-
 .../layout/ternary/caxis/_tickfont.py         |   124 +-
 .../layout/ternary/caxis/_tickformatstop.py   |    98 +-
 .../graph_objs/layout/ternary/caxis/_title.py |    46 +-
 .../layout/ternary/caxis/title/__init__.py    |    13 +-
 .../layout/ternary/caxis/title/_font.py       |   124 +-
 plotly/graph_objs/layout/title/__init__.py    |    18 +-
 plotly/graph_objs/layout/title/_font.py       |   124 +-
 plotly/graph_objs/layout/title/_pad.py        |    60 +-
 plotly/graph_objs/layout/title/_subtitle.py   |    46 +-
 .../layout/title/subtitle/__init__.py         |    13 +-
 .../graph_objs/layout/title/subtitle/_font.py |   124 +-
 .../graph_objs/layout/updatemenu/__init__.py  |    17 +-
 .../graph_objs/layout/updatemenu/_button.py   |   161 +-
 plotly/graph_objs/layout/updatemenu/_font.py  |   124 +-
 plotly/graph_objs/layout/updatemenu/_pad.py   |    60 +-
 plotly/graph_objs/layout/xaxis/__init__.py    |    36 +-
 .../layout/xaxis/_autorangeoptions.py         |    97 +-
 plotly/graph_objs/layout/xaxis/_minor.py      |   169 +-
 plotly/graph_objs/layout/xaxis/_rangebreak.py |   126 +-
 .../graph_objs/layout/xaxis/_rangeselector.py |   151 +-
 .../graph_objs/layout/xaxis/_rangeslider.py   |   149 +-
 plotly/graph_objs/layout/xaxis/_tickfont.py   |   124 +-
 .../layout/xaxis/_tickformatstop.py           |    98 +-
 plotly/graph_objs/layout/xaxis/_title.py      |    53 +-
 .../layout/xaxis/rangeselector/__init__.py    |    16 +-
 .../layout/xaxis/rangeselector/_button.py     |   106 +-
 .../layout/xaxis/rangeselector/_font.py       |   124 +-
 .../layout/xaxis/rangeslider/__init__.py      |    13 +-
 .../layout/xaxis/rangeslider/_yaxis.py        |    64 +-
 .../graph_objs/layout/xaxis/title/__init__.py |    13 +-
 plotly/graph_objs/layout/xaxis/title/_font.py |   124 +-
 plotly/graph_objs/layout/yaxis/__init__.py    |    30 +-
 .../layout/yaxis/_autorangeoptions.py         |    97 +-
 plotly/graph_objs/layout/yaxis/_minor.py      |   169 +-
 plotly/graph_objs/layout/yaxis/_rangebreak.py |   126 +-
 plotly/graph_objs/layout/yaxis/_tickfont.py   |   124 +-
 .../layout/yaxis/_tickformatstop.py           |    98 +-
 plotly/graph_objs/layout/yaxis/_title.py      |    53 +-
 .../graph_objs/layout/yaxis/title/__init__.py |    13 +-
 plotly/graph_objs/layout/yaxis/title/_font.py |   124 +-
 plotly/graph_objs/mesh3d/__init__.py          |    34 +-
 plotly/graph_objs/mesh3d/_colorbar.py         |   484 +-
 plotly/graph_objs/mesh3d/_contour.py          |    53 +-
 plotly/graph_objs/mesh3d/_hoverlabel.py       |   124 +-
 plotly/graph_objs/mesh3d/_legendgrouptitle.py |    46 +-
 plotly/graph_objs/mesh3d/_lighting.py         |   106 +-
 plotly/graph_objs/mesh3d/_lightposition.py    |    53 +-
 plotly/graph_objs/mesh3d/_stream.py           |    46 +-
 plotly/graph_objs/mesh3d/colorbar/__init__.py |    20 +-
 .../graph_objs/mesh3d/colorbar/_tickfont.py   |   124 +-
 .../mesh3d/colorbar/_tickformatstop.py        |    98 +-
 plotly/graph_objs/mesh3d/colorbar/_title.py   |    53 +-
 .../mesh3d/colorbar/title/__init__.py         |    13 +-
 .../graph_objs/mesh3d/colorbar/title/_font.py |   124 +-
 .../graph_objs/mesh3d/hoverlabel/__init__.py  |    13 +-
 plotly/graph_objs/mesh3d/hoverlabel/_font.py  |   205 +-
 .../mesh3d/legendgrouptitle/__init__.py       |    13 +-
 .../mesh3d/legendgrouptitle/_font.py          |   124 +-
 plotly/graph_objs/ohlc/__init__.py            |    33 +-
 plotly/graph_objs/ohlc/_decreasing.py         |    39 +-
 plotly/graph_objs/ohlc/_hoverlabel.py         |   133 +-
 plotly/graph_objs/ohlc/_increasing.py         |    39 +-
 plotly/graph_objs/ohlc/_legendgrouptitle.py   |    46 +-
 plotly/graph_objs/ohlc/_line.py               |    46 +-
 plotly/graph_objs/ohlc/_stream.py             |    46 +-
 plotly/graph_objs/ohlc/decreasing/__init__.py |    13 +-
 plotly/graph_objs/ohlc/decreasing/_line.py    |    53 +-
 plotly/graph_objs/ohlc/hoverlabel/__init__.py |    13 +-
 plotly/graph_objs/ohlc/hoverlabel/_font.py    |   205 +-
 plotly/graph_objs/ohlc/increasing/__init__.py |    13 +-
 plotly/graph_objs/ohlc/increasing/_line.py    |    53 +-
 .../ohlc/legendgrouptitle/__init__.py         |    13 +-
 .../graph_objs/ohlc/legendgrouptitle/_font.py |   124 +-
 plotly/graph_objs/parcats/__init__.py         |    33 +-
 plotly/graph_objs/parcats/_dimension.py       |   133 +-
 plotly/graph_objs/parcats/_domain.py          |   108 +-
 plotly/graph_objs/parcats/_labelfont.py       |   124 +-
 .../graph_objs/parcats/_legendgrouptitle.py   |    46 +-
 plotly/graph_objs/parcats/_line.py            |   169 +-
 plotly/graph_objs/parcats/_stream.py          |    46 +-
 plotly/graph_objs/parcats/_tickfont.py        |   124 +-
 .../parcats/legendgrouptitle/__init__.py      |    13 +-
 .../parcats/legendgrouptitle/_font.py         |   124 +-
 plotly/graph_objs/parcats/line/__init__.py    |    16 +-
 plotly/graph_objs/parcats/line/_colorbar.py   |   484 +-
 .../parcats/line/colorbar/__init__.py         |    20 +-
 .../parcats/line/colorbar/_tickfont.py        |   124 +-
 .../parcats/line/colorbar/_tickformatstop.py  |    98 +-
 .../parcats/line/colorbar/_title.py           |    53 +-
 .../parcats/line/colorbar/title/__init__.py   |    13 +-
 .../parcats/line/colorbar/title/_font.py      |   124 +-
 plotly/graph_objs/parcoords/__init__.py       |    38 +-
 plotly/graph_objs/parcoords/_dimension.py     |   233 +-
 plotly/graph_objs/parcoords/_domain.py        |   108 +-
 plotly/graph_objs/parcoords/_labelfont.py     |   124 +-
 .../graph_objs/parcoords/_legendgrouptitle.py |    46 +-
 plotly/graph_objs/parcoords/_line.py          |   151 +-
 plotly/graph_objs/parcoords/_rangefont.py     |   124 +-
 plotly/graph_objs/parcoords/_stream.py        |    46 +-
 plotly/graph_objs/parcoords/_tickfont.py      |   124 +-
 plotly/graph_objs/parcoords/_unselected.py    |    39 +-
 .../parcoords/legendgrouptitle/__init__.py    |    13 +-
 .../parcoords/legendgrouptitle/_font.py       |   124 +-
 plotly/graph_objs/parcoords/line/__init__.py  |    16 +-
 plotly/graph_objs/parcoords/line/_colorbar.py |   484 +-
 .../parcoords/line/colorbar/__init__.py       |    20 +-
 .../parcoords/line/colorbar/_tickfont.py      |   124 +-
 .../line/colorbar/_tickformatstop.py          |    98 +-
 .../parcoords/line/colorbar/_title.py         |    53 +-
 .../parcoords/line/colorbar/title/__init__.py |    13 +-
 .../parcoords/line/colorbar/title/_font.py    |   124 +-
 .../parcoords/unselected/__init__.py          |    13 +-
 .../graph_objs/parcoords/unselected/_line.py  |    46 +-
 plotly/graph_objs/pie/__init__.py             |    39 +-
 plotly/graph_objs/pie/_domain.py              |   106 +-
 plotly/graph_objs/pie/_hoverlabel.py          |   124 +-
 plotly/graph_objs/pie/_insidetextfont.py      |   205 +-
 plotly/graph_objs/pie/_legendgrouptitle.py    |    46 +-
 plotly/graph_objs/pie/_marker.py              |    62 +-
 plotly/graph_objs/pie/_outsidetextfont.py     |   205 +-
 plotly/graph_objs/pie/_stream.py              |    46 +-
 plotly/graph_objs/pie/_textfont.py            |   205 +-
 plotly/graph_objs/pie/_title.py               |    53 +-
 plotly/graph_objs/pie/hoverlabel/__init__.py  |    13 +-
 plotly/graph_objs/pie/hoverlabel/_font.py     |   205 +-
 .../pie/legendgrouptitle/__init__.py          |    13 +-
 .../graph_objs/pie/legendgrouptitle/_font.py  |   124 +-
 plotly/graph_objs/pie/marker/__init__.py      |    16 +-
 plotly/graph_objs/pie/marker/_line.py         |    62 +-
 plotly/graph_objs/pie/marker/_pattern.py      |   151 +-
 plotly/graph_objs/pie/title/__init__.py       |    13 +-
 plotly/graph_objs/pie/title/_font.py          |   205 +-
 plotly/graph_objs/sankey/__init__.py          |    35 +-
 plotly/graph_objs/sankey/_domain.py           |   108 +-
 plotly/graph_objs/sankey/_hoverlabel.py       |   124 +-
 plotly/graph_objs/sankey/_legendgrouptitle.py |    46 +-
 plotly/graph_objs/sankey/_link.py             |   241 +-
 plotly/graph_objs/sankey/_node.py             |   214 +-
 plotly/graph_objs/sankey/_stream.py           |    46 +-
 plotly/graph_objs/sankey/_textfont.py         |   124 +-
 .../graph_objs/sankey/hoverlabel/__init__.py  |    13 +-
 plotly/graph_objs/sankey/hoverlabel/_font.py  |   205 +-
 .../sankey/legendgrouptitle/__init__.py       |    13 +-
 .../sankey/legendgrouptitle/_font.py          |   124 +-
 plotly/graph_objs/sankey/link/__init__.py     |    20 +-
 plotly/graph_objs/sankey/link/_colorscale.py  |    88 +-
 plotly/graph_objs/sankey/link/_hoverlabel.py  |   124 +-
 plotly/graph_objs/sankey/link/_line.py        |    62 +-
 .../sankey/link/hoverlabel/__init__.py        |    13 +-
 .../sankey/link/hoverlabel/_font.py           |   205 +-
 plotly/graph_objs/sankey/node/__init__.py     |    17 +-
 plotly/graph_objs/sankey/node/_hoverlabel.py  |   124 +-
 plotly/graph_objs/sankey/node/_line.py        |    62 +-
 .../sankey/node/hoverlabel/__init__.py        |    13 +-
 .../sankey/node/hoverlabel/_font.py           |   205 +-
 plotly/graph_objs/scatter/__init__.py         |    46 +-
 plotly/graph_objs/scatter/_error_x.py         |   178 +-
 plotly/graph_objs/scatter/_error_y.py         |   169 +-
 plotly/graph_objs/scatter/_fillgradient.py    |    62 +-
 plotly/graph_objs/scatter/_fillpattern.py     |   151 +-
 plotly/graph_objs/scatter/_hoverlabel.py      |   124 +-
 .../graph_objs/scatter/_legendgrouptitle.py   |    46 +-
 plotly/graph_objs/scatter/_line.py            |   115 +-
 plotly/graph_objs/scatter/_marker.py          |   304 +-
 plotly/graph_objs/scatter/_selected.py        |    46 +-
 plotly/graph_objs/scatter/_stream.py          |    46 +-
 plotly/graph_objs/scatter/_textfont.py        |   205 +-
 plotly/graph_objs/scatter/_unselected.py      |    46 +-
 .../graph_objs/scatter/hoverlabel/__init__.py |    13 +-
 plotly/graph_objs/scatter/hoverlabel/_font.py |   205 +-
 .../scatter/legendgrouptitle/__init__.py      |    13 +-
 .../scatter/legendgrouptitle/_font.py         |   124 +-
 plotly/graph_objs/scatter/marker/__init__.py  |    20 +-
 plotly/graph_objs/scatter/marker/_colorbar.py |   484 +-
 plotly/graph_objs/scatter/marker/_gradient.py |    62 +-
 plotly/graph_objs/scatter/marker/_line.py     |   151 +-
 .../scatter/marker/colorbar/__init__.py       |    20 +-
 .../scatter/marker/colorbar/_tickfont.py      |   124 +-
 .../marker/colorbar/_tickformatstop.py        |    98 +-
 .../scatter/marker/colorbar/_title.py         |    53 +-
 .../scatter/marker/colorbar/title/__init__.py |    13 +-
 .../scatter/marker/colorbar/title/_font.py    |   124 +-
 .../graph_objs/scatter/selected/__init__.py   |    16 +-
 plotly/graph_objs/scatter/selected/_marker.py |    53 +-
 .../graph_objs/scatter/selected/_textfont.py  |    39 +-
 .../graph_objs/scatter/unselected/__init__.py |    16 +-
 .../graph_objs/scatter/unselected/_marker.py  |    53 +-
 .../scatter/unselected/_textfont.py           |    39 +-
 plotly/graph_objs/scatter3d/__init__.py       |    42 +-
 plotly/graph_objs/scatter3d/_error_x.py       |   178 +-
 plotly/graph_objs/scatter3d/_error_y.py       |   178 +-
 plotly/graph_objs/scatter3d/_error_z.py       |   169 +-
 plotly/graph_objs/scatter3d/_hoverlabel.py    |   124 +-
 .../graph_objs/scatter3d/_legendgrouptitle.py |    46 +-
 plotly/graph_objs/scatter3d/_line.py          |   169 +-
 plotly/graph_objs/scatter3d/_marker.py        |   232 +-
 plotly/graph_objs/scatter3d/_projection.py    |    53 +-
 plotly/graph_objs/scatter3d/_stream.py        |    46 +-
 plotly/graph_objs/scatter3d/_textfont.py      |   151 +-
 .../scatter3d/hoverlabel/__init__.py          |    13 +-
 .../graph_objs/scatter3d/hoverlabel/_font.py  |   205 +-
 .../scatter3d/legendgrouptitle/__init__.py    |    13 +-
 .../scatter3d/legendgrouptitle/_font.py       |   124 +-
 plotly/graph_objs/scatter3d/line/__init__.py  |    16 +-
 plotly/graph_objs/scatter3d/line/_colorbar.py |   484 +-
 .../scatter3d/line/colorbar/__init__.py       |    20 +-
 .../scatter3d/line/colorbar/_tickfont.py      |   124 +-
 .../line/colorbar/_tickformatstop.py          |    98 +-
 .../scatter3d/line/colorbar/_title.py         |    53 +-
 .../scatter3d/line/colorbar/title/__init__.py |    13 +-
 .../scatter3d/line/colorbar/title/_font.py    |   124 +-
 .../graph_objs/scatter3d/marker/__init__.py   |    17 +-
 .../graph_objs/scatter3d/marker/_colorbar.py  |   484 +-
 plotly/graph_objs/scatter3d/marker/_line.py   |   142 +-
 .../scatter3d/marker/colorbar/__init__.py     |    20 +-
 .../scatter3d/marker/colorbar/_tickfont.py    |   124 +-
 .../marker/colorbar/_tickformatstop.py        |    98 +-
 .../scatter3d/marker/colorbar/_title.py       |    53 +-
 .../marker/colorbar/title/__init__.py         |    13 +-
 .../scatter3d/marker/colorbar/title/_font.py  |   124 +-
 .../scatter3d/projection/__init__.py          |    17 +-
 plotly/graph_objs/scatter3d/projection/_x.py  |    53 +-
 plotly/graph_objs/scatter3d/projection/_y.py  |    53 +-
 plotly/graph_objs/scatter3d/projection/_z.py  |    53 +-
 plotly/graph_objs/scattercarpet/__init__.py   |    38 +-
 .../graph_objs/scattercarpet/_hoverlabel.py   |   124 +-
 .../scattercarpet/_legendgrouptitle.py        |    46 +-
 plotly/graph_objs/scattercarpet/_line.py      |   106 +-
 plotly/graph_objs/scattercarpet/_marker.py    |   304 +-
 plotly/graph_objs/scattercarpet/_selected.py  |    46 +-
 plotly/graph_objs/scattercarpet/_stream.py    |    46 +-
 plotly/graph_objs/scattercarpet/_textfont.py  |   205 +-
 .../graph_objs/scattercarpet/_unselected.py   |    46 +-
 .../scattercarpet/hoverlabel/__init__.py      |    13 +-
 .../scattercarpet/hoverlabel/_font.py         |   205 +-
 .../legendgrouptitle/__init__.py              |    13 +-
 .../scattercarpet/legendgrouptitle/_font.py   |   124 +-
 .../scattercarpet/marker/__init__.py          |    20 +-
 .../scattercarpet/marker/_colorbar.py         |   484 +-
 .../scattercarpet/marker/_gradient.py         |    62 +-
 .../graph_objs/scattercarpet/marker/_line.py  |   151 +-
 .../scattercarpet/marker/colorbar/__init__.py |    20 +-
 .../marker/colorbar/_tickfont.py              |   124 +-
 .../marker/colorbar/_tickformatstop.py        |    98 +-
 .../scattercarpet/marker/colorbar/_title.py   |    53 +-
 .../marker/colorbar/title/__init__.py         |    13 +-
 .../marker/colorbar/title/_font.py            |   124 +-
 .../scattercarpet/selected/__init__.py        |    16 +-
 .../scattercarpet/selected/_marker.py         |    53 +-
 .../scattercarpet/selected/_textfont.py       |    39 +-
 .../scattercarpet/unselected/__init__.py      |    16 +-
 .../scattercarpet/unselected/_marker.py       |    53 +-
 .../scattercarpet/unselected/_textfont.py     |    39 +-
 plotly/graph_objs/scattergeo/__init__.py      |    38 +-
 plotly/graph_objs/scattergeo/_hoverlabel.py   |   124 +-
 .../scattergeo/_legendgrouptitle.py           |    46 +-
 plotly/graph_objs/scattergeo/_line.py         |    53 +-
 plotly/graph_objs/scattergeo/_marker.py       |   295 +-
 plotly/graph_objs/scattergeo/_selected.py     |    46 +-
 plotly/graph_objs/scattergeo/_stream.py       |    46 +-
 plotly/graph_objs/scattergeo/_textfont.py     |   205 +-
 plotly/graph_objs/scattergeo/_unselected.py   |    46 +-
 .../scattergeo/hoverlabel/__init__.py         |    13 +-
 .../graph_objs/scattergeo/hoverlabel/_font.py |   205 +-
 .../scattergeo/legendgrouptitle/__init__.py   |    13 +-
 .../scattergeo/legendgrouptitle/_font.py      |   124 +-
 .../graph_objs/scattergeo/marker/__init__.py  |    20 +-
 .../graph_objs/scattergeo/marker/_colorbar.py |   484 +-
 .../graph_objs/scattergeo/marker/_gradient.py |    62 +-
 plotly/graph_objs/scattergeo/marker/_line.py  |   151 +-
 .../scattergeo/marker/colorbar/__init__.py    |    20 +-
 .../scattergeo/marker/colorbar/_tickfont.py   |   124 +-
 .../marker/colorbar/_tickformatstop.py        |    98 +-
 .../scattergeo/marker/colorbar/_title.py      |    53 +-
 .../marker/colorbar/title/__init__.py         |    13 +-
 .../scattergeo/marker/colorbar/title/_font.py |   124 +-
 .../scattergeo/selected/__init__.py           |    16 +-
 .../graph_objs/scattergeo/selected/_marker.py |    53 +-
 .../scattergeo/selected/_textfont.py          |    39 +-
 .../scattergeo/unselected/__init__.py         |    16 +-
 .../scattergeo/unselected/_marker.py          |    53 +-
 .../scattergeo/unselected/_textfont.py        |    39 +-
 plotly/graph_objs/scattergl/__init__.py       |    42 +-
 plotly/graph_objs/scattergl/_error_x.py       |   178 +-
 plotly/graph_objs/scattergl/_error_y.py       |   169 +-
 plotly/graph_objs/scattergl/_hoverlabel.py    |   124 +-
 .../graph_objs/scattergl/_legendgrouptitle.py |    46 +-
 plotly/graph_objs/scattergl/_line.py          |    62 +-
 plotly/graph_objs/scattergl/_marker.py        |   259 +-
 plotly/graph_objs/scattergl/_selected.py      |    46 +-
 plotly/graph_objs/scattergl/_stream.py        |    46 +-
 plotly/graph_objs/scattergl/_textfont.py      |   151 +-
 plotly/graph_objs/scattergl/_unselected.py    |    46 +-
 .../scattergl/hoverlabel/__init__.py          |    13 +-
 .../graph_objs/scattergl/hoverlabel/_font.py  |   205 +-
 .../scattergl/legendgrouptitle/__init__.py    |    13 +-
 .../scattergl/legendgrouptitle/_font.py       |   124 +-
 .../graph_objs/scattergl/marker/__init__.py   |    17 +-
 .../graph_objs/scattergl/marker/_colorbar.py  |   484 +-
 plotly/graph_objs/scattergl/marker/_line.py   |   151 +-
 .../scattergl/marker/colorbar/__init__.py     |    20 +-
 .../scattergl/marker/colorbar/_tickfont.py    |   124 +-
 .../marker/colorbar/_tickformatstop.py        |    98 +-
 .../scattergl/marker/colorbar/_title.py       |    53 +-
 .../marker/colorbar/title/__init__.py         |    13 +-
 .../scattergl/marker/colorbar/title/_font.py  |   124 +-
 .../graph_objs/scattergl/selected/__init__.py |    16 +-
 .../graph_objs/scattergl/selected/_marker.py  |    53 +-
 .../scattergl/selected/_textfont.py           |    39 +-
 .../scattergl/unselected/__init__.py          |    16 +-
 .../scattergl/unselected/_marker.py           |    53 +-
 .../scattergl/unselected/_textfont.py         |    39 +-
 plotly/graph_objs/scattermap/__init__.py      |    40 +-
 plotly/graph_objs/scattermap/_cluster.py      |   133 +-
 plotly/graph_objs/scattermap/_hoverlabel.py   |   124 +-
 .../scattermap/_legendgrouptitle.py           |    46 +-
 plotly/graph_objs/scattermap/_line.py         |    46 +-
 plotly/graph_objs/scattermap/_marker.py       |   259 +-
 plotly/graph_objs/scattermap/_selected.py     |    39 +-
 plotly/graph_objs/scattermap/_stream.py       |    46 +-
 plotly/graph_objs/scattermap/_textfont.py     |    76 +-
 plotly/graph_objs/scattermap/_unselected.py   |    39 +-
 .../scattermap/hoverlabel/__init__.py         |    13 +-
 .../graph_objs/scattermap/hoverlabel/_font.py |   205 +-
 .../scattermap/legendgrouptitle/__init__.py   |    13 +-
 .../scattermap/legendgrouptitle/_font.py      |   124 +-
 .../graph_objs/scattermap/marker/__init__.py  |    16 +-
 .../graph_objs/scattermap/marker/_colorbar.py |   484 +-
 .../scattermap/marker/colorbar/__init__.py    |    20 +-
 .../scattermap/marker/colorbar/_tickfont.py   |   124 +-
 .../marker/colorbar/_tickformatstop.py        |    98 +-
 .../scattermap/marker/colorbar/_title.py      |    53 +-
 .../marker/colorbar/title/__init__.py         |    13 +-
 .../scattermap/marker/colorbar/title/_font.py |   124 +-
 .../scattermap/selected/__init__.py           |    13 +-
 .../graph_objs/scattermap/selected/_marker.py |    53 +-
 .../scattermap/unselected/__init__.py         |    13 +-
 .../scattermap/unselected/_marker.py          |    53 +-
 plotly/graph_objs/scattermapbox/__init__.py   |    40 +-
 plotly/graph_objs/scattermapbox/_cluster.py   |   133 +-
 .../graph_objs/scattermapbox/_hoverlabel.py   |   124 +-
 .../scattermapbox/_legendgrouptitle.py        |    46 +-
 plotly/graph_objs/scattermapbox/_line.py      |    46 +-
 plotly/graph_objs/scattermapbox/_marker.py    |   259 +-
 plotly/graph_objs/scattermapbox/_selected.py  |    39 +-
 plotly/graph_objs/scattermapbox/_stream.py    |    46 +-
 plotly/graph_objs/scattermapbox/_textfont.py  |    76 +-
 .../graph_objs/scattermapbox/_unselected.py   |    39 +-
 .../scattermapbox/hoverlabel/__init__.py      |    13 +-
 .../scattermapbox/hoverlabel/_font.py         |   205 +-
 .../legendgrouptitle/__init__.py              |    13 +-
 .../scattermapbox/legendgrouptitle/_font.py   |   124 +-
 .../scattermapbox/marker/__init__.py          |    16 +-
 .../scattermapbox/marker/_colorbar.py         |   484 +-
 .../scattermapbox/marker/colorbar/__init__.py |    20 +-
 .../marker/colorbar/_tickfont.py              |   124 +-
 .../marker/colorbar/_tickformatstop.py        |    98 +-
 .../scattermapbox/marker/colorbar/_title.py   |    53 +-
 .../marker/colorbar/title/__init__.py         |    13 +-
 .../marker/colorbar/title/_font.py            |   124 +-
 .../scattermapbox/selected/__init__.py        |    13 +-
 .../scattermapbox/selected/_marker.py         |    53 +-
 .../scattermapbox/unselected/__init__.py      |    13 +-
 .../scattermapbox/unselected/_marker.py       |    53 +-
 plotly/graph_objs/scatterpolar/__init__.py    |    38 +-
 plotly/graph_objs/scatterpolar/_hoverlabel.py |   124 +-
 .../scatterpolar/_legendgrouptitle.py         |    46 +-
 plotly/graph_objs/scatterpolar/_line.py       |   106 +-
 plotly/graph_objs/scatterpolar/_marker.py     |   304 +-
 plotly/graph_objs/scatterpolar/_selected.py   |    46 +-
 plotly/graph_objs/scatterpolar/_stream.py     |    46 +-
 plotly/graph_objs/scatterpolar/_textfont.py   |   205 +-
 plotly/graph_objs/scatterpolar/_unselected.py |    46 +-
 .../scatterpolar/hoverlabel/__init__.py       |    13 +-
 .../scatterpolar/hoverlabel/_font.py          |   205 +-
 .../scatterpolar/legendgrouptitle/__init__.py |    13 +-
 .../scatterpolar/legendgrouptitle/_font.py    |   124 +-
 .../scatterpolar/marker/__init__.py           |    20 +-
 .../scatterpolar/marker/_colorbar.py          |   484 +-
 .../scatterpolar/marker/_gradient.py          |    62 +-
 .../graph_objs/scatterpolar/marker/_line.py   |   151 +-
 .../scatterpolar/marker/colorbar/__init__.py  |    20 +-
 .../scatterpolar/marker/colorbar/_tickfont.py |   124 +-
 .../marker/colorbar/_tickformatstop.py        |    98 +-
 .../scatterpolar/marker/colorbar/_title.py    |    53 +-
 .../marker/colorbar/title/__init__.py         |    13 +-
 .../marker/colorbar/title/_font.py            |   124 +-
 .../scatterpolar/selected/__init__.py         |    16 +-
 .../scatterpolar/selected/_marker.py          |    53 +-
 .../scatterpolar/selected/_textfont.py        |    39 +-
 .../scatterpolar/unselected/__init__.py       |    16 +-
 .../scatterpolar/unselected/_marker.py        |    53 +-
 .../scatterpolar/unselected/_textfont.py      |    39 +-
 plotly/graph_objs/scatterpolargl/__init__.py  |    38 +-
 .../graph_objs/scatterpolargl/_hoverlabel.py  |   124 +-
 .../scatterpolargl/_legendgrouptitle.py       |    46 +-
 plotly/graph_objs/scatterpolargl/_line.py     |    53 +-
 plotly/graph_objs/scatterpolargl/_marker.py   |   259 +-
 plotly/graph_objs/scatterpolargl/_selected.py |    46 +-
 plotly/graph_objs/scatterpolargl/_stream.py   |    46 +-
 plotly/graph_objs/scatterpolargl/_textfont.py |   151 +-
 .../graph_objs/scatterpolargl/_unselected.py  |    46 +-
 .../scatterpolargl/hoverlabel/__init__.py     |    13 +-
 .../scatterpolargl/hoverlabel/_font.py        |   205 +-
 .../legendgrouptitle/__init__.py              |    13 +-
 .../scatterpolargl/legendgrouptitle/_font.py  |   124 +-
 .../scatterpolargl/marker/__init__.py         |    17 +-
 .../scatterpolargl/marker/_colorbar.py        |   484 +-
 .../graph_objs/scatterpolargl/marker/_line.py |   151 +-
 .../marker/colorbar/__init__.py               |    20 +-
 .../marker/colorbar/_tickfont.py              |   124 +-
 .../marker/colorbar/_tickformatstop.py        |    98 +-
 .../scatterpolargl/marker/colorbar/_title.py  |    53 +-
 .../marker/colorbar/title/__init__.py         |    13 +-
 .../marker/colorbar/title/_font.py            |   124 +-
 .../scatterpolargl/selected/__init__.py       |    16 +-
 .../scatterpolargl/selected/_marker.py        |    53 +-
 .../scatterpolargl/selected/_textfont.py      |    39 +-
 .../scatterpolargl/unselected/__init__.py     |    16 +-
 .../scatterpolargl/unselected/_marker.py      |    53 +-
 .../scatterpolargl/unselected/_textfont.py    |    39 +-
 plotly/graph_objs/scattersmith/__init__.py    |    38 +-
 plotly/graph_objs/scattersmith/_hoverlabel.py |   124 +-
 .../scattersmith/_legendgrouptitle.py         |    46 +-
 plotly/graph_objs/scattersmith/_line.py       |   106 +-
 plotly/graph_objs/scattersmith/_marker.py     |   304 +-
 plotly/graph_objs/scattersmith/_selected.py   |    46 +-
 plotly/graph_objs/scattersmith/_stream.py     |    46 +-
 plotly/graph_objs/scattersmith/_textfont.py   |   205 +-
 plotly/graph_objs/scattersmith/_unselected.py |    46 +-
 .../scattersmith/hoverlabel/__init__.py       |    13 +-
 .../scattersmith/hoverlabel/_font.py          |   205 +-
 .../scattersmith/legendgrouptitle/__init__.py |    13 +-
 .../scattersmith/legendgrouptitle/_font.py    |   124 +-
 .../scattersmith/marker/__init__.py           |    20 +-
 .../scattersmith/marker/_colorbar.py          |   484 +-
 .../scattersmith/marker/_gradient.py          |    62 +-
 .../graph_objs/scattersmith/marker/_line.py   |   151 +-
 .../scattersmith/marker/colorbar/__init__.py  |    20 +-
 .../scattersmith/marker/colorbar/_tickfont.py |   124 +-
 .../marker/colorbar/_tickformatstop.py        |    98 +-
 .../scattersmith/marker/colorbar/_title.py    |    53 +-
 .../marker/colorbar/title/__init__.py         |    13 +-
 .../marker/colorbar/title/_font.py            |   124 +-
 .../scattersmith/selected/__init__.py         |    16 +-
 .../scattersmith/selected/_marker.py          |    53 +-
 .../scattersmith/selected/_textfont.py        |    39 +-
 .../scattersmith/unselected/__init__.py       |    16 +-
 .../scattersmith/unselected/_marker.py        |    53 +-
 .../scattersmith/unselected/_textfont.py      |    39 +-
 plotly/graph_objs/scatterternary/__init__.py  |    38 +-
 .../graph_objs/scatterternary/_hoverlabel.py  |   124 +-
 .../scatterternary/_legendgrouptitle.py       |    46 +-
 plotly/graph_objs/scatterternary/_line.py     |   106 +-
 plotly/graph_objs/scatterternary/_marker.py   |   304 +-
 plotly/graph_objs/scatterternary/_selected.py |    46 +-
 plotly/graph_objs/scatterternary/_stream.py   |    46 +-
 plotly/graph_objs/scatterternary/_textfont.py |   205 +-
 .../graph_objs/scatterternary/_unselected.py  |    46 +-
 .../scatterternary/hoverlabel/__init__.py     |    13 +-
 .../scatterternary/hoverlabel/_font.py        |   205 +-
 .../legendgrouptitle/__init__.py              |    13 +-
 .../scatterternary/legendgrouptitle/_font.py  |   124 +-
 .../scatterternary/marker/__init__.py         |    20 +-
 .../scatterternary/marker/_colorbar.py        |   484 +-
 .../scatterternary/marker/_gradient.py        |    62 +-
 .../graph_objs/scatterternary/marker/_line.py |   151 +-
 .../marker/colorbar/__init__.py               |    20 +-
 .../marker/colorbar/_tickfont.py              |   124 +-
 .../marker/colorbar/_tickformatstop.py        |    98 +-
 .../scatterternary/marker/colorbar/_title.py  |    53 +-
 .../marker/colorbar/title/__init__.py         |    13 +-
 .../marker/colorbar/title/_font.py            |   124 +-
 .../scatterternary/selected/__init__.py       |    16 +-
 .../scatterternary/selected/_marker.py        |    53 +-
 .../scatterternary/selected/_textfont.py      |    39 +-
 .../scatterternary/unselected/__init__.py     |    16 +-
 .../scatterternary/unselected/_marker.py      |    53 +-
 .../scatterternary/unselected/_textfont.py    |    39 +-
 plotly/graph_objs/splom/__init__.py           |    46 +-
 plotly/graph_objs/splom/_diagonal.py          |    39 +-
 plotly/graph_objs/splom/_dimension.py         |   106 +-
 plotly/graph_objs/splom/_hoverlabel.py        |   124 +-
 plotly/graph_objs/splom/_legendgrouptitle.py  |    46 +-
 plotly/graph_objs/splom/_marker.py            |   259 +-
 plotly/graph_objs/splom/_selected.py          |    39 +-
 plotly/graph_objs/splom/_stream.py            |    46 +-
 plotly/graph_objs/splom/_unselected.py        |    39 +-
 plotly/graph_objs/splom/dimension/__init__.py |    13 +-
 plotly/graph_objs/splom/dimension/_axis.py    |    46 +-
 .../graph_objs/splom/hoverlabel/__init__.py   |    13 +-
 plotly/graph_objs/splom/hoverlabel/_font.py   |   205 +-
 .../splom/legendgrouptitle/__init__.py        |    13 +-
 .../splom/legendgrouptitle/_font.py           |   124 +-
 plotly/graph_objs/splom/marker/__init__.py    |    17 +-
 plotly/graph_objs/splom/marker/_colorbar.py   |   484 +-
 plotly/graph_objs/splom/marker/_line.py       |   151 +-
 .../splom/marker/colorbar/__init__.py         |    20 +-
 .../splom/marker/colorbar/_tickfont.py        |   124 +-
 .../splom/marker/colorbar/_tickformatstop.py  |    98 +-
 .../splom/marker/colorbar/_title.py           |    53 +-
 .../splom/marker/colorbar/title/__init__.py   |    13 +-
 .../splom/marker/colorbar/title/_font.py      |   124 +-
 plotly/graph_objs/splom/selected/__init__.py  |    13 +-
 plotly/graph_objs/splom/selected/_marker.py   |    53 +-
 .../graph_objs/splom/unselected/__init__.py   |    13 +-
 plotly/graph_objs/splom/unselected/_marker.py |    53 +-
 plotly/graph_objs/streamtube/__init__.py      |    34 +-
 plotly/graph_objs/streamtube/_colorbar.py     |   484 +-
 plotly/graph_objs/streamtube/_hoverlabel.py   |   124 +-
 .../streamtube/_legendgrouptitle.py           |    46 +-
 plotly/graph_objs/streamtube/_lighting.py     |   106 +-
 .../graph_objs/streamtube/_lightposition.py   |    53 +-
 plotly/graph_objs/streamtube/_starts.py       |    88 +-
 plotly/graph_objs/streamtube/_stream.py       |    46 +-
 .../streamtube/colorbar/__init__.py           |    20 +-
 .../streamtube/colorbar/_tickfont.py          |   124 +-
 .../streamtube/colorbar/_tickformatstop.py    |    98 +-
 .../graph_objs/streamtube/colorbar/_title.py  |    53 +-
 .../streamtube/colorbar/title/__init__.py     |    13 +-
 .../streamtube/colorbar/title/_font.py        |   124 +-
 .../streamtube/hoverlabel/__init__.py         |    13 +-
 .../graph_objs/streamtube/hoverlabel/_font.py |   205 +-
 .../streamtube/legendgrouptitle/__init__.py   |    13 +-
 .../streamtube/legendgrouptitle/_font.py      |   124 +-
 plotly/graph_objs/sunburst/__init__.py        |    40 +-
 plotly/graph_objs/sunburst/_domain.py         |   108 +-
 plotly/graph_objs/sunburst/_hoverlabel.py     |   124 +-
 plotly/graph_objs/sunburst/_insidetextfont.py |   205 +-
 plotly/graph_objs/sunburst/_leaf.py           |    39 +-
 .../graph_objs/sunburst/_legendgrouptitle.py  |    46 +-
 plotly/graph_objs/sunburst/_marker.py         |   169 +-
 .../graph_objs/sunburst/_outsidetextfont.py   |   205 +-
 plotly/graph_objs/sunburst/_root.py           |    39 +-
 plotly/graph_objs/sunburst/_stream.py         |    46 +-
 plotly/graph_objs/sunburst/_textfont.py       |   205 +-
 .../sunburst/hoverlabel/__init__.py           |    13 +-
 .../graph_objs/sunburst/hoverlabel/_font.py   |   205 +-
 .../sunburst/legendgrouptitle/__init__.py     |    13 +-
 .../sunburst/legendgrouptitle/_font.py        |   124 +-
 plotly/graph_objs/sunburst/marker/__init__.py |    18 +-
 .../graph_objs/sunburst/marker/_colorbar.py   |   484 +-
 plotly/graph_objs/sunburst/marker/_line.py    |    62 +-
 plotly/graph_objs/sunburst/marker/_pattern.py |   151 +-
 .../sunburst/marker/colorbar/__init__.py      |    20 +-
 .../sunburst/marker/colorbar/_tickfont.py     |   124 +-
 .../marker/colorbar/_tickformatstop.py        |    98 +-
 .../sunburst/marker/colorbar/_title.py        |    53 +-
 .../marker/colorbar/title/__init__.py         |    13 +-
 .../sunburst/marker/colorbar/title/_font.py   |   124 +-
 plotly/graph_objs/surface/__init__.py         |    35 +-
 plotly/graph_objs/surface/_colorbar.py        |   484 +-
 plotly/graph_objs/surface/_contours.py        |    53 +-
 plotly/graph_objs/surface/_hoverlabel.py      |   124 +-
 .../graph_objs/surface/_legendgrouptitle.py   |    46 +-
 plotly/graph_objs/surface/_lighting.py        |    76 +-
 plotly/graph_objs/surface/_lightposition.py   |    53 +-
 plotly/graph_objs/surface/_stream.py          |    46 +-
 .../graph_objs/surface/colorbar/__init__.py   |    20 +-
 .../graph_objs/surface/colorbar/_tickfont.py  |   124 +-
 .../surface/colorbar/_tickformatstop.py       |    98 +-
 plotly/graph_objs/surface/colorbar/_title.py  |    53 +-
 .../surface/colorbar/title/__init__.py        |    13 +-
 .../surface/colorbar/title/_font.py           |   124 +-
 .../graph_objs/surface/contours/__init__.py   |    20 +-
 plotly/graph_objs/surface/contours/_x.py      |   142 +-
 plotly/graph_objs/surface/contours/_y.py      |   142 +-
 plotly/graph_objs/surface/contours/_z.py      |   142 +-
 .../graph_objs/surface/contours/x/__init__.py |    13 +-
 .../graph_objs/surface/contours/x/_project.py |    53 +-
 .../graph_objs/surface/contours/y/__init__.py |    13 +-
 .../graph_objs/surface/contours/y/_project.py |    53 +-
 .../graph_objs/surface/contours/z/__init__.py |    13 +-
 .../graph_objs/surface/contours/z/_project.py |    53 +-
 .../graph_objs/surface/hoverlabel/__init__.py |    13 +-
 plotly/graph_objs/surface/hoverlabel/_font.py |   205 +-
 .../surface/legendgrouptitle/__init__.py      |    13 +-
 .../surface/legendgrouptitle/_font.py         |   124 +-
 plotly/graph_objs/table/__init__.py           |    33 +-
 plotly/graph_objs/table/_cells.py             |   169 +-
 plotly/graph_objs/table/_domain.py            |   108 +-
 plotly/graph_objs/table/_header.py            |   169 +-
 plotly/graph_objs/table/_hoverlabel.py        |   124 +-
 plotly/graph_objs/table/_legendgrouptitle.py  |    46 +-
 plotly/graph_objs/table/_stream.py            |    46 +-
 plotly/graph_objs/table/cells/__init__.py     |    17 +-
 plotly/graph_objs/table/cells/_fill.py        |    46 +-
 plotly/graph_objs/table/cells/_font.py        |   205 +-
 plotly/graph_objs/table/cells/_line.py        |    62 +-
 plotly/graph_objs/table/header/__init__.py    |    17 +-
 plotly/graph_objs/table/header/_fill.py       |    46 +-
 plotly/graph_objs/table/header/_font.py       |   205 +-
 plotly/graph_objs/table/header/_line.py       |    62 +-
 .../graph_objs/table/hoverlabel/__init__.py   |    13 +-
 plotly/graph_objs/table/hoverlabel/_font.py   |   205 +-
 .../table/legendgrouptitle/__init__.py        |    13 +-
 .../table/legendgrouptitle/_font.py           |   124 +-
 plotly/graph_objs/treemap/__init__.py         |    43 +-
 plotly/graph_objs/treemap/_domain.py          |   108 +-
 plotly/graph_objs/treemap/_hoverlabel.py      |   124 +-
 plotly/graph_objs/treemap/_insidetextfont.py  |   205 +-
 .../graph_objs/treemap/_legendgrouptitle.py   |    46 +-
 plotly/graph_objs/treemap/_marker.py          |   196 +-
 plotly/graph_objs/treemap/_outsidetextfont.py |   205 +-
 plotly/graph_objs/treemap/_pathbar.py         |    76 +-
 plotly/graph_objs/treemap/_root.py            |    39 +-
 plotly/graph_objs/treemap/_stream.py          |    46 +-
 plotly/graph_objs/treemap/_textfont.py        |   205 +-
 plotly/graph_objs/treemap/_tiling.py          |   129 +-
 .../graph_objs/treemap/hoverlabel/__init__.py |    13 +-
 plotly/graph_objs/treemap/hoverlabel/_font.py |   205 +-
 .../treemap/legendgrouptitle/__init__.py      |    13 +-
 .../treemap/legendgrouptitle/_font.py         |   124 +-
 plotly/graph_objs/treemap/marker/__init__.py  |    21 +-
 plotly/graph_objs/treemap/marker/_colorbar.py |   484 +-
 plotly/graph_objs/treemap/marker/_line.py     |    62 +-
 plotly/graph_objs/treemap/marker/_pad.py      |    60 +-
 plotly/graph_objs/treemap/marker/_pattern.py  |   151 +-
 .../treemap/marker/colorbar/__init__.py       |    20 +-
 .../treemap/marker/colorbar/_tickfont.py      |   124 +-
 .../marker/colorbar/_tickformatstop.py        |    98 +-
 .../treemap/marker/colorbar/_title.py         |    53 +-
 .../treemap/marker/colorbar/title/__init__.py |    13 +-
 .../treemap/marker/colorbar/title/_font.py    |   124 +-
 plotly/graph_objs/treemap/pathbar/__init__.py |    13 +-
 .../graph_objs/treemap/pathbar/_textfont.py   |   205 +-
 plotly/graph_objs/violin/__init__.py          |    41 +-
 plotly/graph_objs/violin/_box.py              |    62 +-
 plotly/graph_objs/violin/_hoverlabel.py       |   124 +-
 plotly/graph_objs/violin/_legendgrouptitle.py |    46 +-
 plotly/graph_objs/violin/_line.py             |    46 +-
 plotly/graph_objs/violin/_marker.py           |   106 +-
 plotly/graph_objs/violin/_meanline.py         |    53 +-
 plotly/graph_objs/violin/_selected.py         |    39 +-
 plotly/graph_objs/violin/_stream.py           |    46 +-
 plotly/graph_objs/violin/_unselected.py       |    39 +-
 plotly/graph_objs/violin/box/__init__.py      |    13 +-
 plotly/graph_objs/violin/box/_line.py         |    46 +-
 .../graph_objs/violin/hoverlabel/__init__.py  |    13 +-
 plotly/graph_objs/violin/hoverlabel/_font.py  |   205 +-
 .../violin/legendgrouptitle/__init__.py       |    13 +-
 .../violin/legendgrouptitle/_font.py          |   124 +-
 plotly/graph_objs/violin/marker/__init__.py   |    13 +-
 plotly/graph_objs/violin/marker/_line.py      |    68 +-
 plotly/graph_objs/violin/selected/__init__.py |    13 +-
 plotly/graph_objs/violin/selected/_marker.py  |    53 +-
 .../graph_objs/violin/unselected/__init__.py  |    13 +-
 .../graph_objs/violin/unselected/_marker.py   |    53 +-
 plotly/graph_objs/volume/__init__.py          |    44 +-
 plotly/graph_objs/volume/_caps.py             |    53 +-
 plotly/graph_objs/volume/_colorbar.py         |   484 +-
 plotly/graph_objs/volume/_contour.py          |    53 +-
 plotly/graph_objs/volume/_hoverlabel.py       |   124 +-
 plotly/graph_objs/volume/_legendgrouptitle.py |    46 +-
 plotly/graph_objs/volume/_lighting.py         |   106 +-
 plotly/graph_objs/volume/_lightposition.py    |    53 +-
 plotly/graph_objs/volume/_slices.py           |    53 +-
 plotly/graph_objs/volume/_spaceframe.py       |    46 +-
 plotly/graph_objs/volume/_stream.py           |    46 +-
 plotly/graph_objs/volume/_surface.py          |    62 +-
 plotly/graph_objs/volume/caps/__init__.py     |    17 +-
 plotly/graph_objs/volume/caps/_x.py           |    46 +-
 plotly/graph_objs/volume/caps/_y.py           |    46 +-
 plotly/graph_objs/volume/caps/_z.py           |    46 +-
 plotly/graph_objs/volume/colorbar/__init__.py |    20 +-
 .../graph_objs/volume/colorbar/_tickfont.py   |   124 +-
 .../volume/colorbar/_tickformatstop.py        |    98 +-
 plotly/graph_objs/volume/colorbar/_title.py   |    53 +-
 .../volume/colorbar/title/__init__.py         |    13 +-
 .../graph_objs/volume/colorbar/title/_font.py |   124 +-
 .../graph_objs/volume/hoverlabel/__init__.py  |    13 +-
 plotly/graph_objs/volume/hoverlabel/_font.py  |   205 +-
 .../volume/legendgrouptitle/__init__.py       |    13 +-
 .../volume/legendgrouptitle/_font.py          |   124 +-
 plotly/graph_objs/volume/slices/__init__.py   |    17 +-
 plotly/graph_objs/volume/slices/_x.py         |    68 +-
 plotly/graph_objs/volume/slices/_y.py         |    68 +-
 plotly/graph_objs/volume/slices/_z.py         |    68 +-
 plotly/graph_objs/waterfall/__init__.py       |    50 +-
 plotly/graph_objs/waterfall/_connector.py     |    53 +-
 plotly/graph_objs/waterfall/_decreasing.py    |    39 +-
 plotly/graph_objs/waterfall/_hoverlabel.py    |   124 +-
 plotly/graph_objs/waterfall/_increasing.py    |    39 +-
 .../graph_objs/waterfall/_insidetextfont.py   |   205 +-
 .../graph_objs/waterfall/_legendgrouptitle.py |    46 +-
 .../graph_objs/waterfall/_outsidetextfont.py  |   205 +-
 plotly/graph_objs/waterfall/_stream.py        |    46 +-
 plotly/graph_objs/waterfall/_textfont.py      |   205 +-
 plotly/graph_objs/waterfall/_totals.py        |    39 +-
 .../waterfall/connector/__init__.py           |    13 +-
 .../graph_objs/waterfall/connector/_line.py   |    53 +-
 .../waterfall/decreasing/__init__.py          |    16 +-
 .../waterfall/decreasing/_marker.py           |    46 +-
 .../waterfall/decreasing/marker/__init__.py   |    13 +-
 .../waterfall/decreasing/marker/_line.py      |    46 +-
 .../waterfall/hoverlabel/__init__.py          |    13 +-
 .../graph_objs/waterfall/hoverlabel/_font.py  |   205 +-
 .../waterfall/increasing/__init__.py          |    16 +-
 .../waterfall/increasing/_marker.py           |    46 +-
 .../waterfall/increasing/marker/__init__.py   |    13 +-
 .../waterfall/increasing/marker/_line.py      |    46 +-
 .../waterfall/legendgrouptitle/__init__.py    |    13 +-
 .../waterfall/legendgrouptitle/_font.py       |   124 +-
 .../graph_objs/waterfall/totals/__init__.py   |    16 +-
 plotly/graph_objs/waterfall/totals/_marker.py |    46 +-
 .../waterfall/totals/marker/__init__.py       |    13 +-
 .../waterfall/totals/marker/_line.py          |    46 +-
 plotly/validators/__init__.py                 |   174 +-
 plotly/validators/bar/__init__.py             |   240 +-
 plotly/validators/bar/error_x/__init__.py     |    63 +-
 plotly/validators/bar/error_y/__init__.py     |    60 +-
 plotly/validators/bar/hoverlabel/__init__.py  |    45 +-
 .../bar/hoverlabel/font/__init__.py           |    72 +-
 .../validators/bar/insidetextfont/__init__.py |    72 +-
 .../bar/legendgrouptitle/__init__.py          |    14 +-
 .../bar/legendgrouptitle/font/__init__.py     |    45 +-
 plotly/validators/bar/marker/__init__.py      |    69 +-
 .../bar/marker/colorbar/__init__.py           |   165 +-
 .../bar/marker/colorbar/tickfont/__init__.py  |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../bar/marker/colorbar/title/__init__.py     |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 plotly/validators/bar/marker/line/__init__.py |    54 +-
 .../validators/bar/marker/pattern/__init__.py |    54 +-
 .../bar/outsidetextfont/__init__.py           |    72 +-
 plotly/validators/bar/selected/__init__.py    |    14 +-
 .../bar/selected/marker/__init__.py           |    14 +-
 .../bar/selected/textfont/__init__.py         |    13 +-
 plotly/validators/bar/stream/__init__.py      |    14 +-
 plotly/validators/bar/textfont/__init__.py    |    72 +-
 plotly/validators/bar/unselected/__init__.py  |    14 +-
 .../bar/unselected/marker/__init__.py         |    14 +-
 .../bar/unselected/textfont/__init__.py       |    13 +-
 plotly/validators/barpolar/__init__.py        |   159 +-
 .../barpolar/hoverlabel/__init__.py           |    45 +-
 .../barpolar/hoverlabel/font/__init__.py      |    72 +-
 .../barpolar/legendgrouptitle/__init__.py     |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 plotly/validators/barpolar/marker/__init__.py |    66 +-
 .../barpolar/marker/colorbar/__init__.py      |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../marker/colorbar/title/__init__.py         |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../barpolar/marker/line/__init__.py          |    54 +-
 .../barpolar/marker/pattern/__init__.py       |    54 +-
 .../validators/barpolar/selected/__init__.py  |    14 +-
 .../barpolar/selected/marker/__init__.py      |    14 +-
 .../barpolar/selected/textfont/__init__.py    |    13 +-
 plotly/validators/barpolar/stream/__init__.py |    14 +-
 .../barpolar/unselected/__init__.py           |    14 +-
 .../barpolar/unselected/marker/__init__.py    |    14 +-
 .../barpolar/unselected/textfont/__init__.py  |    13 +-
 plotly/validators/box/__init__.py             |   276 +-
 plotly/validators/box/hoverlabel/__init__.py  |    45 +-
 .../box/hoverlabel/font/__init__.py           |    72 +-
 .../box/legendgrouptitle/__init__.py          |    14 +-
 .../box/legendgrouptitle/font/__init__.py     |    45 +-
 plotly/validators/box/line/__init__.py        |    14 +-
 plotly/validators/box/marker/__init__.py      |    39 +-
 plotly/validators/box/marker/line/__init__.py |    30 +-
 plotly/validators/box/selected/__init__.py    |    13 +-
 .../box/selected/marker/__init__.py           |    23 +-
 plotly/validators/box/stream/__init__.py      |    14 +-
 plotly/validators/box/unselected/__init__.py  |    13 +-
 .../box/unselected/marker/__init__.py         |    23 +-
 plotly/validators/candlestick/__init__.py     |   165 +-
 .../candlestick/decreasing/__init__.py        |    14 +-
 .../candlestick/decreasing/line/__init__.py   |    14 +-
 .../candlestick/hoverlabel/__init__.py        |    48 +-
 .../candlestick/hoverlabel/font/__init__.py   |    72 +-
 .../candlestick/increasing/__init__.py        |    14 +-
 .../candlestick/increasing/line/__init__.py   |    14 +-
 .../candlestick/legendgrouptitle/__init__.py  |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../validators/candlestick/line/__init__.py   |    13 +-
 .../validators/candlestick/stream/__init__.py |    14 +-
 plotly/validators/carpet/__init__.py          |   129 +-
 plotly/validators/carpet/aaxis/__init__.py    |   192 +-
 .../carpet/aaxis/tickfont/__init__.py         |    45 +-
 .../carpet/aaxis/tickformatstop/__init__.py   |    33 +-
 .../validators/carpet/aaxis/title/__init__.py |    19 +-
 .../carpet/aaxis/title/font/__init__.py       |    45 +-
 plotly/validators/carpet/baxis/__init__.py    |   192 +-
 .../carpet/baxis/tickfont/__init__.py         |    45 +-
 .../carpet/baxis/tickformatstop/__init__.py   |    33 +-
 .../validators/carpet/baxis/title/__init__.py |    19 +-
 .../carpet/baxis/title/font/__init__.py       |    45 +-
 plotly/validators/carpet/font/__init__.py     |    45 +-
 .../carpet/legendgrouptitle/__init__.py       |    14 +-
 .../carpet/legendgrouptitle/font/__init__.py  |    45 +-
 plotly/validators/carpet/stream/__init__.py   |    14 +-
 plotly/validators/choropleth/__init__.py      |   162 +-
 plotly/validators/choropleth/_geojson.py      |    17 +-
 .../choropleth/colorbar/__init__.py           |   165 +-
 .../choropleth/colorbar/tickfont/__init__.py  |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../choropleth/colorbar/title/__init__.py     |    19 +-
 .../colorbar/title/font/__init__.py           |    45 +-
 .../choropleth/hoverlabel/__init__.py         |    45 +-
 .../choropleth/hoverlabel/font/__init__.py    |    72 +-
 .../choropleth/legendgrouptitle/__init__.py   |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../validators/choropleth/marker/__init__.py  |    27 +-
 .../choropleth/marker/line/__init__.py        |    30 +-
 .../choropleth/selected/__init__.py           |    13 +-
 .../choropleth/selected/marker/__init__.py    |    13 +-
 .../validators/choropleth/stream/__init__.py  |    14 +-
 .../choropleth/unselected/__init__.py         |    13 +-
 .../choropleth/unselected/marker/__init__.py  |    13 +-
 plotly/validators/choroplethmap/__init__.py   |   162 +-
 plotly/validators/choroplethmap/_geojson.py   |    17 +-
 .../choroplethmap/colorbar/__init__.py        |   165 +-
 .../colorbar/tickfont/__init__.py             |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../choroplethmap/colorbar/title/__init__.py  |    19 +-
 .../colorbar/title/font/__init__.py           |    45 +-
 .../choroplethmap/hoverlabel/__init__.py      |    45 +-
 .../choroplethmap/hoverlabel/font/__init__.py |    72 +-
 .../legendgrouptitle/__init__.py              |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../choroplethmap/marker/__init__.py          |    27 +-
 .../choroplethmap/marker/line/__init__.py     |    30 +-
 .../choroplethmap/selected/__init__.py        |    13 +-
 .../choroplethmap/selected/marker/__init__.py |    13 +-
 .../choroplethmap/stream/__init__.py          |    14 +-
 .../choroplethmap/unselected/__init__.py      |    13 +-
 .../unselected/marker/__init__.py             |    13 +-
 .../validators/choroplethmapbox/__init__.py   |   162 +-
 .../validators/choroplethmapbox/_geojson.py   |    17 +-
 .../choroplethmapbox/colorbar/__init__.py     |   165 +-
 .../colorbar/tickfont/__init__.py             |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../colorbar/title/__init__.py                |    19 +-
 .../colorbar/title/font/__init__.py           |    45 +-
 .../choroplethmapbox/hoverlabel/__init__.py   |    45 +-
 .../hoverlabel/font/__init__.py               |    72 +-
 .../legendgrouptitle/__init__.py              |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../choroplethmapbox/marker/__init__.py       |    27 +-
 .../choroplethmapbox/marker/line/__init__.py  |    30 +-
 .../choroplethmapbox/selected/__init__.py     |    13 +-
 .../selected/marker/__init__.py               |    13 +-
 .../choroplethmapbox/stream/__init__.py       |    14 +-
 .../choroplethmapbox/unselected/__init__.py   |    13 +-
 .../unselected/marker/__init__.py             |    13 +-
 plotly/validators/cone/__init__.py            |   201 +-
 plotly/validators/cone/colorbar/__init__.py   |   165 +-
 .../cone/colorbar/tickfont/__init__.py        |    45 +-
 .../cone/colorbar/tickformatstop/__init__.py  |    33 +-
 .../cone/colorbar/title/__init__.py           |    19 +-
 .../cone/colorbar/title/font/__init__.py      |    45 +-
 plotly/validators/cone/hoverlabel/__init__.py |    45 +-
 .../cone/hoverlabel/font/__init__.py          |    72 +-
 .../cone/legendgrouptitle/__init__.py         |    14 +-
 .../cone/legendgrouptitle/font/__init__.py    |    45 +-
 plotly/validators/cone/lighting/__init__.py   |    39 +-
 .../validators/cone/lightposition/__init__.py |    15 +-
 plotly/validators/cone/stream/__init__.py     |    14 +-
 plotly/validators/contour/__init__.py         |   237 +-
 .../validators/contour/colorbar/__init__.py   |   165 +-
 .../contour/colorbar/tickfont/__init__.py     |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../contour/colorbar/title/__init__.py        |    19 +-
 .../contour/colorbar/title/font/__init__.py   |    45 +-
 .../validators/contour/contours/__init__.py   |    51 +-
 .../contour/contours/labelfont/__init__.py    |    45 +-
 .../validators/contour/hoverlabel/__init__.py |    45 +-
 .../contour/hoverlabel/font/__init__.py       |    72 +-
 .../contour/legendgrouptitle/__init__.py      |    14 +-
 .../contour/legendgrouptitle/font/__init__.py |    45 +-
 plotly/validators/contour/line/__init__.py    |    30 +-
 plotly/validators/contour/stream/__init__.py  |    14 +-
 .../validators/contour/textfont/__init__.py   |    45 +-
 plotly/validators/contourcarpet/__init__.py   |   180 +-
 .../contourcarpet/colorbar/__init__.py        |   165 +-
 .../colorbar/tickfont/__init__.py             |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../contourcarpet/colorbar/title/__init__.py  |    19 +-
 .../colorbar/title/font/__init__.py           |    45 +-
 .../contourcarpet/contours/__init__.py        |    51 +-
 .../contours/labelfont/__init__.py            |    45 +-
 .../legendgrouptitle/__init__.py              |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../validators/contourcarpet/line/__init__.py |    30 +-
 .../contourcarpet/stream/__init__.py          |    14 +-
 plotly/validators/densitymap/__init__.py      |   159 +-
 .../densitymap/colorbar/__init__.py           |   165 +-
 .../densitymap/colorbar/tickfont/__init__.py  |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../densitymap/colorbar/title/__init__.py     |    19 +-
 .../colorbar/title/font/__init__.py           |    45 +-
 .../densitymap/hoverlabel/__init__.py         |    45 +-
 .../densitymap/hoverlabel/font/__init__.py    |    72 +-
 .../densitymap/legendgrouptitle/__init__.py   |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../validators/densitymap/stream/__init__.py  |    14 +-
 plotly/validators/densitymapbox/__init__.py   |   159 +-
 .../densitymapbox/colorbar/__init__.py        |   165 +-
 .../colorbar/tickfont/__init__.py             |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../densitymapbox/colorbar/title/__init__.py  |    19 +-
 .../colorbar/title/font/__init__.py           |    45 +-
 .../densitymapbox/hoverlabel/__init__.py      |    45 +-
 .../densitymapbox/hoverlabel/font/__init__.py |    72 +-
 .../legendgrouptitle/__init__.py              |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../densitymapbox/stream/__init__.py          |    14 +-
 plotly/validators/frame/__init__.py           |    36 +-
 plotly/validators/funnel/__init__.py          |   216 +-
 .../validators/funnel/connector/__init__.py   |    27 +-
 .../funnel/connector/line/__init__.py         |    19 +-
 .../validators/funnel/hoverlabel/__init__.py  |    45 +-
 .../funnel/hoverlabel/font/__init__.py        |    72 +-
 .../funnel/insidetextfont/__init__.py         |    72 +-
 .../funnel/legendgrouptitle/__init__.py       |    14 +-
 .../funnel/legendgrouptitle/font/__init__.py  |    45 +-
 plotly/validators/funnel/marker/__init__.py   |    63 +-
 .../funnel/marker/colorbar/__init__.py        |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../funnel/marker/colorbar/title/__init__.py  |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../validators/funnel/marker/line/__init__.py |    54 +-
 .../funnel/outsidetextfont/__init__.py        |    72 +-
 plotly/validators/funnel/stream/__init__.py   |    14 +-
 plotly/validators/funnel/textfont/__init__.py |    72 +-
 plotly/validators/funnelarea/__init__.py      |   156 +-
 .../validators/funnelarea/domain/__init__.py  |    30 +-
 .../funnelarea/hoverlabel/__init__.py         |    45 +-
 .../funnelarea/hoverlabel/font/__init__.py    |    72 +-
 .../funnelarea/insidetextfont/__init__.py     |    72 +-
 .../funnelarea/legendgrouptitle/__init__.py   |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../validators/funnelarea/marker/__init__.py  |    30 +-
 .../funnelarea/marker/line/__init__.py        |    30 +-
 .../funnelarea/marker/pattern/__init__.py     |    54 +-
 .../validators/funnelarea/stream/__init__.py  |    14 +-
 .../funnelarea/textfont/__init__.py           |    72 +-
 .../validators/funnelarea/title/__init__.py   |    23 +-
 .../funnelarea/title/font/__init__.py         |    72 +-
 plotly/validators/heatmap/__init__.py         |   231 +-
 .../validators/heatmap/colorbar/__init__.py   |   165 +-
 .../heatmap/colorbar/tickfont/__init__.py     |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../heatmap/colorbar/title/__init__.py        |    19 +-
 .../heatmap/colorbar/title/font/__init__.py   |    45 +-
 .../validators/heatmap/hoverlabel/__init__.py |    45 +-
 .../heatmap/hoverlabel/font/__init__.py       |    72 +-
 .../heatmap/legendgrouptitle/__init__.py      |    14 +-
 .../heatmap/legendgrouptitle/font/__init__.py |    45 +-
 plotly/validators/heatmap/stream/__init__.py  |    14 +-
 .../validators/heatmap/textfont/__init__.py   |    45 +-
 plotly/validators/histogram/__init__.py       |   216 +-
 .../histogram/cumulative/__init__.py          |    27 +-
 .../validators/histogram/error_x/__init__.py  |    63 +-
 .../validators/histogram/error_y/__init__.py  |    60 +-
 .../histogram/hoverlabel/__init__.py          |    45 +-
 .../histogram/hoverlabel/font/__init__.py     |    72 +-
 .../histogram/insidetextfont/__init__.py      |    45 +-
 .../histogram/legendgrouptitle/__init__.py    |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../validators/histogram/marker/__init__.py   |    69 +-
 .../histogram/marker/colorbar/__init__.py     |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../marker/colorbar/title/__init__.py         |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../histogram/marker/line/__init__.py         |    54 +-
 .../histogram/marker/pattern/__init__.py      |    54 +-
 .../histogram/outsidetextfont/__init__.py     |    45 +-
 .../validators/histogram/selected/__init__.py |    14 +-
 .../histogram/selected/marker/__init__.py     |    14 +-
 .../histogram/selected/textfont/__init__.py   |    13 +-
 .../validators/histogram/stream/__init__.py   |    14 +-
 .../validators/histogram/textfont/__init__.py |    45 +-
 .../histogram/unselected/__init__.py          |    14 +-
 .../histogram/unselected/marker/__init__.py   |    14 +-
 .../histogram/unselected/textfont/__init__.py |    13 +-
 plotly/validators/histogram/xbins/__init__.py |    19 +-
 plotly/validators/histogram/ybins/__init__.py |    19 +-
 plotly/validators/histogram2d/__init__.py     |   207 +-
 .../histogram2d/colorbar/__init__.py          |   165 +-
 .../histogram2d/colorbar/tickfont/__init__.py |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../histogram2d/colorbar/title/__init__.py    |    19 +-
 .../colorbar/title/font/__init__.py           |    45 +-
 .../histogram2d/hoverlabel/__init__.py        |    45 +-
 .../histogram2d/hoverlabel/font/__init__.py   |    72 +-
 .../histogram2d/legendgrouptitle/__init__.py  |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../validators/histogram2d/marker/__init__.py |    14 +-
 .../validators/histogram2d/stream/__init__.py |    14 +-
 .../histogram2d/textfont/__init__.py          |    45 +-
 .../validators/histogram2d/xbins/__init__.py  |    19 +-
 .../validators/histogram2d/ybins/__init__.py  |    19 +-
 .../validators/histogram2dcontour/__init__.py |   210 +-
 .../histogram2dcontour/colorbar/__init__.py   |   165 +-
 .../colorbar/tickfont/__init__.py             |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../colorbar/title/__init__.py                |    19 +-
 .../colorbar/title/font/__init__.py           |    45 +-
 .../histogram2dcontour/contours/__init__.py   |    51 +-
 .../contours/labelfont/__init__.py            |    45 +-
 .../histogram2dcontour/hoverlabel/__init__.py |    45 +-
 .../hoverlabel/font/__init__.py               |    72 +-
 .../legendgrouptitle/__init__.py              |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../histogram2dcontour/line/__init__.py       |    30 +-
 .../histogram2dcontour/marker/__init__.py     |    14 +-
 .../histogram2dcontour/stream/__init__.py     |    14 +-
 .../histogram2dcontour/textfont/__init__.py   |    45 +-
 .../histogram2dcontour/xbins/__init__.py      |    19 +-
 .../histogram2dcontour/ybins/__init__.py      |    19 +-
 plotly/validators/icicle/__init__.py          |   165 +-
 plotly/validators/icicle/domain/__init__.py   |    30 +-
 .../validators/icicle/hoverlabel/__init__.py  |    45 +-
 .../icicle/hoverlabel/font/__init__.py        |    72 +-
 .../icicle/insidetextfont/__init__.py         |    72 +-
 plotly/validators/icicle/leaf/__init__.py     |    13 +-
 .../icicle/legendgrouptitle/__init__.py       |    14 +-
 .../icicle/legendgrouptitle/font/__init__.py  |    45 +-
 plotly/validators/icicle/marker/__init__.py   |    60 +-
 .../icicle/marker/colorbar/__init__.py        |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../icicle/marker/colorbar/title/__init__.py  |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../validators/icicle/marker/line/__init__.py |    30 +-
 .../icicle/marker/pattern/__init__.py         |    54 +-
 .../icicle/outsidetextfont/__init__.py        |    72 +-
 plotly/validators/icicle/pathbar/__init__.py  |    33 +-
 .../icicle/pathbar/textfont/__init__.py       |    72 +-
 plotly/validators/icicle/root/__init__.py     |    13 +-
 plotly/validators/icicle/stream/__init__.py   |    14 +-
 plotly/validators/icicle/textfont/__init__.py |    72 +-
 plotly/validators/icicle/tiling/__init__.py   |    27 +-
 plotly/validators/image/__init__.py           |   135 +-
 .../validators/image/hoverlabel/__init__.py   |    45 +-
 .../image/hoverlabel/font/__init__.py         |    72 +-
 .../image/legendgrouptitle/__init__.py        |    14 +-
 .../image/legendgrouptitle/font/__init__.py   |    45 +-
 plotly/validators/image/stream/__init__.py    |    14 +-
 plotly/validators/indicator/__init__.py       |    87 +-
 plotly/validators/indicator/delta/__init__.py |    45 +-
 .../indicator/delta/decreasing/__init__.py    |    14 +-
 .../indicator/delta/font/__init__.py          |    45 +-
 .../indicator/delta/increasing/__init__.py    |    14 +-
 .../validators/indicator/domain/__init__.py   |    30 +-
 plotly/validators/indicator/gauge/__init__.py |    45 +-
 .../indicator/gauge/axis/__init__.py          |   108 +-
 .../indicator/gauge/axis/tickfont/__init__.py |    45 +-
 .../gauge/axis/tickformatstop/__init__.py     |    33 +-
 .../indicator/gauge/bar/__init__.py           |    27 +-
 .../indicator/gauge/bar/line/__init__.py      |    14 +-
 .../indicator/gauge/step/__init__.py          |    36 +-
 .../indicator/gauge/step/line/__init__.py     |    14 +-
 .../indicator/gauge/threshold/__init__.py     |    27 +-
 .../gauge/threshold/line/__init__.py          |    14 +-
 .../indicator/legendgrouptitle/__init__.py    |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../validators/indicator/number/__init__.py   |    30 +-
 .../indicator/number/font/__init__.py         |    45 +-
 .../validators/indicator/stream/__init__.py   |    14 +-
 plotly/validators/indicator/title/__init__.py |    19 +-
 .../indicator/title/font/__init__.py          |    45 +-
 plotly/validators/isosurface/__init__.py      |   198 +-
 plotly/validators/isosurface/caps/__init__.py |    15 +-
 .../validators/isosurface/caps/x/__init__.py  |    14 +-
 .../validators/isosurface/caps/y/__init__.py  |    14 +-
 .../validators/isosurface/caps/z/__init__.py  |    14 +-
 .../isosurface/colorbar/__init__.py           |   165 +-
 .../isosurface/colorbar/tickfont/__init__.py  |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../isosurface/colorbar/title/__init__.py     |    19 +-
 .../colorbar/title/font/__init__.py           |    45 +-
 .../validators/isosurface/contour/__init__.py |    19 +-
 .../isosurface/hoverlabel/__init__.py         |    45 +-
 .../isosurface/hoverlabel/font/__init__.py    |    72 +-
 .../isosurface/legendgrouptitle/__init__.py   |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../isosurface/lighting/__init__.py           |    39 +-
 .../isosurface/lightposition/__init__.py      |    15 +-
 .../validators/isosurface/slices/__init__.py  |    15 +-
 .../isosurface/slices/x/__init__.py           |    30 +-
 .../isosurface/slices/y/__init__.py           |    30 +-
 .../isosurface/slices/z/__init__.py           |    30 +-
 .../isosurface/spaceframe/__init__.py         |    14 +-
 .../validators/isosurface/stream/__init__.py  |    14 +-
 .../validators/isosurface/surface/__init__.py |    30 +-
 plotly/validators/layout/__init__.py          |   303 +-
 plotly/validators/layout/_hoverdistance.py    |    19 +-
 plotly/validators/layout/_spikedistance.py    |    19 +-
 .../layout/activeselection/__init__.py        |    14 +-
 .../validators/layout/activeshape/__init__.py |    14 +-
 .../validators/layout/annotation/__init__.py  |   147 +-
 .../layout/annotation/font/__init__.py        |    45 +-
 .../layout/annotation/hoverlabel/__init__.py  |    27 +-
 .../annotation/hoverlabel/font/__init__.py    |    45 +-
 .../validators/layout/coloraxis/__init__.py   |    45 +-
 .../layout/coloraxis/colorbar/__init__.py     |   165 +-
 .../coloraxis/colorbar/tickfont/__init__.py   |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../coloraxis/colorbar/title/__init__.py      |    19 +-
 .../coloraxis/colorbar/title/font/__init__.py |    45 +-
 .../validators/layout/colorscale/__init__.py  |    27 +-
 plotly/validators/layout/font/__init__.py     |    45 +-
 plotly/validators/layout/geo/__init__.py      |   114 +-
 .../validators/layout/geo/center/__init__.py  |    14 +-
 .../validators/layout/geo/domain/__init__.py  |    30 +-
 .../validators/layout/geo/lataxis/__init__.py |    39 +-
 .../validators/layout/geo/lonaxis/__init__.py |    39 +-
 .../layout/geo/projection/__init__.py         |    36 +-
 .../layout/geo/projection/_distance.py        |    21 +-
 .../geo/projection/rotation/__init__.py       |    17 +-
 plotly/validators/layout/grid/__init__.py     |    54 +-
 .../validators/layout/grid/domain/__init__.py |    14 +-
 .../validators/layout/hoverlabel/__init__.py  |    36 +-
 .../layout/hoverlabel/font/__init__.py        |    45 +-
 .../hoverlabel/grouptitlefont/__init__.py     |    45 +-
 plotly/validators/layout/image/__init__.py    |    63 +-
 plotly/validators/layout/legend/__init__.py   |    96 +-
 .../validators/layout/legend/font/__init__.py |    45 +-
 .../layout/legend/grouptitlefont/__init__.py  |    45 +-
 .../layout/legend/title/__init__.py           |    19 +-
 .../layout/legend/title/font/__init__.py      |    45 +-
 plotly/validators/layout/map/__init__.py      |    48 +-
 .../validators/layout/map/bounds/__init__.py  |    30 +-
 .../validators/layout/map/center/__init__.py  |    14 +-
 .../validators/layout/map/domain/__init__.py  |    30 +-
 .../validators/layout/map/layer/__init__.py   |    72 +-
 .../layout/map/layer/circle/__init__.py       |    13 +-
 .../layout/map/layer/fill/__init__.py         |    13 +-
 .../layout/map/layer/line/__init__.py         |    23 +-
 .../layout/map/layer/symbol/__init__.py       |    36 +-
 .../map/layer/symbol/textfont/__init__.py     |    33 +-
 plotly/validators/layout/mapbox/__init__.py   |    51 +-
 .../layout/mapbox/bounds/__init__.py          |    30 +-
 .../layout/mapbox/center/__init__.py          |    14 +-
 .../layout/mapbox/domain/__init__.py          |    30 +-
 .../layout/mapbox/layer/__init__.py           |    72 +-
 .../layout/mapbox/layer/circle/__init__.py    |    13 +-
 .../layout/mapbox/layer/fill/__init__.py      |    13 +-
 .../layout/mapbox/layer/line/__init__.py      |    23 +-
 .../layout/mapbox/layer/symbol/__init__.py    |    36 +-
 .../mapbox/layer/symbol/textfont/__init__.py  |    33 +-
 plotly/validators/layout/margin/__init__.py   |    36 +-
 plotly/validators/layout/modebar/__init__.py  |    45 +-
 .../layout/newselection/__init__.py           |    14 +-
 .../layout/newselection/line/__init__.py      |    19 +-
 plotly/validators/layout/newshape/__init__.py |    63 +-
 .../layout/newshape/label/__init__.py         |    42 +-
 .../layout/newshape/label/font/__init__.py    |    45 +-
 .../newshape/legendgrouptitle/__init__.py     |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../layout/newshape/line/__init__.py          |    19 +-
 plotly/validators/layout/polar/__init__.py    |    48 +-
 .../layout/polar/angularaxis/__init__.py      |   165 +-
 .../polar/angularaxis/tickfont/__init__.py    |    45 +-
 .../angularaxis/tickformatstop/__init__.py    |    33 +-
 .../layout/polar/domain/__init__.py           |    30 +-
 .../layout/polar/radialaxis/__init__.py       |   186 +-
 .../radialaxis/autorangeoptions/__init__.py   |    36 +-
 .../polar/radialaxis/tickfont/__init__.py     |    45 +-
 .../radialaxis/tickformatstop/__init__.py     |    33 +-
 .../layout/polar/radialaxis/title/__init__.py |    14 +-
 .../polar/radialaxis/title/font/__init__.py   |    45 +-
 plotly/validators/layout/scene/__init__.py    |    57 +-
 .../layout/scene/annotation/__init__.py       |   129 +-
 .../layout/scene/annotation/font/__init__.py  |    45 +-
 .../scene/annotation/hoverlabel/__init__.py   |    27 +-
 .../annotation/hoverlabel/font/__init__.py    |    45 +-
 .../layout/scene/aspectratio/__init__.py      |    15 +-
 .../layout/scene/camera/__init__.py           |    30 +-
 .../layout/scene/camera/center/__init__.py    |    15 +-
 .../layout/scene/camera/eye/__init__.py       |    15 +-
 .../scene/camera/projection/__init__.py       |    11 +-
 .../layout/scene/camera/up/__init__.py        |    15 +-
 .../layout/scene/domain/__init__.py           |    30 +-
 .../validators/layout/scene/xaxis/__init__.py |   198 +-
 .../scene/xaxis/autorangeoptions/__init__.py  |    36 +-
 .../layout/scene/xaxis/tickfont/__init__.py   |    45 +-
 .../scene/xaxis/tickformatstop/__init__.py    |    33 +-
 .../layout/scene/xaxis/title/__init__.py      |    14 +-
 .../layout/scene/xaxis/title/font/__init__.py |    45 +-
 .../validators/layout/scene/yaxis/__init__.py |   198 +-
 .../scene/yaxis/autorangeoptions/__init__.py  |    36 +-
 .../layout/scene/yaxis/tickfont/__init__.py   |    45 +-
 .../scene/yaxis/tickformatstop/__init__.py    |    33 +-
 .../layout/scene/yaxis/title/__init__.py      |    14 +-
 .../layout/scene/yaxis/title/font/__init__.py |    45 +-
 .../validators/layout/scene/zaxis/__init__.py |   198 +-
 .../scene/zaxis/autorangeoptions/__init__.py  |    36 +-
 .../layout/scene/zaxis/tickfont/__init__.py   |    45 +-
 .../scene/zaxis/tickformatstop/__init__.py    |    33 +-
 .../layout/scene/zaxis/title/__init__.py      |    14 +-
 .../layout/scene/zaxis/title/font/__init__.py |    45 +-
 .../validators/layout/selection/__init__.py   |    54 +-
 .../layout/selection/line/__init__.py         |    19 +-
 plotly/validators/layout/shape/__init__.py    |   114 +-
 .../validators/layout/shape/label/__init__.py |    42 +-
 .../layout/shape/label/font/__init__.py       |    45 +-
 .../layout/shape/legendgrouptitle/__init__.py |    14 +-
 .../shape/legendgrouptitle/font/__init__.py   |    45 +-
 .../validators/layout/shape/line/__init__.py  |    19 +-
 plotly/validators/layout/slider/__init__.py   |    90 +-
 .../layout/slider/currentvalue/__init__.py    |    36 +-
 .../slider/currentvalue/font/__init__.py      |    45 +-
 .../validators/layout/slider/font/__init__.py |    45 +-
 .../validators/layout/slider/pad/__init__.py  |    20 +-
 .../validators/layout/slider/step/__init__.py |    42 +-
 .../layout/slider/transition/__init__.py      |    14 +-
 plotly/validators/layout/smith/__init__.py    |    30 +-
 .../layout/smith/domain/__init__.py           |    30 +-
 .../layout/smith/imaginaryaxis/__init__.py    |    93 +-
 .../smith/imaginaryaxis/tickfont/__init__.py  |    45 +-
 .../layout/smith/realaxis/__init__.py         |    99 +-
 .../smith/realaxis/tickfont/__init__.py       |    45 +-
 plotly/validators/layout/template/__init__.py |    14 +-
 .../layout/template/data/__init__.py          |   165 +-
 plotly/validators/layout/ternary/__init__.py  |    39 +-
 .../layout/ternary/aaxis/__init__.py          |   141 +-
 .../layout/ternary/aaxis/tickfont/__init__.py |    45 +-
 .../ternary/aaxis/tickformatstop/__init__.py  |    33 +-
 .../layout/ternary/aaxis/title/__init__.py    |    14 +-
 .../ternary/aaxis/title/font/__init__.py      |    45 +-
 .../layout/ternary/baxis/__init__.py          |   141 +-
 .../layout/ternary/baxis/tickfont/__init__.py |    45 +-
 .../ternary/baxis/tickformatstop/__init__.py  |    33 +-
 .../layout/ternary/baxis/title/__init__.py    |    14 +-
 .../ternary/baxis/title/font/__init__.py      |    45 +-
 .../layout/ternary/caxis/__init__.py          |   141 +-
 .../layout/ternary/caxis/tickfont/__init__.py |    45 +-
 .../ternary/caxis/tickformatstop/__init__.py  |    33 +-
 .../layout/ternary/caxis/title/__init__.py    |    14 +-
 .../ternary/caxis/title/font/__init__.py      |    45 +-
 .../layout/ternary/domain/__init__.py         |    30 +-
 plotly/validators/layout/title/__init__.py    |    51 +-
 .../validators/layout/title/font/__init__.py  |    45 +-
 .../validators/layout/title/pad/__init__.py   |    20 +-
 .../layout/title/subtitle/__init__.py         |    14 +-
 .../layout/title/subtitle/font/__init__.py    |    45 +-
 .../validators/layout/transition/__init__.py  |    27 +-
 .../validators/layout/uniformtext/__init__.py |    14 +-
 .../validators/layout/updatemenu/__init__.py  |    72 +-
 .../layout/updatemenu/button/__init__.py      |    42 +-
 .../layout/updatemenu/font/__init__.py        |    45 +-
 .../layout/updatemenu/pad/__init__.py         |    20 +-
 plotly/validators/layout/xaxis/__init__.py    |   297 +-
 .../layout/xaxis/autorangeoptions/__init__.py |    36 +-
 .../validators/layout/xaxis/minor/__init__.py |    60 +-
 .../layout/xaxis/rangebreak/__init__.py       |    39 +-
 .../layout/xaxis/rangeselector/__init__.py    |    54 +-
 .../xaxis/rangeselector/button/__init__.py    |    39 +-
 .../xaxis/rangeselector/font/__init__.py      |    45 +-
 .../layout/xaxis/rangeslider/__init__.py      |    42 +-
 .../xaxis/rangeslider/yaxis/__init__.py       |    14 +-
 .../layout/xaxis/tickfont/__init__.py         |    45 +-
 .../layout/xaxis/tickformatstop/__init__.py   |    33 +-
 .../validators/layout/xaxis/title/__init__.py |    23 +-
 .../layout/xaxis/title/font/__init__.py       |    45 +-
 plotly/validators/layout/yaxis/__init__.py    |   297 +-
 .../layout/yaxis/autorangeoptions/__init__.py |    36 +-
 .../validators/layout/yaxis/minor/__init__.py |    60 +-
 .../layout/yaxis/rangebreak/__init__.py       |    39 +-
 .../layout/yaxis/tickfont/__init__.py         |    45 +-
 .../layout/yaxis/tickformatstop/__init__.py   |    33 +-
 .../validators/layout/yaxis/title/__init__.py |    23 +-
 .../layout/yaxis/title/font/__init__.py       |    45 +-
 plotly/validators/mesh3d/__init__.py          |   228 +-
 plotly/validators/mesh3d/_jsrc.py             |    17 +-
 plotly/validators/mesh3d/colorbar/__init__.py |   165 +-
 .../mesh3d/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../mesh3d/colorbar/title/__init__.py         |    19 +-
 .../mesh3d/colorbar/title/font/__init__.py    |    45 +-
 plotly/validators/mesh3d/contour/__init__.py  |    19 +-
 .../validators/mesh3d/hoverlabel/__init__.py  |    45 +-
 .../mesh3d/hoverlabel/font/__init__.py        |    72 +-
 .../mesh3d/legendgrouptitle/__init__.py       |    14 +-
 .../mesh3d/legendgrouptitle/font/__init__.py  |    45 +-
 plotly/validators/mesh3d/lighting/__init__.py |    39 +-
 .../mesh3d/lightposition/__init__.py          |    15 +-
 plotly/validators/mesh3d/stream/__init__.py   |    14 +-
 plotly/validators/ohlc/__init__.py            |   165 +-
 plotly/validators/ohlc/decreasing/__init__.py |    11 +-
 .../ohlc/decreasing/line/__init__.py          |    19 +-
 plotly/validators/ohlc/hoverlabel/__init__.py |    48 +-
 .../ohlc/hoverlabel/font/__init__.py          |    72 +-
 plotly/validators/ohlc/increasing/__init__.py |    11 +-
 .../ohlc/increasing/line/__init__.py          |    19 +-
 .../ohlc/legendgrouptitle/__init__.py         |    14 +-
 .../ohlc/legendgrouptitle/font/__init__.py    |    45 +-
 plotly/validators/ohlc/line/__init__.py       |    14 +-
 plotly/validators/ohlc/stream/__init__.py     |    14 +-
 plotly/validators/parcats/__init__.py         |    87 +-
 .../validators/parcats/dimension/__init__.py  |    48 +-
 plotly/validators/parcats/domain/__init__.py  |    30 +-
 .../validators/parcats/labelfont/__init__.py  |    45 +-
 .../parcats/legendgrouptitle/__init__.py      |    14 +-
 .../parcats/legendgrouptitle/font/__init__.py |    45 +-
 plotly/validators/parcats/line/__init__.py    |    60 +-
 .../parcats/line/colorbar/__init__.py         |   165 +-
 .../line/colorbar/tickfont/__init__.py        |    45 +-
 .../line/colorbar/tickformatstop/__init__.py  |    33 +-
 .../parcats/line/colorbar/title/__init__.py   |    19 +-
 .../line/colorbar/title/font/__init__.py      |    45 +-
 plotly/validators/parcats/stream/__init__.py  |    14 +-
 .../validators/parcats/tickfont/__init__.py   |    45 +-
 plotly/validators/parcoords/__init__.py       |    93 +-
 .../parcoords/dimension/__init__.py           |    60 +-
 .../validators/parcoords/domain/__init__.py   |    30 +-
 .../parcoords/labelfont/__init__.py           |    45 +-
 .../parcoords/legendgrouptitle/__init__.py    |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 plotly/validators/parcoords/line/__init__.py  |    54 +-
 .../parcoords/line/colorbar/__init__.py       |   165 +-
 .../line/colorbar/tickfont/__init__.py        |    45 +-
 .../line/colorbar/tickformatstop/__init__.py  |    33 +-
 .../parcoords/line/colorbar/title/__init__.py |    19 +-
 .../line/colorbar/title/font/__init__.py      |    45 +-
 .../parcoords/rangefont/__init__.py           |    45 +-
 .../validators/parcoords/stream/__init__.py   |    14 +-
 .../validators/parcoords/tickfont/__init__.py |    45 +-
 .../parcoords/unselected/__init__.py          |    11 +-
 .../parcoords/unselected/line/__init__.py     |    14 +-
 plotly/validators/pie/__init__.py             |   177 +-
 plotly/validators/pie/domain/__init__.py      |    30 +-
 plotly/validators/pie/hoverlabel/__init__.py  |    45 +-
 .../pie/hoverlabel/font/__init__.py           |    72 +-
 .../validators/pie/insidetextfont/__init__.py |    72 +-
 .../pie/legendgrouptitle/__init__.py          |    14 +-
 .../pie/legendgrouptitle/font/__init__.py     |    45 +-
 plotly/validators/pie/marker/__init__.py      |    30 +-
 plotly/validators/pie/marker/line/__init__.py |    30 +-
 .../validators/pie/marker/pattern/__init__.py |    54 +-
 .../pie/outsidetextfont/__init__.py           |    72 +-
 plotly/validators/pie/stream/__init__.py      |    14 +-
 plotly/validators/pie/textfont/__init__.py    |    72 +-
 plotly/validators/pie/title/__init__.py       |    23 +-
 plotly/validators/pie/title/font/__init__.py  |    72 +-
 plotly/validators/sankey/__init__.py          |    96 +-
 plotly/validators/sankey/domain/__init__.py   |    30 +-
 .../validators/sankey/hoverlabel/__init__.py  |    45 +-
 .../sankey/hoverlabel/font/__init__.py        |    72 +-
 .../sankey/legendgrouptitle/__init__.py       |    14 +-
 .../sankey/legendgrouptitle/font/__init__.py  |    45 +-
 plotly/validators/sankey/link/__init__.py     |    84 +-
 .../sankey/link/colorscale/__init__.py        |    36 +-
 .../sankey/link/hoverlabel/__init__.py        |    45 +-
 .../sankey/link/hoverlabel/font/__init__.py   |    72 +-
 .../validators/sankey/link/line/__init__.py   |    30 +-
 plotly/validators/sankey/node/__init__.py     |    75 +-
 .../sankey/node/hoverlabel/__init__.py        |    45 +-
 .../sankey/node/hoverlabel/font/__init__.py   |    72 +-
 .../validators/sankey/node/line/__init__.py   |    30 +-
 plotly/validators/sankey/stream/__init__.py   |    14 +-
 plotly/validators/sankey/textfont/__init__.py |    45 +-
 plotly/validators/scatter/__init__.py         |   240 +-
 plotly/validators/scatter/error_x/__init__.py |    63 +-
 plotly/validators/scatter/error_y/__init__.py |    60 +-
 .../scatter/fillgradient/__init__.py          |    30 +-
 .../scatter/fillpattern/__init__.py           |    54 +-
 .../validators/scatter/hoverlabel/__init__.py |    45 +-
 .../scatter/hoverlabel/font/__init__.py       |    72 +-
 .../scatter/legendgrouptitle/__init__.py      |    14 +-
 .../scatter/legendgrouptitle/font/__init__.py |    45 +-
 plotly/validators/scatter/line/__init__.py    |    42 +-
 plotly/validators/scatter/marker/__init__.py  |   105 +-
 .../scatter/marker/colorbar/__init__.py       |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../scatter/marker/colorbar/title/__init__.py |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../scatter/marker/gradient/__init__.py       |    30 +-
 .../scatter/marker/line/__init__.py           |    54 +-
 .../validators/scatter/selected/__init__.py   |    14 +-
 .../scatter/selected/marker/__init__.py       |    23 +-
 .../scatter/selected/textfont/__init__.py     |    13 +-
 plotly/validators/scatter/stream/__init__.py  |    14 +-
 .../validators/scatter/textfont/__init__.py   |    72 +-
 .../validators/scatter/unselected/__init__.py |    14 +-
 .../scatter/unselected/marker/__init__.py     |    23 +-
 .../scatter/unselected/textfont/__init__.py   |    13 +-
 plotly/validators/scatter3d/__init__.py       |   183 +-
 .../validators/scatter3d/error_x/__init__.py  |    63 +-
 .../validators/scatter3d/error_y/__init__.py  |    63 +-
 .../validators/scatter3d/error_z/__init__.py  |    60 +-
 .../scatter3d/hoverlabel/__init__.py          |    45 +-
 .../scatter3d/hoverlabel/font/__init__.py     |    72 +-
 .../scatter3d/legendgrouptitle/__init__.py    |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 plotly/validators/scatter3d/line/__init__.py  |    60 +-
 .../scatter3d/line/colorbar/__init__.py       |   165 +-
 .../line/colorbar/tickfont/__init__.py        |    45 +-
 .../line/colorbar/tickformatstop/__init__.py  |    33 +-
 .../scatter3d/line/colorbar/title/__init__.py |    19 +-
 .../line/colorbar/title/font/__init__.py      |    45 +-
 .../validators/scatter3d/marker/__init__.py   |    81 +-
 .../scatter3d/marker/colorbar/__init__.py     |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../marker/colorbar/title/__init__.py         |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../scatter3d/marker/line/__init__.py         |    51 +-
 .../scatter3d/projection/__init__.py          |    15 +-
 .../scatter3d/projection/x/__init__.py        |    23 +-
 .../scatter3d/projection/y/__init__.py        |    23 +-
 .../scatter3d/projection/z/__init__.py        |    23 +-
 .../validators/scatter3d/stream/__init__.py   |    14 +-
 .../validators/scatter3d/textfont/__init__.py |    54 +-
 plotly/validators/scattercarpet/__init__.py   |   168 +-
 .../scattercarpet/hoverlabel/__init__.py      |    45 +-
 .../scattercarpet/hoverlabel/font/__init__.py |    72 +-
 .../legendgrouptitle/__init__.py              |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../validators/scattercarpet/line/__init__.py |    39 +-
 .../scattercarpet/marker/__init__.py          |   105 +-
 .../scattercarpet/marker/colorbar/__init__.py |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../marker/colorbar/title/__init__.py         |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../scattercarpet/marker/gradient/__init__.py |    30 +-
 .../scattercarpet/marker/line/__init__.py     |    54 +-
 .../scattercarpet/selected/__init__.py        |    14 +-
 .../scattercarpet/selected/marker/__init__.py |    23 +-
 .../selected/textfont/__init__.py             |    13 +-
 .../scattercarpet/stream/__init__.py          |    14 +-
 .../scattercarpet/textfont/__init__.py        |    72 +-
 .../scattercarpet/unselected/__init__.py      |    14 +-
 .../unselected/marker/__init__.py             |    23 +-
 .../unselected/textfont/__init__.py           |    13 +-
 plotly/validators/scattergeo/__init__.py      |   171 +-
 plotly/validators/scattergeo/_geojson.py      |    17 +-
 .../scattergeo/hoverlabel/__init__.py         |    45 +-
 .../scattergeo/hoverlabel/font/__init__.py    |    72 +-
 .../scattergeo/legendgrouptitle/__init__.py   |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 plotly/validators/scattergeo/line/__init__.py |    19 +-
 .../validators/scattergeo/marker/__init__.py  |   102 +-
 .../scattergeo/marker/colorbar/__init__.py    |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../marker/colorbar/title/__init__.py         |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../scattergeo/marker/gradient/__init__.py    |    30 +-
 .../scattergeo/marker/line/__init__.py        |    54 +-
 .../scattergeo/selected/__init__.py           |    14 +-
 .../scattergeo/selected/marker/__init__.py    |    23 +-
 .../scattergeo/selected/textfont/__init__.py  |    13 +-
 .../validators/scattergeo/stream/__init__.py  |    14 +-
 .../scattergeo/textfont/__init__.py           |    72 +-
 .../scattergeo/unselected/__init__.py         |    14 +-
 .../scattergeo/unselected/marker/__init__.py  |    23 +-
 .../unselected/textfont/__init__.py           |    13 +-
 plotly/validators/scattergl/__init__.py       |   207 +-
 .../validators/scattergl/error_x/__init__.py  |    63 +-
 .../validators/scattergl/error_y/__init__.py  |    60 +-
 .../scattergl/hoverlabel/__init__.py          |    45 +-
 .../scattergl/hoverlabel/font/__init__.py     |    72 +-
 .../scattergl/legendgrouptitle/__init__.py    |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 plotly/validators/scattergl/line/__init__.py  |    30 +-
 .../validators/scattergl/marker/__init__.py   |    90 +-
 .../scattergl/marker/colorbar/__init__.py     |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../marker/colorbar/title/__init__.py         |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../scattergl/marker/line/__init__.py         |    54 +-
 .../validators/scattergl/selected/__init__.py |    14 +-
 .../scattergl/selected/marker/__init__.py     |    23 +-
 .../scattergl/selected/textfont/__init__.py   |    13 +-
 .../validators/scattergl/stream/__init__.py   |    14 +-
 .../validators/scattergl/textfont/__init__.py |    54 +-
 .../scattergl/unselected/__init__.py          |    14 +-
 .../scattergl/unselected/marker/__init__.py   |    23 +-
 .../scattergl/unselected/textfont/__init__.py |    13 +-
 plotly/validators/scattermap/__init__.py      |   159 +-
 .../validators/scattermap/cluster/__init__.py |    48 +-
 .../scattermap/hoverlabel/__init__.py         |    45 +-
 .../scattermap/hoverlabel/font/__init__.py    |    72 +-
 .../scattermap/legendgrouptitle/__init__.py   |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 plotly/validators/scattermap/line/__init__.py |    14 +-
 .../validators/scattermap/marker/__init__.py  |    90 +-
 .../scattermap/marker/colorbar/__init__.py    |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../marker/colorbar/title/__init__.py         |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../scattermap/selected/__init__.py           |    13 +-
 .../scattermap/selected/marker/__init__.py    |    23 +-
 .../validators/scattermap/stream/__init__.py  |    14 +-
 .../scattermap/textfont/__init__.py           |    33 +-
 .../scattermap/unselected/__init__.py         |    13 +-
 .../scattermap/unselected/marker/__init__.py  |    23 +-
 plotly/validators/scattermapbox/__init__.py   |   159 +-
 .../scattermapbox/cluster/__init__.py         |    48 +-
 .../scattermapbox/hoverlabel/__init__.py      |    45 +-
 .../scattermapbox/hoverlabel/font/__init__.py |    72 +-
 .../legendgrouptitle/__init__.py              |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../validators/scattermapbox/line/__init__.py |    14 +-
 .../scattermapbox/marker/__init__.py          |    90 +-
 .../scattermapbox/marker/colorbar/__init__.py |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../marker/colorbar/title/__init__.py         |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../scattermapbox/selected/__init__.py        |    13 +-
 .../scattermapbox/selected/marker/__init__.py |    23 +-
 .../scattermapbox/stream/__init__.py          |    14 +-
 .../scattermapbox/textfont/__init__.py        |    33 +-
 .../scattermapbox/unselected/__init__.py      |    13 +-
 .../unselected/marker/__init__.py             |    23 +-
 plotly/validators/scatterpolar/__init__.py    |   177 +-
 .../scatterpolar/hoverlabel/__init__.py       |    45 +-
 .../scatterpolar/hoverlabel/font/__init__.py  |    72 +-
 .../scatterpolar/legendgrouptitle/__init__.py |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../validators/scatterpolar/line/__init__.py  |    39 +-
 .../scatterpolar/marker/__init__.py           |   105 +-
 .../scatterpolar/marker/colorbar/__init__.py  |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../marker/colorbar/title/__init__.py         |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../scatterpolar/marker/gradient/__init__.py  |    30 +-
 .../scatterpolar/marker/line/__init__.py      |    54 +-
 .../scatterpolar/selected/__init__.py         |    14 +-
 .../scatterpolar/selected/marker/__init__.py  |    23 +-
 .../selected/textfont/__init__.py             |    13 +-
 .../scatterpolar/stream/__init__.py           |    14 +-
 .../scatterpolar/textfont/__init__.py         |    72 +-
 .../scatterpolar/unselected/__init__.py       |    14 +-
 .../unselected/marker/__init__.py             |    23 +-
 .../unselected/textfont/__init__.py           |    13 +-
 plotly/validators/scatterpolargl/__init__.py  |   171 +-
 .../scatterpolargl/hoverlabel/__init__.py     |    45 +-
 .../hoverlabel/font/__init__.py               |    72 +-
 .../legendgrouptitle/__init__.py              |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../scatterpolargl/line/__init__.py           |    19 +-
 .../scatterpolargl/marker/__init__.py         |    90 +-
 .../marker/colorbar/__init__.py               |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../marker/colorbar/title/__init__.py         |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../scatterpolargl/marker/line/__init__.py    |    54 +-
 .../scatterpolargl/selected/__init__.py       |    14 +-
 .../selected/marker/__init__.py               |    23 +-
 .../selected/textfont/__init__.py             |    13 +-
 .../scatterpolargl/stream/__init__.py         |    14 +-
 .../scatterpolargl/textfont/__init__.py       |    54 +-
 .../scatterpolargl/unselected/__init__.py     |    14 +-
 .../unselected/marker/__init__.py             |    23 +-
 .../unselected/textfont/__init__.py           |    13 +-
 plotly/validators/scattersmith/__init__.py    |   162 +-
 .../scattersmith/hoverlabel/__init__.py       |    45 +-
 .../scattersmith/hoverlabel/font/__init__.py  |    72 +-
 .../scattersmith/legendgrouptitle/__init__.py |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../validators/scattersmith/line/__init__.py  |    39 +-
 .../scattersmith/marker/__init__.py           |   105 +-
 .../scattersmith/marker/colorbar/__init__.py  |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../marker/colorbar/title/__init__.py         |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../scattersmith/marker/gradient/__init__.py  |    30 +-
 .../scattersmith/marker/line/__init__.py      |    54 +-
 .../scattersmith/selected/__init__.py         |    14 +-
 .../scattersmith/selected/marker/__init__.py  |    23 +-
 .../selected/textfont/__init__.py             |    13 +-
 .../scattersmith/stream/__init__.py           |    14 +-
 .../scattersmith/textfont/__init__.py         |    72 +-
 .../scattersmith/unselected/__init__.py       |    14 +-
 .../unselected/marker/__init__.py             |    23 +-
 .../unselected/textfont/__init__.py           |    13 +-
 plotly/validators/scatterternary/__init__.py  |   171 +-
 .../scatterternary/hoverlabel/__init__.py     |    45 +-
 .../hoverlabel/font/__init__.py               |    72 +-
 .../legendgrouptitle/__init__.py              |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../scatterternary/line/__init__.py           |    39 +-
 .../scatterternary/marker/__init__.py         |   105 +-
 .../marker/colorbar/__init__.py               |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../marker/colorbar/title/__init__.py         |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../marker/gradient/__init__.py               |    30 +-
 .../scatterternary/marker/line/__init__.py    |    54 +-
 .../scatterternary/selected/__init__.py       |    14 +-
 .../selected/marker/__init__.py               |    23 +-
 .../selected/textfont/__init__.py             |    13 +-
 .../scatterternary/stream/__init__.py         |    14 +-
 .../scatterternary/textfont/__init__.py       |    72 +-
 .../scatterternary/unselected/__init__.py     |    14 +-
 .../unselected/marker/__init__.py             |    23 +-
 .../unselected/textfont/__init__.py           |    13 +-
 plotly/validators/splom/__init__.py           |   138 +-
 plotly/validators/splom/diagonal/__init__.py  |    13 +-
 plotly/validators/splom/dimension/__init__.py |    39 +-
 .../splom/dimension/axis/__init__.py          |    14 +-
 .../validators/splom/hoverlabel/__init__.py   |    45 +-
 .../splom/hoverlabel/font/__init__.py         |    72 +-
 .../splom/legendgrouptitle/__init__.py        |    14 +-
 .../splom/legendgrouptitle/font/__init__.py   |    45 +-
 plotly/validators/splom/marker/__init__.py    |    90 +-
 .../splom/marker/colorbar/__init__.py         |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../splom/marker/colorbar/title/__init__.py   |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../validators/splom/marker/line/__init__.py  |    54 +-
 plotly/validators/splom/selected/__init__.py  |    13 +-
 .../splom/selected/marker/__init__.py         |    23 +-
 plotly/validators/splom/stream/__init__.py    |    14 +-
 .../validators/splom/unselected/__init__.py   |    13 +-
 .../splom/unselected/marker/__init__.py       |    23 +-
 plotly/validators/streamtube/__init__.py      |   195 +-
 .../streamtube/colorbar/__init__.py           |   165 +-
 .../streamtube/colorbar/tickfont/__init__.py  |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../streamtube/colorbar/title/__init__.py     |    19 +-
 .../colorbar/title/font/__init__.py           |    45 +-
 .../streamtube/hoverlabel/__init__.py         |    45 +-
 .../streamtube/hoverlabel/font/__init__.py    |    72 +-
 .../streamtube/legendgrouptitle/__init__.py   |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../streamtube/lighting/__init__.py           |    39 +-
 .../streamtube/lightposition/__init__.py      |    15 +-
 .../validators/streamtube/starts/__init__.py  |    36 +-
 .../validators/streamtube/stream/__init__.py  |    14 +-
 plotly/validators/sunburst/__init__.py        |   162 +-
 plotly/validators/sunburst/domain/__init__.py |    30 +-
 .../sunburst/hoverlabel/__init__.py           |    45 +-
 .../sunburst/hoverlabel/font/__init__.py      |    72 +-
 .../sunburst/insidetextfont/__init__.py       |    72 +-
 plotly/validators/sunburst/leaf/__init__.py   |    13 +-
 .../sunburst/legendgrouptitle/__init__.py     |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 plotly/validators/sunburst/marker/__init__.py |    60 +-
 .../sunburst/marker/colorbar/__init__.py      |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../marker/colorbar/title/__init__.py         |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../sunburst/marker/line/__init__.py          |    30 +-
 .../sunburst/marker/pattern/__init__.py       |    54 +-
 .../sunburst/outsidetextfont/__init__.py      |    72 +-
 plotly/validators/sunburst/root/__init__.py   |    13 +-
 plotly/validators/sunburst/stream/__init__.py |    14 +-
 .../validators/sunburst/textfont/__init__.py  |    72 +-
 plotly/validators/surface/__init__.py         |   192 +-
 .../validators/surface/colorbar/__init__.py   |   165 +-
 .../surface/colorbar/tickfont/__init__.py     |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../surface/colorbar/title/__init__.py        |    19 +-
 .../surface/colorbar/title/font/__init__.py   |    45 +-
 .../validators/surface/contours/__init__.py   |    15 +-
 .../validators/surface/contours/x/__init__.py |    51 +-
 .../surface/contours/x/project/__init__.py    |    15 +-
 .../validators/surface/contours/y/__init__.py |    51 +-
 .../surface/contours/y/project/__init__.py    |    15 +-
 .../validators/surface/contours/z/__init__.py |    51 +-
 .../surface/contours/z/project/__init__.py    |    15 +-
 .../validators/surface/hoverlabel/__init__.py |    45 +-
 .../surface/hoverlabel/font/__init__.py       |    72 +-
 .../surface/legendgrouptitle/__init__.py      |    14 +-
 .../surface/legendgrouptitle/font/__init__.py |    45 +-
 .../validators/surface/lighting/__init__.py   |    33 +-
 .../surface/lightposition/__init__.py         |    15 +-
 plotly/validators/surface/stream/__init__.py  |    14 +-
 plotly/validators/table/__init__.py           |    93 +-
 plotly/validators/table/cells/__init__.py     |    60 +-
 .../validators/table/cells/fill/__init__.py   |    14 +-
 .../validators/table/cells/font/__init__.py   |    72 +-
 .../validators/table/cells/line/__init__.py   |    30 +-
 plotly/validators/table/domain/__init__.py    |    30 +-
 plotly/validators/table/header/__init__.py    |    60 +-
 .../validators/table/header/fill/__init__.py  |    14 +-
 .../validators/table/header/font/__init__.py  |    72 +-
 .../validators/table/header/line/__init__.py  |    30 +-
 .../validators/table/hoverlabel/__init__.py   |    45 +-
 .../table/hoverlabel/font/__init__.py         |    72 +-
 .../table/legendgrouptitle/__init__.py        |    14 +-
 .../table/legendgrouptitle/font/__init__.py   |    45 +-
 plotly/validators/table/stream/__init__.py    |    14 +-
 plotly/validators/treemap/__init__.py         |   162 +-
 plotly/validators/treemap/domain/__init__.py  |    30 +-
 .../validators/treemap/hoverlabel/__init__.py |    45 +-
 .../treemap/hoverlabel/font/__init__.py       |    72 +-
 .../treemap/insidetextfont/__init__.py        |    72 +-
 .../treemap/legendgrouptitle/__init__.py      |    14 +-
 .../treemap/legendgrouptitle/font/__init__.py |    45 +-
 plotly/validators/treemap/marker/__init__.py  |    69 +-
 .../treemap/marker/colorbar/__init__.py       |   165 +-
 .../marker/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../treemap/marker/colorbar/title/__init__.py |    19 +-
 .../marker/colorbar/title/font/__init__.py    |    45 +-
 .../treemap/marker/line/__init__.py           |    30 +-
 .../validators/treemap/marker/pad/__init__.py |    20 +-
 .../treemap/marker/pattern/__init__.py        |    54 +-
 .../treemap/outsidetextfont/__init__.py       |    72 +-
 plotly/validators/treemap/pathbar/__init__.py |    33 +-
 .../treemap/pathbar/textfont/__init__.py      |    72 +-
 plotly/validators/treemap/root/__init__.py    |    13 +-
 plotly/validators/treemap/stream/__init__.py  |    14 +-
 .../validators/treemap/textfont/__init__.py   |    72 +-
 plotly/validators/treemap/tiling/__init__.py  |    30 +-
 plotly/validators/violin/__init__.py          |   201 +-
 plotly/validators/violin/box/__init__.py      |    30 +-
 plotly/validators/violin/box/line/__init__.py |    14 +-
 .../validators/violin/hoverlabel/__init__.py  |    45 +-
 .../violin/hoverlabel/font/__init__.py        |    72 +-
 .../violin/legendgrouptitle/__init__.py       |    14 +-
 .../violin/legendgrouptitle/font/__init__.py  |    45 +-
 plotly/validators/violin/line/__init__.py     |    14 +-
 plotly/validators/violin/marker/__init__.py   |    39 +-
 .../validators/violin/marker/line/__init__.py |    30 +-
 plotly/validators/violin/meanline/__init__.py |    23 +-
 plotly/validators/violin/selected/__init__.py |    13 +-
 .../violin/selected/marker/__init__.py        |    23 +-
 plotly/validators/violin/stream/__init__.py   |    14 +-
 .../validators/violin/unselected/__init__.py  |    13 +-
 .../violin/unselected/marker/__init__.py      |    23 +-
 plotly/validators/volume/__init__.py          |   201 +-
 plotly/validators/volume/caps/__init__.py     |    15 +-
 plotly/validators/volume/caps/x/__init__.py   |    14 +-
 plotly/validators/volume/caps/y/__init__.py   |    14 +-
 plotly/validators/volume/caps/z/__init__.py   |    14 +-
 plotly/validators/volume/colorbar/__init__.py |   165 +-
 .../volume/colorbar/tickfont/__init__.py      |    45 +-
 .../colorbar/tickformatstop/__init__.py       |    33 +-
 .../volume/colorbar/title/__init__.py         |    19 +-
 .../volume/colorbar/title/font/__init__.py    |    45 +-
 plotly/validators/volume/contour/__init__.py  |    19 +-
 .../validators/volume/hoverlabel/__init__.py  |    45 +-
 .../volume/hoverlabel/font/__init__.py        |    72 +-
 .../volume/legendgrouptitle/__init__.py       |    14 +-
 .../volume/legendgrouptitle/font/__init__.py  |    45 +-
 plotly/validators/volume/lighting/__init__.py |    39 +-
 .../volume/lightposition/__init__.py          |    15 +-
 plotly/validators/volume/slices/__init__.py   |    15 +-
 plotly/validators/volume/slices/x/__init__.py |    30 +-
 plotly/validators/volume/slices/y/__init__.py |    30 +-
 plotly/validators/volume/slices/z/__init__.py |    30 +-
 .../validators/volume/spaceframe/__init__.py  |    14 +-
 plotly/validators/volume/stream/__init__.py   |    14 +-
 plotly/validators/volume/surface/__init__.py  |    30 +-
 plotly/validators/waterfall/__init__.py       |   237 +-
 .../waterfall/connector/__init__.py           |    19 +-
 .../waterfall/connector/line/__init__.py      |    19 +-
 .../waterfall/decreasing/__init__.py          |    13 +-
 .../waterfall/decreasing/marker/__init__.py   |    14 +-
 .../decreasing/marker/line/__init__.py        |    14 +-
 .../waterfall/hoverlabel/__init__.py          |    45 +-
 .../waterfall/hoverlabel/font/__init__.py     |    72 +-
 .../waterfall/increasing/__init__.py          |    13 +-
 .../waterfall/increasing/marker/__init__.py   |    14 +-
 .../increasing/marker/line/__init__.py        |    14 +-
 .../waterfall/insidetextfont/__init__.py      |    72 +-
 .../waterfall/legendgrouptitle/__init__.py    |    14 +-
 .../legendgrouptitle/font/__init__.py         |    45 +-
 .../waterfall/outsidetextfont/__init__.py     |    72 +-
 .../validators/waterfall/stream/__init__.py   |    14 +-
 .../validators/waterfall/textfont/__init__.py |    72 +-
 .../validators/waterfall/totals/__init__.py   |    13 +-
 .../waterfall/totals/marker/__init__.py       |    14 +-
 .../waterfall/totals/marker/line/__init__.py  |    14 +-
 pyproject.toml                                |     2 +-
 requires-optional.txt                         |     2 +-
 uv.lock                                       |   518 +
 2585 files changed, 126261 insertions(+), 112284 deletions(-)
 create mode 100644 uv.lock

diff --git a/codegen/__init__.py b/codegen/__init__.py
index d3bb05f2ec4..b86b5be8b62 100644
--- a/codegen/__init__.py
+++ b/codegen/__init__.py
@@ -271,24 +271,36 @@ def perform_codegen(reformat=True):
         root_datatype_imports.append(f"._deprecations.{dep_clas}")
 
     optional_figure_widget_import = f"""
-__all__.append("FigureWidget")
-orig_getattr = __getattr__
-def __getattr__(import_name):
-    if import_name == "FigureWidget":
-        try:
-            import ipywidgets
-            from packaging.version import Version
-
-            if Version(ipywidgets.__version__) >= Version("7.0.0"):
-                from ..graph_objs._figurewidget import FigureWidget
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    try:
+        import ipywidgets as _ipywidgets
+        from packaging.version import Version as _Version
+        if _Version(_ipywidgets.__version__) >= _Version("7.0.0"):
+            from ..graph_objs._figurewidget import FigureWidget
+        else:
+            raise ImportError()
+    except Exception:
+        from ..missing_anywidget import FigureWidget
+else:
+    __all__.append("FigureWidget")
+    orig_getattr = __getattr__
+    def __getattr__(import_name):
+        if import_name == "FigureWidget":
+            try:
+                import ipywidgets
+                from packaging.version import Version
+                if Version(ipywidgets.__version__) >= Version("7.0.0"):
+                    from ..graph_objs._figurewidget import FigureWidget
+                    return FigureWidget
+                else:
+                    raise ImportError()
+            except Exception:
+                from ..missing_anywidget import FigureWidget
                 return FigureWidget
             else:
                 raise ImportError()
-        except Exception:
-            from ..missing_anywidget import FigureWidget
-            return FigureWidget
 
-    return orig_getattr(import_name)
+        return orig_getattr(import_name)
 """
     # ### __all__ ###
     for path_parts, class_names in alls.items():
diff --git a/codegen/utils.py b/codegen/utils.py
index 8c68d017c00..09468b10068 100644
--- a/codegen/utils.py
+++ b/codegen/utils.py
@@ -82,12 +82,16 @@ def build_from_imports_py(rel_modules=(), rel_classes=(), init_extra=""):
 
     result = f"""\
 import sys
-from _plotly_utils.importers import relative_import
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    {repr(rel_modules)},
-    {repr(rel_classes)}
-)
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    {imports_str}
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        {repr(rel_modules)},
+        {repr(rel_classes)}
+    )
 
 {init_extra}
 """
diff --git a/plotly/graph_objects/__init__.py b/plotly/graph_objects/__init__.py
index 6ac98aa4581..343ba126338 100644
--- a/plotly/graph_objects/__init__.py
+++ b/plotly/graph_objects/__init__.py
@@ -1,161 +1,305 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [
-        "..graph_objs.waterfall",
-        "..graph_objs.volume",
-        "..graph_objs.violin",
-        "..graph_objs.treemap",
-        "..graph_objs.table",
-        "..graph_objs.surface",
-        "..graph_objs.sunburst",
-        "..graph_objs.streamtube",
-        "..graph_objs.splom",
-        "..graph_objs.scatterternary",
-        "..graph_objs.scattersmith",
-        "..graph_objs.scatterpolargl",
-        "..graph_objs.scatterpolar",
-        "..graph_objs.scattermapbox",
-        "..graph_objs.scattermap",
-        "..graph_objs.scattergl",
-        "..graph_objs.scattergeo",
-        "..graph_objs.scattercarpet",
-        "..graph_objs.scatter3d",
-        "..graph_objs.scatter",
-        "..graph_objs.sankey",
-        "..graph_objs.pie",
-        "..graph_objs.parcoords",
-        "..graph_objs.parcats",
-        "..graph_objs.ohlc",
-        "..graph_objs.mesh3d",
-        "..graph_objs.isosurface",
-        "..graph_objs.indicator",
-        "..graph_objs.image",
-        "..graph_objs.icicle",
-        "..graph_objs.histogram2dcontour",
-        "..graph_objs.histogram2d",
-        "..graph_objs.histogram",
-        "..graph_objs.heatmap",
-        "..graph_objs.funnelarea",
-        "..graph_objs.funnel",
-        "..graph_objs.densitymapbox",
-        "..graph_objs.densitymap",
-        "..graph_objs.contourcarpet",
-        "..graph_objs.contour",
-        "..graph_objs.cone",
-        "..graph_objs.choroplethmapbox",
-        "..graph_objs.choroplethmap",
-        "..graph_objs.choropleth",
-        "..graph_objs.carpet",
-        "..graph_objs.candlestick",
-        "..graph_objs.box",
-        "..graph_objs.barpolar",
-        "..graph_objs.bar",
-        "..graph_objs.layout",
-    ],
-    [
-        "..graph_objs.Waterfall",
-        "..graph_objs.Volume",
-        "..graph_objs.Violin",
-        "..graph_objs.Treemap",
-        "..graph_objs.Table",
-        "..graph_objs.Surface",
-        "..graph_objs.Sunburst",
-        "..graph_objs.Streamtube",
-        "..graph_objs.Splom",
-        "..graph_objs.Scatterternary",
-        "..graph_objs.Scattersmith",
-        "..graph_objs.Scatterpolargl",
-        "..graph_objs.Scatterpolar",
-        "..graph_objs.Scattermapbox",
-        "..graph_objs.Scattermap",
-        "..graph_objs.Scattergl",
-        "..graph_objs.Scattergeo",
-        "..graph_objs.Scattercarpet",
-        "..graph_objs.Scatter3d",
-        "..graph_objs.Scatter",
-        "..graph_objs.Sankey",
-        "..graph_objs.Pie",
-        "..graph_objs.Parcoords",
-        "..graph_objs.Parcats",
-        "..graph_objs.Ohlc",
-        "..graph_objs.Mesh3d",
-        "..graph_objs.Isosurface",
-        "..graph_objs.Indicator",
-        "..graph_objs.Image",
-        "..graph_objs.Icicle",
-        "..graph_objs.Histogram2dContour",
-        "..graph_objs.Histogram2d",
-        "..graph_objs.Histogram",
-        "..graph_objs.Heatmap",
-        "..graph_objs.Funnelarea",
-        "..graph_objs.Funnel",
-        "..graph_objs.Densitymapbox",
-        "..graph_objs.Densitymap",
-        "..graph_objs.Contourcarpet",
-        "..graph_objs.Contour",
-        "..graph_objs.Cone",
-        "..graph_objs.Choroplethmapbox",
-        "..graph_objs.Choroplethmap",
-        "..graph_objs.Choropleth",
-        "..graph_objs.Carpet",
-        "..graph_objs.Candlestick",
-        "..graph_objs.Box",
-        "..graph_objs.Barpolar",
-        "..graph_objs.Bar",
-        "..graph_objs.Layout",
-        "..graph_objs.Frame",
-        "..graph_objs.Figure",
-        "..graph_objs.Data",
-        "..graph_objs.Annotations",
-        "..graph_objs.Frames",
-        "..graph_objs.AngularAxis",
-        "..graph_objs.Annotation",
-        "..graph_objs.ColorBar",
-        "..graph_objs.Contours",
-        "..graph_objs.ErrorX",
-        "..graph_objs.ErrorY",
-        "..graph_objs.ErrorZ",
-        "..graph_objs.Font",
-        "..graph_objs.Legend",
-        "..graph_objs.Line",
-        "..graph_objs.Margin",
-        "..graph_objs.Marker",
-        "..graph_objs.RadialAxis",
-        "..graph_objs.Scene",
-        "..graph_objs.Stream",
-        "..graph_objs.XAxis",
-        "..graph_objs.YAxis",
-        "..graph_objs.ZAxis",
-        "..graph_objs.XBins",
-        "..graph_objs.YBins",
-        "..graph_objs.Trace",
-        "..graph_objs.Histogram2dcontour",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ..graph_objs import Waterfall
+    from ..graph_objs import Volume
+    from ..graph_objs import Violin
+    from ..graph_objs import Treemap
+    from ..graph_objs import Table
+    from ..graph_objs import Surface
+    from ..graph_objs import Sunburst
+    from ..graph_objs import Streamtube
+    from ..graph_objs import Splom
+    from ..graph_objs import Scatterternary
+    from ..graph_objs import Scattersmith
+    from ..graph_objs import Scatterpolargl
+    from ..graph_objs import Scatterpolar
+    from ..graph_objs import Scattermapbox
+    from ..graph_objs import Scattermap
+    from ..graph_objs import Scattergl
+    from ..graph_objs import Scattergeo
+    from ..graph_objs import Scattercarpet
+    from ..graph_objs import Scatter3d
+    from ..graph_objs import Scatter
+    from ..graph_objs import Sankey
+    from ..graph_objs import Pie
+    from ..graph_objs import Parcoords
+    from ..graph_objs import Parcats
+    from ..graph_objs import Ohlc
+    from ..graph_objs import Mesh3d
+    from ..graph_objs import Isosurface
+    from ..graph_objs import Indicator
+    from ..graph_objs import Image
+    from ..graph_objs import Icicle
+    from ..graph_objs import Histogram2dContour
+    from ..graph_objs import Histogram2d
+    from ..graph_objs import Histogram
+    from ..graph_objs import Heatmap
+    from ..graph_objs import Funnelarea
+    from ..graph_objs import Funnel
+    from ..graph_objs import Densitymapbox
+    from ..graph_objs import Densitymap
+    from ..graph_objs import Contourcarpet
+    from ..graph_objs import Contour
+    from ..graph_objs import Cone
+    from ..graph_objs import Choroplethmapbox
+    from ..graph_objs import Choroplethmap
+    from ..graph_objs import Choropleth
+    from ..graph_objs import Carpet
+    from ..graph_objs import Candlestick
+    from ..graph_objs import Box
+    from ..graph_objs import Barpolar
+    from ..graph_objs import Bar
+    from ..graph_objs import Layout
+    from ..graph_objs import Frame
+    from ..graph_objs import Figure
+    from ..graph_objs import Data
+    from ..graph_objs import Annotations
+    from ..graph_objs import Frames
+    from ..graph_objs import AngularAxis
+    from ..graph_objs import Annotation
+    from ..graph_objs import ColorBar
+    from ..graph_objs import Contours
+    from ..graph_objs import ErrorX
+    from ..graph_objs import ErrorY
+    from ..graph_objs import ErrorZ
+    from ..graph_objs import Font
+    from ..graph_objs import Legend
+    from ..graph_objs import Line
+    from ..graph_objs import Margin
+    from ..graph_objs import Marker
+    from ..graph_objs import RadialAxis
+    from ..graph_objs import Scene
+    from ..graph_objs import Stream
+    from ..graph_objs import XAxis
+    from ..graph_objs import YAxis
+    from ..graph_objs import ZAxis
+    from ..graph_objs import XBins
+    from ..graph_objs import YBins
+    from ..graph_objs import Trace
+    from ..graph_objs import Histogram2dcontour
+    from ..graph_objs import waterfall
+    from ..graph_objs import volume
+    from ..graph_objs import violin
+    from ..graph_objs import treemap
+    from ..graph_objs import table
+    from ..graph_objs import surface
+    from ..graph_objs import sunburst
+    from ..graph_objs import streamtube
+    from ..graph_objs import splom
+    from ..graph_objs import scatterternary
+    from ..graph_objs import scattersmith
+    from ..graph_objs import scatterpolargl
+    from ..graph_objs import scatterpolar
+    from ..graph_objs import scattermapbox
+    from ..graph_objs import scattermap
+    from ..graph_objs import scattergl
+    from ..graph_objs import scattergeo
+    from ..graph_objs import scattercarpet
+    from ..graph_objs import scatter3d
+    from ..graph_objs import scatter
+    from ..graph_objs import sankey
+    from ..graph_objs import pie
+    from ..graph_objs import parcoords
+    from ..graph_objs import parcats
+    from ..graph_objs import ohlc
+    from ..graph_objs import mesh3d
+    from ..graph_objs import isosurface
+    from ..graph_objs import indicator
+    from ..graph_objs import image
+    from ..graph_objs import icicle
+    from ..graph_objs import histogram2dcontour
+    from ..graph_objs import histogram2d
+    from ..graph_objs import histogram
+    from ..graph_objs import heatmap
+    from ..graph_objs import funnelarea
+    from ..graph_objs import funnel
+    from ..graph_objs import densitymapbox
+    from ..graph_objs import densitymap
+    from ..graph_objs import contourcarpet
+    from ..graph_objs import contour
+    from ..graph_objs import cone
+    from ..graph_objs import choroplethmapbox
+    from ..graph_objs import choroplethmap
+    from ..graph_objs import choropleth
+    from ..graph_objs import carpet
+    from ..graph_objs import candlestick
+    from ..graph_objs import box
+    from ..graph_objs import barpolar
+    from ..graph_objs import bar
+    from ..graph_objs import layout
+else:
+    from _plotly_utils.importers import relative_import
 
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [
+            "..graph_objs.waterfall",
+            "..graph_objs.volume",
+            "..graph_objs.violin",
+            "..graph_objs.treemap",
+            "..graph_objs.table",
+            "..graph_objs.surface",
+            "..graph_objs.sunburst",
+            "..graph_objs.streamtube",
+            "..graph_objs.splom",
+            "..graph_objs.scatterternary",
+            "..graph_objs.scattersmith",
+            "..graph_objs.scatterpolargl",
+            "..graph_objs.scatterpolar",
+            "..graph_objs.scattermapbox",
+            "..graph_objs.scattermap",
+            "..graph_objs.scattergl",
+            "..graph_objs.scattergeo",
+            "..graph_objs.scattercarpet",
+            "..graph_objs.scatter3d",
+            "..graph_objs.scatter",
+            "..graph_objs.sankey",
+            "..graph_objs.pie",
+            "..graph_objs.parcoords",
+            "..graph_objs.parcats",
+            "..graph_objs.ohlc",
+            "..graph_objs.mesh3d",
+            "..graph_objs.isosurface",
+            "..graph_objs.indicator",
+            "..graph_objs.image",
+            "..graph_objs.icicle",
+            "..graph_objs.histogram2dcontour",
+            "..graph_objs.histogram2d",
+            "..graph_objs.histogram",
+            "..graph_objs.heatmap",
+            "..graph_objs.funnelarea",
+            "..graph_objs.funnel",
+            "..graph_objs.densitymapbox",
+            "..graph_objs.densitymap",
+            "..graph_objs.contourcarpet",
+            "..graph_objs.contour",
+            "..graph_objs.cone",
+            "..graph_objs.choroplethmapbox",
+            "..graph_objs.choroplethmap",
+            "..graph_objs.choropleth",
+            "..graph_objs.carpet",
+            "..graph_objs.candlestick",
+            "..graph_objs.box",
+            "..graph_objs.barpolar",
+            "..graph_objs.bar",
+            "..graph_objs.layout",
+        ],
+        [
+            "..graph_objs.Waterfall",
+            "..graph_objs.Volume",
+            "..graph_objs.Violin",
+            "..graph_objs.Treemap",
+            "..graph_objs.Table",
+            "..graph_objs.Surface",
+            "..graph_objs.Sunburst",
+            "..graph_objs.Streamtube",
+            "..graph_objs.Splom",
+            "..graph_objs.Scatterternary",
+            "..graph_objs.Scattersmith",
+            "..graph_objs.Scatterpolargl",
+            "..graph_objs.Scatterpolar",
+            "..graph_objs.Scattermapbox",
+            "..graph_objs.Scattermap",
+            "..graph_objs.Scattergl",
+            "..graph_objs.Scattergeo",
+            "..graph_objs.Scattercarpet",
+            "..graph_objs.Scatter3d",
+            "..graph_objs.Scatter",
+            "..graph_objs.Sankey",
+            "..graph_objs.Pie",
+            "..graph_objs.Parcoords",
+            "..graph_objs.Parcats",
+            "..graph_objs.Ohlc",
+            "..graph_objs.Mesh3d",
+            "..graph_objs.Isosurface",
+            "..graph_objs.Indicator",
+            "..graph_objs.Image",
+            "..graph_objs.Icicle",
+            "..graph_objs.Histogram2dContour",
+            "..graph_objs.Histogram2d",
+            "..graph_objs.Histogram",
+            "..graph_objs.Heatmap",
+            "..graph_objs.Funnelarea",
+            "..graph_objs.Funnel",
+            "..graph_objs.Densitymapbox",
+            "..graph_objs.Densitymap",
+            "..graph_objs.Contourcarpet",
+            "..graph_objs.Contour",
+            "..graph_objs.Cone",
+            "..graph_objs.Choroplethmapbox",
+            "..graph_objs.Choroplethmap",
+            "..graph_objs.Choropleth",
+            "..graph_objs.Carpet",
+            "..graph_objs.Candlestick",
+            "..graph_objs.Box",
+            "..graph_objs.Barpolar",
+            "..graph_objs.Bar",
+            "..graph_objs.Layout",
+            "..graph_objs.Frame",
+            "..graph_objs.Figure",
+            "..graph_objs.Data",
+            "..graph_objs.Annotations",
+            "..graph_objs.Frames",
+            "..graph_objs.AngularAxis",
+            "..graph_objs.Annotation",
+            "..graph_objs.ColorBar",
+            "..graph_objs.Contours",
+            "..graph_objs.ErrorX",
+            "..graph_objs.ErrorY",
+            "..graph_objs.ErrorZ",
+            "..graph_objs.Font",
+            "..graph_objs.Legend",
+            "..graph_objs.Line",
+            "..graph_objs.Margin",
+            "..graph_objs.Marker",
+            "..graph_objs.RadialAxis",
+            "..graph_objs.Scene",
+            "..graph_objs.Stream",
+            "..graph_objs.XAxis",
+            "..graph_objs.YAxis",
+            "..graph_objs.ZAxis",
+            "..graph_objs.XBins",
+            "..graph_objs.YBins",
+            "..graph_objs.Trace",
+            "..graph_objs.Histogram2dcontour",
+        ],
+    )
 
-__all__.append("FigureWidget")
-orig_getattr = __getattr__
 
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    try:
+        import ipywidgets as _ipywidgets
+        from packaging.version import Version as _Version
 
-def __getattr__(import_name):
-    if import_name == "FigureWidget":
-        try:
-            import ipywidgets
-            from packaging.version import Version
+        if _Version(_ipywidgets.__version__) >= _Version("7.0.0"):
+            from ..graph_objs._figurewidget import FigureWidget
+        else:
+            raise ImportError()
+    except Exception:
+        from ..missing_anywidget import FigureWidget
+else:
+    __all__.append("FigureWidget")
+    orig_getattr = __getattr__
 
-            if Version(ipywidgets.__version__) >= Version("7.0.0"):
-                from ..graph_objs._figurewidget import FigureWidget
+    def __getattr__(import_name):
+        if import_name == "FigureWidget":
+            try:
+                import ipywidgets
+                from packaging.version import Version
+
+                if Version(ipywidgets.__version__) >= Version("7.0.0"):
+                    from ..graph_objs._figurewidget import FigureWidget
+
+                    return FigureWidget
+                else:
+                    raise ImportError()
+            except Exception:
+                from ..missing_anywidget import FigureWidget
 
                 return FigureWidget
             else:
                 raise ImportError()
-        except Exception:
-            from ..missing_anywidget import FigureWidget
-
-            return FigureWidget
 
-    return orig_getattr(import_name)
+        return orig_getattr(import_name)
diff --git a/plotly/graph_objs/__init__.py b/plotly/graph_objs/__init__.py
index 5e36196d079..f4c6c676bc5 100644
--- a/plotly/graph_objs/__init__.py
+++ b/plotly/graph_objs/__init__.py
@@ -1,161 +1,170 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._bar import Bar
+    from ._barpolar import Barpolar
+    from ._box import Box
+    from ._candlestick import Candlestick
+    from ._carpet import Carpet
+    from ._choropleth import Choropleth
+    from ._choroplethmap import Choroplethmap
+    from ._choroplethmapbox import Choroplethmapbox
+    from ._cone import Cone
+    from ._contour import Contour
+    from ._contourcarpet import Contourcarpet
+    from ._densitymap import Densitymap
+    from ._densitymapbox import Densitymapbox
+    from ._deprecations import AngularAxis
+    from ._deprecations import Annotation
+    from ._deprecations import Annotations
+    from ._deprecations import ColorBar
+    from ._deprecations import Contours
+    from ._deprecations import Data
+    from ._deprecations import ErrorX
+    from ._deprecations import ErrorY
+    from ._deprecations import ErrorZ
+    from ._deprecations import Font
+    from ._deprecations import Frames
+    from ._deprecations import Histogram2dcontour
+    from ._deprecations import Legend
+    from ._deprecations import Line
+    from ._deprecations import Margin
+    from ._deprecations import Marker
+    from ._deprecations import RadialAxis
+    from ._deprecations import Scene
+    from ._deprecations import Stream
+    from ._deprecations import Trace
+    from ._deprecations import XAxis
+    from ._deprecations import XBins
+    from ._deprecations import YAxis
+    from ._deprecations import YBins
+    from ._deprecations import ZAxis
+    from ._figure import Figure
+    from ._frame import Frame
+    from ._funnel import Funnel
+    from ._funnelarea import Funnelarea
+    from ._heatmap import Heatmap
+    from ._histogram import Histogram
+    from ._histogram2d import Histogram2d
+    from ._histogram2dcontour import Histogram2dContour
+    from ._icicle import Icicle
+    from ._image import Image
+    from ._indicator import Indicator
+    from ._isosurface import Isosurface
+    from ._layout import Layout
+    from ._mesh3d import Mesh3d
+    from ._ohlc import Ohlc
+    from ._parcats import Parcats
+    from ._parcoords import Parcoords
+    from ._pie import Pie
+    from ._sankey import Sankey
+    from ._scatter import Scatter
+    from ._scatter3d import Scatter3d
+    from ._scattercarpet import Scattercarpet
+    from ._scattergeo import Scattergeo
+    from ._scattergl import Scattergl
+    from ._scattermap import Scattermap
+    from ._scattermapbox import Scattermapbox
+    from ._scatterpolar import Scatterpolar
+    from ._scatterpolargl import Scatterpolargl
+    from ._scattersmith import Scattersmith
+    from ._scatterternary import Scatterternary
+    from ._splom import Splom
+    from ._streamtube import Streamtube
+    from ._sunburst import Sunburst
+    from ._surface import Surface
+    from ._table import Table
+    from ._treemap import Treemap
+    from ._violin import Violin
+    from ._volume import Volume
+    from ._waterfall import Waterfall
+    from . import bar
+    from . import barpolar
+    from . import box
+    from . import candlestick
+    from . import carpet
+    from . import choropleth
+    from . import choroplethmap
+    from . import choroplethmapbox
+    from . import cone
+    from . import contour
+    from . import contourcarpet
+    from . import densitymap
+    from . import densitymapbox
+    from . import funnel
+    from . import funnelarea
+    from . import heatmap
+    from . import histogram
+    from . import histogram2d
+    from . import histogram2dcontour
+    from . import icicle
+    from . import image
+    from . import indicator
+    from . import isosurface
+    from . import layout
+    from . import mesh3d
+    from . import ohlc
+    from . import parcats
+    from . import parcoords
+    from . import pie
+    from . import sankey
+    from . import scatter
+    from . import scatter3d
+    from . import scattercarpet
+    from . import scattergeo
+    from . import scattergl
+    from . import scattermap
+    from . import scattermapbox
+    from . import scatterpolar
+    from . import scatterpolargl
+    from . import scattersmith
+    from . import scatterternary
+    from . import splom
+    from . import streamtube
+    from . import sunburst
+    from . import surface
+    from . import table
+    from . import treemap
+    from . import violin
+    from . import volume
+    from . import waterfall
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.bar', '.barpolar', '.box', '.candlestick', '.carpet', '.choropleth', '.choroplethmap', '.choroplethmapbox', '.cone', '.contour', '.contourcarpet', '.densitymap', '.densitymapbox', '.funnel', '.funnelarea', '.heatmap', '.histogram', '.histogram2d', '.histogram2dcontour', '.icicle', '.image', '.indicator', '.isosurface', '.layout', '.mesh3d', '.ohlc', '.parcats', '.parcoords', '.pie', '.sankey', '.scatter', '.scatter3d', '.scattercarpet', '.scattergeo', '.scattergl', '.scattermap', '.scattermapbox', '.scatterpolar', '.scatterpolargl', '.scattersmith', '.scatterternary', '.splom', '.streamtube', '.sunburst', '.surface', '.table', '.treemap', '.violin', '.volume', '.waterfall'],
+        ['._bar.Bar', '._barpolar.Barpolar', '._box.Box', '._candlestick.Candlestick', '._carpet.Carpet', '._choropleth.Choropleth', '._choroplethmap.Choroplethmap', '._choroplethmapbox.Choroplethmapbox', '._cone.Cone', '._contour.Contour', '._contourcarpet.Contourcarpet', '._densitymap.Densitymap', '._densitymapbox.Densitymapbox', '._deprecations.AngularAxis', '._deprecations.Annotation', '._deprecations.Annotations', '._deprecations.ColorBar', '._deprecations.Contours', '._deprecations.Data', '._deprecations.ErrorX', '._deprecations.ErrorY', '._deprecations.ErrorZ', '._deprecations.Font', '._deprecations.Frames', '._deprecations.Histogram2dcontour', '._deprecations.Legend', '._deprecations.Line', '._deprecations.Margin', '._deprecations.Marker', '._deprecations.RadialAxis', '._deprecations.Scene', '._deprecations.Stream', '._deprecations.Trace', '._deprecations.XAxis', '._deprecations.XBins', '._deprecations.YAxis', '._deprecations.YBins', '._deprecations.ZAxis', '._figure.Figure', '._frame.Frame', '._funnel.Funnel', '._funnelarea.Funnelarea', '._heatmap.Heatmap', '._histogram.Histogram', '._histogram2d.Histogram2d', '._histogram2dcontour.Histogram2dContour', '._icicle.Icicle', '._image.Image', '._indicator.Indicator', '._isosurface.Isosurface', '._layout.Layout', '._mesh3d.Mesh3d', '._ohlc.Ohlc', '._parcats.Parcats', '._parcoords.Parcoords', '._pie.Pie', '._sankey.Sankey', '._scatter.Scatter', '._scatter3d.Scatter3d', '._scattercarpet.Scattercarpet', '._scattergeo.Scattergeo', '._scattergl.Scattergl', '._scattermap.Scattermap', '._scattermapbox.Scattermapbox', '._scatterpolar.Scatterpolar', '._scatterpolargl.Scatterpolargl', '._scattersmith.Scattersmith', '._scatterternary.Scatterternary', '._splom.Splom', '._streamtube.Streamtube', '._sunburst.Sunburst', '._surface.Surface', '._table.Table', '._treemap.Treemap', '._violin.Violin', '._volume.Volume', '._waterfall.Waterfall']
+    )
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [
-        ".bar",
-        ".barpolar",
-        ".box",
-        ".candlestick",
-        ".carpet",
-        ".choropleth",
-        ".choroplethmap",
-        ".choroplethmapbox",
-        ".cone",
-        ".contour",
-        ".contourcarpet",
-        ".densitymap",
-        ".densitymapbox",
-        ".funnel",
-        ".funnelarea",
-        ".heatmap",
-        ".histogram",
-        ".histogram2d",
-        ".histogram2dcontour",
-        ".icicle",
-        ".image",
-        ".indicator",
-        ".isosurface",
-        ".layout",
-        ".mesh3d",
-        ".ohlc",
-        ".parcats",
-        ".parcoords",
-        ".pie",
-        ".sankey",
-        ".scatter",
-        ".scatter3d",
-        ".scattercarpet",
-        ".scattergeo",
-        ".scattergl",
-        ".scattermap",
-        ".scattermapbox",
-        ".scatterpolar",
-        ".scatterpolargl",
-        ".scattersmith",
-        ".scatterternary",
-        ".splom",
-        ".streamtube",
-        ".sunburst",
-        ".surface",
-        ".table",
-        ".treemap",
-        ".violin",
-        ".volume",
-        ".waterfall",
-    ],
-    [
-        "._bar.Bar",
-        "._barpolar.Barpolar",
-        "._box.Box",
-        "._candlestick.Candlestick",
-        "._carpet.Carpet",
-        "._choropleth.Choropleth",
-        "._choroplethmap.Choroplethmap",
-        "._choroplethmapbox.Choroplethmapbox",
-        "._cone.Cone",
-        "._contour.Contour",
-        "._contourcarpet.Contourcarpet",
-        "._densitymap.Densitymap",
-        "._densitymapbox.Densitymapbox",
-        "._deprecations.AngularAxis",
-        "._deprecations.Annotation",
-        "._deprecations.Annotations",
-        "._deprecations.ColorBar",
-        "._deprecations.Contours",
-        "._deprecations.Data",
-        "._deprecations.ErrorX",
-        "._deprecations.ErrorY",
-        "._deprecations.ErrorZ",
-        "._deprecations.Font",
-        "._deprecations.Frames",
-        "._deprecations.Histogram2dcontour",
-        "._deprecations.Legend",
-        "._deprecations.Line",
-        "._deprecations.Margin",
-        "._deprecations.Marker",
-        "._deprecations.RadialAxis",
-        "._deprecations.Scene",
-        "._deprecations.Stream",
-        "._deprecations.Trace",
-        "._deprecations.XAxis",
-        "._deprecations.XBins",
-        "._deprecations.YAxis",
-        "._deprecations.YBins",
-        "._deprecations.ZAxis",
-        "._figure.Figure",
-        "._frame.Frame",
-        "._funnel.Funnel",
-        "._funnelarea.Funnelarea",
-        "._heatmap.Heatmap",
-        "._histogram.Histogram",
-        "._histogram2d.Histogram2d",
-        "._histogram2dcontour.Histogram2dContour",
-        "._icicle.Icicle",
-        "._image.Image",
-        "._indicator.Indicator",
-        "._isosurface.Isosurface",
-        "._layout.Layout",
-        "._mesh3d.Mesh3d",
-        "._ohlc.Ohlc",
-        "._parcats.Parcats",
-        "._parcoords.Parcoords",
-        "._pie.Pie",
-        "._sankey.Sankey",
-        "._scatter.Scatter",
-        "._scatter3d.Scatter3d",
-        "._scattercarpet.Scattercarpet",
-        "._scattergeo.Scattergeo",
-        "._scattergl.Scattergl",
-        "._scattermap.Scattermap",
-        "._scattermapbox.Scattermapbox",
-        "._scatterpolar.Scatterpolar",
-        "._scatterpolargl.Scatterpolargl",
-        "._scattersmith.Scattersmith",
-        "._scatterternary.Scatterternary",
-        "._splom.Splom",
-        "._streamtube.Streamtube",
-        "._sunburst.Sunburst",
-        "._surface.Surface",
-        "._table.Table",
-        "._treemap.Treemap",
-        "._violin.Violin",
-        "._volume.Volume",
-        "._waterfall.Waterfall",
-    ],
-)
-
-
-__all__.append("FigureWidget")
-orig_getattr = __getattr__
-
-
-def __getattr__(import_name):
-    if import_name == "FigureWidget":
-        try:
-            import ipywidgets
-            from packaging.version import Version
-
-            if Version(ipywidgets.__version__) >= Version("7.0.0"):
-                from ..graph_objs._figurewidget import FigureWidget
 
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    try:
+        import ipywidgets as _ipywidgets
+        from packaging.version import Version as _Version
+        if _Version(_ipywidgets.__version__) >= _Version("7.0.0"):
+            from ..graph_objs._figurewidget import FigureWidget
+        else:
+            raise ImportError()
+    except Exception:
+        from ..missing_anywidget import FigureWidget
+else:
+    __all__.append("FigureWidget")
+    orig_getattr = __getattr__
+    def __getattr__(import_name):
+        if import_name == "FigureWidget":
+            try:
+                import ipywidgets
+                from packaging.version import Version
+                if Version(ipywidgets.__version__) >= Version("7.0.0"):
+                    from ..graph_objs._figurewidget import FigureWidget
+                    return FigureWidget
+                else:
+                    raise ImportError()
+            except Exception:
+                from ..missing_anywidget import FigureWidget
                 return FigureWidget
             else:
                 raise ImportError()
-        except Exception:
-            from ..missing_anywidget import FigureWidget
 
-            return FigureWidget
+        return orig_getattr(import_name)
 
-    return orig_getattr(import_name)
diff --git a/plotly/graph_objs/_barpolar.py b/plotly/graph_objs/_barpolar.py
index a58929798c0..1072d776f27 100644
--- a/plotly/graph_objs/_barpolar.py
+++ b/plotly/graph_objs/_barpolar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,58 +11,9 @@
 
 class Barpolar(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "barpolar"
-    _valid_props = {
-        "base",
-        "basesrc",
-        "customdata",
-        "customdatasrc",
-        "dr",
-        "dtheta",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "marker",
-        "meta",
-        "metasrc",
-        "name",
-        "offset",
-        "offsetsrc",
-        "opacity",
-        "r",
-        "r0",
-        "rsrc",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "stream",
-        "subplot",
-        "text",
-        "textsrc",
-        "theta",
-        "theta0",
-        "thetasrc",
-        "thetaunit",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-        "width",
-        "widthsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'barpolar'
+    _valid_props = {"base", "basesrc", "customdata", "customdatasrc", "dr", "dtheta", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "marker", "meta", "metasrc", "name", "offset", "offsetsrc", "opacity", "r", "r0", "rsrc", "selected", "selectedpoints", "showlegend", "stream", "subplot", "text", "textsrc", "theta", "theta0", "thetasrc", "thetaunit", "type", "uid", "uirevision", "unselected", "visible", "width", "widthsrc"}
 
     @property
     def base(self):
@@ -73,11 +28,11 @@ def base(self):
         -------
         Any|numpy.ndarray
         """
-        return self["base"]
+        return self['base']
 
     @base.setter
     def base(self, val):
-        self["base"] = val
+        self['base'] = val
 
     @property
     def basesrc(self):
@@ -91,11 +46,11 @@ def basesrc(self):
         -------
         str
         """
-        return self["basesrc"]
+        return self['basesrc']
 
     @basesrc.setter
     def basesrc(self, val):
-        self["basesrc"] = val
+        self['basesrc'] = val
 
     @property
     def customdata(self):
@@ -112,11 +67,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -131,11 +86,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def dr(self):
@@ -149,11 +104,11 @@ def dr(self):
         -------
         int|float
         """
-        return self["dr"]
+        return self['dr']
 
     @dr.setter
     def dr(self, val):
-        self["dr"] = val
+        self['dr'] = val
 
     @property
     def dtheta(self):
@@ -169,11 +124,11 @@ def dtheta(self):
         -------
         int|float
         """
-        return self["dtheta"]
+        return self['dtheta']
 
     @dtheta.setter
     def dtheta(self, val):
-        self["dtheta"] = val
+        self['dtheta'] = val
 
     @property
     def hoverinfo(self):
@@ -193,11 +148,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -212,11 +167,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -231,11 +186,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.barpolar.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -273,11 +228,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -292,11 +247,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -312,11 +267,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -331,11 +286,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -351,11 +306,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -369,11 +324,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -392,11 +347,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -413,11 +368,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -432,11 +387,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.barpolar.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -457,11 +412,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -476,11 +431,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def marker(self):
@@ -495,11 +450,11 @@ def marker(self):
         -------
         plotly.graph_objs.barpolar.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -521,11 +476,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -539,11 +494,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -559,11 +514,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def offset(self):
@@ -579,11 +534,11 @@ def offset(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["offset"]
+        return self['offset']
 
     @offset.setter
     def offset(self, val):
-        self["offset"] = val
+        self['offset'] = val
 
     @property
     def offsetsrc(self):
@@ -597,11 +552,11 @@ def offsetsrc(self):
         -------
         str
         """
-        return self["offsetsrc"]
+        return self['offsetsrc']
 
     @offsetsrc.setter
     def offsetsrc(self, val):
-        self["offsetsrc"] = val
+        self['offsetsrc'] = val
 
     @property
     def opacity(self):
@@ -615,11 +570,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def r(self):
@@ -633,11 +588,11 @@ def r(self):
         -------
         numpy.ndarray
         """
-        return self["r"]
+        return self['r']
 
     @r.setter
     def r(self, val):
-        self["r"] = val
+        self['r'] = val
 
     @property
     def r0(self):
@@ -652,11 +607,11 @@ def r0(self):
         -------
         Any
         """
-        return self["r0"]
+        return self['r0']
 
     @r0.setter
     def r0(self, val):
-        self["r0"] = val
+        self['r0'] = val
 
     @property
     def rsrc(self):
@@ -670,11 +625,11 @@ def rsrc(self):
         -------
         str
         """
-        return self["rsrc"]
+        return self['rsrc']
 
     @rsrc.setter
     def rsrc(self, val):
-        self["rsrc"] = val
+        self['rsrc'] = val
 
     @property
     def selected(self):
@@ -689,11 +644,11 @@ def selected(self):
         -------
         plotly.graph_objs.barpolar.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -711,11 +666,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -730,11 +685,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -749,11 +704,11 @@ def stream(self):
         -------
         plotly.graph_objs.barpolar.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def subplot(self):
@@ -772,11 +727,11 @@ def subplot(self):
         -------
         str
         """
-        return self["subplot"]
+        return self['subplot']
 
     @subplot.setter
     def subplot(self, val):
-        self["subplot"] = val
+        self['subplot'] = val
 
     @property
     def text(self):
@@ -795,11 +750,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -813,11 +768,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def theta(self):
@@ -831,11 +786,11 @@ def theta(self):
         -------
         numpy.ndarray
         """
-        return self["theta"]
+        return self['theta']
 
     @theta.setter
     def theta(self, val):
-        self["theta"] = val
+        self['theta'] = val
 
     @property
     def theta0(self):
@@ -850,11 +805,11 @@ def theta0(self):
         -------
         Any
         """
-        return self["theta0"]
+        return self['theta0']
 
     @theta0.setter
     def theta0(self, val):
-        self["theta0"] = val
+        self['theta0'] = val
 
     @property
     def thetasrc(self):
@@ -868,11 +823,11 @@ def thetasrc(self):
         -------
         str
         """
-        return self["thetasrc"]
+        return self['thetasrc']
 
     @thetasrc.setter
     def thetasrc(self, val):
-        self["thetasrc"] = val
+        self['thetasrc'] = val
 
     @property
     def thetaunit(self):
@@ -888,11 +843,11 @@ def thetaunit(self):
         -------
         Any
         """
-        return self["thetaunit"]
+        return self['thetaunit']
 
     @thetaunit.setter
     def thetaunit(self, val):
-        self["thetaunit"] = val
+        self['thetaunit'] = val
 
     @property
     def uid(self):
@@ -908,11 +863,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -939,11 +894,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -958,11 +913,11 @@ def unselected(self):
         -------
         plotly.graph_objs.barpolar.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -979,11 +934,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -998,11 +953,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -1016,15 +971,15 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1247,59 +1202,57 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        base=None,
-        basesrc=None,
-        customdata=None,
-        customdatasrc=None,
-        dr=None,
-        dtheta=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        offset=None,
-        offsetsrc=None,
-        opacity=None,
-        r=None,
-        r0=None,
-        rsrc=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textsrc=None,
-        theta=None,
-        theta0=None,
-        thetasrc=None,
-        thetaunit=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        width=None,
-        widthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            base=None,
+            basesrc=None,
+            customdata=None,
+            customdatasrc=None,
+            dr=None,
+            dtheta=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            offset=None,
+            offsetsrc=None,
+            opacity=None,
+            r=None,
+            r0=None,
+            rsrc=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textsrc=None,
+            theta=None,
+            theta0=None,
+            thetasrc=None,
+            thetaunit=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Barpolar object
 
@@ -1533,9 +1486,9 @@ def __init__(
         -------
         Barpolar
         """
-        super().__init__("barpolar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('barpolar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1545,65 +1498,66 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Barpolar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Barpolar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("base", arg, base)
-        self._set_property("basesrc", arg, basesrc)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("dr", arg, dr)
-        self._set_property("dtheta", arg, dtheta)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("offset", arg, offset)
-        self._set_property("offsetsrc", arg, offsetsrc)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("r", arg, r)
-        self._set_property("r0", arg, r0)
-        self._set_property("rsrc", arg, rsrc)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("subplot", arg, subplot)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("theta", arg, theta)
-        self._set_property("theta0", arg, theta0)
-        self._set_property("thetasrc", arg, thetasrc)
-        self._set_property("thetaunit", arg, thetaunit)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
-
-        self._props["type"] = "barpolar"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Barpolar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('base', arg, base)
+        self._set_property('basesrc', arg, basesrc)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('dr', arg, dr)
+        self._set_property('dtheta', arg, dtheta)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('offset', arg, offset)
+        self._set_property('offsetsrc', arg, offsetsrc)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('r', arg, r)
+        self._set_property('r0', arg, r0)
+        self._set_property('rsrc', arg, rsrc)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('subplot', arg, subplot)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('theta', arg, theta)
+        self._set_property('theta0', arg, theta0)
+        self._set_property('thetasrc', arg, thetasrc)
+        self._set_property('thetaunit', arg, thetaunit)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
+
+
+        self._props['type'] = 'barpolar'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_box.py b/plotly/graph_objs/_box.py
index a579d4deaf9..b586f39e8e9 100644
--- a/plotly/graph_objs/_box.py
+++ b/plotly/graph_objs/_box.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,97 +11,9 @@
 
 class Box(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "box"
-    _valid_props = {
-        "alignmentgroup",
-        "boxmean",
-        "boxpoints",
-        "customdata",
-        "customdatasrc",
-        "dx",
-        "dy",
-        "fillcolor",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hoveron",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "jitter",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "lowerfence",
-        "lowerfencesrc",
-        "marker",
-        "mean",
-        "meansrc",
-        "median",
-        "mediansrc",
-        "meta",
-        "metasrc",
-        "name",
-        "notched",
-        "notchspan",
-        "notchspansrc",
-        "notchwidth",
-        "offsetgroup",
-        "opacity",
-        "orientation",
-        "pointpos",
-        "q1",
-        "q1src",
-        "q3",
-        "q3src",
-        "quartilemethod",
-        "sd",
-        "sdmultiple",
-        "sdsrc",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "showwhiskers",
-        "sizemode",
-        "stream",
-        "text",
-        "textsrc",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "upperfence",
-        "upperfencesrc",
-        "visible",
-        "whiskerwidth",
-        "width",
-        "x",
-        "x0",
-        "xaxis",
-        "xcalendar",
-        "xhoverformat",
-        "xperiod",
-        "xperiod0",
-        "xperiodalignment",
-        "xsrc",
-        "y",
-        "y0",
-        "yaxis",
-        "ycalendar",
-        "yhoverformat",
-        "yperiod",
-        "yperiod0",
-        "yperiodalignment",
-        "ysrc",
-        "zorder",
-    }
+    _parent_path_str = ''
+    _path_str = 'box'
+    _valid_props = {"alignmentgroup", "boxmean", "boxpoints", "customdata", "customdatasrc", "dx", "dy", "fillcolor", "hoverinfo", "hoverinfosrc", "hoverlabel", "hoveron", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "jitter", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "lowerfence", "lowerfencesrc", "marker", "mean", "meansrc", "median", "mediansrc", "meta", "metasrc", "name", "notched", "notchspan", "notchspansrc", "notchwidth", "offsetgroup", "opacity", "orientation", "pointpos", "q1", "q1src", "q3", "q3src", "quartilemethod", "sd", "sdmultiple", "sdsrc", "selected", "selectedpoints", "showlegend", "showwhiskers", "sizemode", "stream", "text", "textsrc", "type", "uid", "uirevision", "unselected", "upperfence", "upperfencesrc", "visible", "whiskerwidth", "width", "x", "x0", "xaxis", "xcalendar", "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", "xsrc", "y", "y0", "yaxis", "ycalendar", "yhoverformat", "yperiod", "yperiod0", "yperiodalignment", "ysrc", "zorder"}
 
     @property
     def alignmentgroup(self):
@@ -114,11 +30,11 @@ def alignmentgroup(self):
         -------
         str
         """
-        return self["alignmentgroup"]
+        return self['alignmentgroup']
 
     @alignmentgroup.setter
     def alignmentgroup(self, val):
-        self["alignmentgroup"] = val
+        self['alignmentgroup'] = val
 
     @property
     def boxmean(self):
@@ -136,11 +52,11 @@ def boxmean(self):
         -------
         Any
         """
-        return self["boxmean"]
+        return self['boxmean']
 
     @boxmean.setter
     def boxmean(self, val):
-        self["boxmean"] = val
+        self['boxmean'] = val
 
     @property
     def boxpoints(self):
@@ -163,11 +79,11 @@ def boxpoints(self):
         -------
         Any
         """
-        return self["boxpoints"]
+        return self['boxpoints']
 
     @boxpoints.setter
     def boxpoints(self, val):
-        self["boxpoints"] = val
+        self['boxpoints'] = val
 
     @property
     def customdata(self):
@@ -184,11 +100,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -203,11 +119,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def dx(self):
@@ -222,11 +138,11 @@ def dx(self):
         -------
         int|float
         """
-        return self["dx"]
+        return self['dx']
 
     @dx.setter
     def dx(self, val):
-        self["dx"] = val
+        self['dx'] = val
 
     @property
     def dy(self):
@@ -241,11 +157,11 @@ def dy(self):
         -------
         int|float
         """
-        return self["dy"]
+        return self['dy']
 
     @dy.setter
     def dy(self, val):
-        self["dy"] = val
+        self['dy'] = val
 
     @property
     def fillcolor(self):
@@ -265,11 +181,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def hoverinfo(self):
@@ -289,11 +205,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -308,11 +224,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -327,11 +243,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.box.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hoveron(self):
@@ -348,11 +264,11 @@ def hoveron(self):
         -------
         Any
         """
-        return self["hoveron"]
+        return self['hoveron']
 
     @hoveron.setter
     def hoveron(self, val):
-        self["hoveron"] = val
+        self['hoveron'] = val
 
     @property
     def hovertemplate(self):
@@ -390,11 +306,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -409,11 +325,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -429,11 +345,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -448,11 +364,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -468,11 +384,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -486,11 +402,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def jitter(self):
@@ -507,11 +423,11 @@ def jitter(self):
         -------
         int|float
         """
-        return self["jitter"]
+        return self['jitter']
 
     @jitter.setter
     def jitter(self, val):
-        self["jitter"] = val
+        self['jitter'] = val
 
     @property
     def legend(self):
@@ -530,11 +446,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -551,11 +467,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -570,11 +486,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.box.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -595,11 +511,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -614,11 +530,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -633,11 +549,11 @@ def line(self):
         -------
         plotly.graph_objs.box.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def lowerfence(self):
@@ -655,11 +571,11 @@ def lowerfence(self):
         -------
         numpy.ndarray
         """
-        return self["lowerfence"]
+        return self['lowerfence']
 
     @lowerfence.setter
     def lowerfence(self, val):
-        self["lowerfence"] = val
+        self['lowerfence'] = val
 
     @property
     def lowerfencesrc(self):
@@ -674,11 +590,11 @@ def lowerfencesrc(self):
         -------
         str
         """
-        return self["lowerfencesrc"]
+        return self['lowerfencesrc']
 
     @lowerfencesrc.setter
     def lowerfencesrc(self, val):
-        self["lowerfencesrc"] = val
+        self['lowerfencesrc'] = val
 
     @property
     def marker(self):
@@ -693,11 +609,11 @@ def marker(self):
         -------
         plotly.graph_objs.box.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def mean(self):
@@ -715,11 +631,11 @@ def mean(self):
         -------
         numpy.ndarray
         """
-        return self["mean"]
+        return self['mean']
 
     @mean.setter
     def mean(self, val):
-        self["mean"] = val
+        self['mean'] = val
 
     @property
     def meansrc(self):
@@ -733,11 +649,11 @@ def meansrc(self):
         -------
         str
         """
-        return self["meansrc"]
+        return self['meansrc']
 
     @meansrc.setter
     def meansrc(self, val):
-        self["meansrc"] = val
+        self['meansrc'] = val
 
     @property
     def median(self):
@@ -752,11 +668,11 @@ def median(self):
         -------
         numpy.ndarray
         """
-        return self["median"]
+        return self['median']
 
     @median.setter
     def median(self, val):
-        self["median"] = val
+        self['median'] = val
 
     @property
     def mediansrc(self):
@@ -770,11 +686,11 @@ def mediansrc(self):
         -------
         str
         """
-        return self["mediansrc"]
+        return self['mediansrc']
 
     @mediansrc.setter
     def mediansrc(self, val):
-        self["mediansrc"] = val
+        self['mediansrc'] = val
 
     @property
     def meta(self):
@@ -796,11 +712,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -814,11 +730,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -836,11 +752,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def notched(self):
@@ -862,11 +778,11 @@ def notched(self):
         -------
         bool
         """
-        return self["notched"]
+        return self['notched']
 
     @notched.setter
     def notched(self, val):
-        self["notched"] = val
+        self['notched'] = val
 
     @property
     def notchspan(self):
@@ -885,11 +801,11 @@ def notchspan(self):
         -------
         numpy.ndarray
         """
-        return self["notchspan"]
+        return self['notchspan']
 
     @notchspan.setter
     def notchspan(self, val):
-        self["notchspan"] = val
+        self['notchspan'] = val
 
     @property
     def notchspansrc(self):
@@ -904,11 +820,11 @@ def notchspansrc(self):
         -------
         str
         """
-        return self["notchspansrc"]
+        return self['notchspansrc']
 
     @notchspansrc.setter
     def notchspansrc(self, val):
-        self["notchspansrc"] = val
+        self['notchspansrc'] = val
 
     @property
     def notchwidth(self):
@@ -923,11 +839,11 @@ def notchwidth(self):
         -------
         int|float
         """
-        return self["notchwidth"]
+        return self['notchwidth']
 
     @notchwidth.setter
     def notchwidth(self, val):
-        self["notchwidth"] = val
+        self['notchwidth'] = val
 
     @property
     def offsetgroup(self):
@@ -944,11 +860,11 @@ def offsetgroup(self):
         -------
         str
         """
-        return self["offsetgroup"]
+        return self['offsetgroup']
 
     @offsetgroup.setter
     def offsetgroup(self, val):
-        self["offsetgroup"] = val
+        self['offsetgroup'] = val
 
     @property
     def opacity(self):
@@ -962,11 +878,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def orientation(self):
@@ -982,11 +898,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def pointpos(self):
@@ -1004,11 +920,11 @@ def pointpos(self):
         -------
         int|float
         """
-        return self["pointpos"]
+        return self['pointpos']
 
     @pointpos.setter
     def pointpos(self, val):
-        self["pointpos"] = val
+        self['pointpos'] = val
 
     @property
     def q1(self):
@@ -1023,11 +939,11 @@ def q1(self):
         -------
         numpy.ndarray
         """
-        return self["q1"]
+        return self['q1']
 
     @q1.setter
     def q1(self, val):
-        self["q1"] = val
+        self['q1'] = val
 
     @property
     def q1src(self):
@@ -1041,11 +957,11 @@ def q1src(self):
         -------
         str
         """
-        return self["q1src"]
+        return self['q1src']
 
     @q1src.setter
     def q1src(self, val):
-        self["q1src"] = val
+        self['q1src'] = val
 
     @property
     def q3(self):
@@ -1060,11 +976,11 @@ def q3(self):
         -------
         numpy.ndarray
         """
-        return self["q3"]
+        return self['q3']
 
     @q3.setter
     def q3(self, val):
-        self["q3"] = val
+        self['q3'] = val
 
     @property
     def q3src(self):
@@ -1078,11 +994,11 @@ def q3src(self):
         -------
         str
         """
-        return self["q3src"]
+        return self['q3src']
 
     @q3src.setter
     def q3src(self, val):
-        self["q3src"] = val
+        self['q3src'] = val
 
     @property
     def quartilemethod(self):
@@ -1108,11 +1024,11 @@ def quartilemethod(self):
         -------
         Any
         """
-        return self["quartilemethod"]
+        return self['quartilemethod']
 
     @quartilemethod.setter
     def quartilemethod(self, val):
-        self["quartilemethod"] = val
+        self['quartilemethod'] = val
 
     @property
     def sd(self):
@@ -1130,11 +1046,11 @@ def sd(self):
         -------
         numpy.ndarray
         """
-        return self["sd"]
+        return self['sd']
 
     @sd.setter
     def sd(self, val):
-        self["sd"] = val
+        self['sd'] = val
 
     @property
     def sdmultiple(self):
@@ -1150,11 +1066,11 @@ def sdmultiple(self):
         -------
         int|float
         """
-        return self["sdmultiple"]
+        return self['sdmultiple']
 
     @sdmultiple.setter
     def sdmultiple(self, val):
-        self["sdmultiple"] = val
+        self['sdmultiple'] = val
 
     @property
     def sdsrc(self):
@@ -1168,11 +1084,11 @@ def sdsrc(self):
         -------
         str
         """
-        return self["sdsrc"]
+        return self['sdsrc']
 
     @sdsrc.setter
     def sdsrc(self, val):
-        self["sdsrc"] = val
+        self['sdsrc'] = val
 
     @property
     def selected(self):
@@ -1187,11 +1103,11 @@ def selected(self):
         -------
         plotly.graph_objs.box.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -1209,11 +1125,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -1228,11 +1144,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showwhiskers(self):
@@ -1247,11 +1163,11 @@ def showwhiskers(self):
         -------
         bool
         """
-        return self["showwhiskers"]
+        return self['showwhiskers']
 
     @showwhiskers.setter
     def showwhiskers(self, val):
-        self["showwhiskers"] = val
+        self['showwhiskers'] = val
 
     @property
     def sizemode(self):
@@ -1270,11 +1186,11 @@ def sizemode(self):
         -------
         Any
         """
-        return self["sizemode"]
+        return self['sizemode']
 
     @sizemode.setter
     def sizemode(self, val):
-        self["sizemode"] = val
+        self['sizemode'] = val
 
     @property
     def stream(self):
@@ -1289,11 +1205,11 @@ def stream(self):
         -------
         plotly.graph_objs.box.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -1313,11 +1229,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -1331,11 +1247,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def uid(self):
@@ -1351,11 +1267,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1382,11 +1298,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -1401,11 +1317,11 @@ def unselected(self):
         -------
         plotly.graph_objs.box.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def upperfence(self):
@@ -1423,11 +1339,11 @@ def upperfence(self):
         -------
         numpy.ndarray
         """
-        return self["upperfence"]
+        return self['upperfence']
 
     @upperfence.setter
     def upperfence(self, val):
-        self["upperfence"] = val
+        self['upperfence'] = val
 
     @property
     def upperfencesrc(self):
@@ -1442,11 +1358,11 @@ def upperfencesrc(self):
         -------
         str
         """
-        return self["upperfencesrc"]
+        return self['upperfencesrc']
 
     @upperfencesrc.setter
     def upperfencesrc(self, val):
-        self["upperfencesrc"] = val
+        self['upperfencesrc'] = val
 
     @property
     def visible(self):
@@ -1463,11 +1379,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def whiskerwidth(self):
@@ -1482,11 +1398,11 @@ def whiskerwidth(self):
         -------
         int|float
         """
-        return self["whiskerwidth"]
+        return self['whiskerwidth']
 
     @whiskerwidth.setter
     def whiskerwidth(self, val):
-        self["whiskerwidth"] = val
+        self['whiskerwidth'] = val
 
     @property
     def width(self):
@@ -1502,11 +1418,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def x(self):
@@ -1521,11 +1437,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def x0(self):
@@ -1540,11 +1456,11 @@ def x0(self):
         -------
         Any
         """
-        return self["x0"]
+        return self['x0']
 
     @x0.setter
     def x0(self, val):
-        self["x0"] = val
+        self['x0'] = val
 
     @property
     def xaxis(self):
@@ -1563,11 +1479,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def xcalendar(self):
@@ -1585,11 +1501,11 @@ def xcalendar(self):
         -------
         Any
         """
-        return self["xcalendar"]
+        return self['xcalendar']
 
     @xcalendar.setter
     def xcalendar(self, val):
-        self["xcalendar"] = val
+        self['xcalendar'] = val
 
     @property
     def xhoverformat(self):
@@ -1614,11 +1530,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xperiod(self):
@@ -1634,11 +1550,11 @@ def xperiod(self):
         -------
         Any
         """
-        return self["xperiod"]
+        return self['xperiod']
 
     @xperiod.setter
     def xperiod(self, val):
-        self["xperiod"] = val
+        self['xperiod'] = val
 
     @property
     def xperiod0(self):
@@ -1655,11 +1571,11 @@ def xperiod0(self):
         -------
         Any
         """
-        return self["xperiod0"]
+        return self['xperiod0']
 
     @xperiod0.setter
     def xperiod0(self, val):
-        self["xperiod0"] = val
+        self['xperiod0'] = val
 
     @property
     def xperiodalignment(self):
@@ -1675,11 +1591,11 @@ def xperiodalignment(self):
         -------
         Any
         """
-        return self["xperiodalignment"]
+        return self['xperiodalignment']
 
     @xperiodalignment.setter
     def xperiodalignment(self, val):
-        self["xperiodalignment"] = val
+        self['xperiodalignment'] = val
 
     @property
     def xsrc(self):
@@ -1693,11 +1609,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -1712,11 +1628,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def y0(self):
@@ -1731,11 +1647,11 @@ def y0(self):
         -------
         Any
         """
-        return self["y0"]
+        return self['y0']
 
     @y0.setter
     def y0(self, val):
-        self["y0"] = val
+        self['y0'] = val
 
     @property
     def yaxis(self):
@@ -1754,11 +1670,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def ycalendar(self):
@@ -1776,11 +1692,11 @@ def ycalendar(self):
         -------
         Any
         """
-        return self["ycalendar"]
+        return self['ycalendar']
 
     @ycalendar.setter
     def ycalendar(self, val):
-        self["ycalendar"] = val
+        self['ycalendar'] = val
 
     @property
     def yhoverformat(self):
@@ -1805,11 +1721,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def yperiod(self):
@@ -1825,11 +1741,11 @@ def yperiod(self):
         -------
         Any
         """
-        return self["yperiod"]
+        return self['yperiod']
 
     @yperiod.setter
     def yperiod(self, val):
-        self["yperiod"] = val
+        self['yperiod'] = val
 
     @property
     def yperiod0(self):
@@ -1846,11 +1762,11 @@ def yperiod0(self):
         -------
         Any
         """
-        return self["yperiod0"]
+        return self['yperiod0']
 
     @yperiod0.setter
     def yperiod0(self, val):
-        self["yperiod0"] = val
+        self['yperiod0'] = val
 
     @property
     def yperiodalignment(self):
@@ -1866,11 +1782,11 @@ def yperiodalignment(self):
         -------
         Any
         """
-        return self["yperiodalignment"]
+        return self['yperiodalignment']
 
     @yperiodalignment.setter
     def yperiodalignment(self, val):
-        self["yperiodalignment"] = val
+        self['yperiodalignment'] = val
 
     @property
     def ysrc(self):
@@ -1884,11 +1800,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def zorder(self):
@@ -1904,15 +1820,15 @@ def zorder(self):
         -------
         int
         """
-        return self["zorder"]
+        return self['zorder']
 
     @zorder.setter
     def zorder(self, val):
-        self["zorder"] = val
+        self['zorder'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -2363,98 +2279,96 @@ def _prop_descriptions(self):
             traces with higher `zorder` appear in front of those
             with lower `zorder`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        alignmentgroup=None,
-        boxmean=None,
-        boxpoints=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        jitter=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        lowerfence=None,
-        lowerfencesrc=None,
-        marker=None,
-        mean=None,
-        meansrc=None,
-        median=None,
-        mediansrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        notched=None,
-        notchspan=None,
-        notchspansrc=None,
-        notchwidth=None,
-        offsetgroup=None,
-        opacity=None,
-        orientation=None,
-        pointpos=None,
-        q1=None,
-        q1src=None,
-        q3=None,
-        q3src=None,
-        quartilemethod=None,
-        sd=None,
-        sdmultiple=None,
-        sdsrc=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        showwhiskers=None,
-        sizemode=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        upperfence=None,
-        upperfencesrc=None,
-        visible=None,
-        whiskerwidth=None,
-        width=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        zorder=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            alignmentgroup=None,
+            boxmean=None,
+            boxpoints=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            jitter=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            lowerfence=None,
+            lowerfencesrc=None,
+            marker=None,
+            mean=None,
+            meansrc=None,
+            median=None,
+            mediansrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            notched=None,
+            notchspan=None,
+            notchspansrc=None,
+            notchwidth=None,
+            offsetgroup=None,
+            opacity=None,
+            orientation=None,
+            pointpos=None,
+            q1=None,
+            q1src=None,
+            q3=None,
+            q3src=None,
+            quartilemethod=None,
+            sd=None,
+            sdmultiple=None,
+            sdsrc=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            showwhiskers=None,
+            sizemode=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            upperfence=None,
+            upperfencesrc=None,
+            visible=None,
+            whiskerwidth=None,
+            width=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            zorder=None,
+            **kwargs
+        ):
         """
         Construct a new Box object
 
@@ -2938,9 +2852,9 @@ def __init__(
         -------
         Box
         """
-        super().__init__("box")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('box')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2950,104 +2864,105 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Box
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Box`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("alignmentgroup", arg, alignmentgroup)
-        self._set_property("boxmean", arg, boxmean)
-        self._set_property("boxpoints", arg, boxpoints)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("dx", arg, dx)
-        self._set_property("dy", arg, dy)
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hoveron", arg, hoveron)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("jitter", arg, jitter)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("lowerfence", arg, lowerfence)
-        self._set_property("lowerfencesrc", arg, lowerfencesrc)
-        self._set_property("marker", arg, marker)
-        self._set_property("mean", arg, mean)
-        self._set_property("meansrc", arg, meansrc)
-        self._set_property("median", arg, median)
-        self._set_property("mediansrc", arg, mediansrc)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("notched", arg, notched)
-        self._set_property("notchspan", arg, notchspan)
-        self._set_property("notchspansrc", arg, notchspansrc)
-        self._set_property("notchwidth", arg, notchwidth)
-        self._set_property("offsetgroup", arg, offsetgroup)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("pointpos", arg, pointpos)
-        self._set_property("q1", arg, q1)
-        self._set_property("q1src", arg, q1src)
-        self._set_property("q3", arg, q3)
-        self._set_property("q3src", arg, q3src)
-        self._set_property("quartilemethod", arg, quartilemethod)
-        self._set_property("sd", arg, sd)
-        self._set_property("sdmultiple", arg, sdmultiple)
-        self._set_property("sdsrc", arg, sdsrc)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showwhiskers", arg, showwhiskers)
-        self._set_property("sizemode", arg, sizemode)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("upperfence", arg, upperfence)
-        self._set_property("upperfencesrc", arg, upperfencesrc)
-        self._set_property("visible", arg, visible)
-        self._set_property("whiskerwidth", arg, whiskerwidth)
-        self._set_property("width", arg, width)
-        self._set_property("x", arg, x)
-        self._set_property("x0", arg, x0)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("xcalendar", arg, xcalendar)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xperiod", arg, xperiod)
-        self._set_property("xperiod0", arg, xperiod0)
-        self._set_property("xperiodalignment", arg, xperiodalignment)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("y0", arg, y0)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("ycalendar", arg, ycalendar)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("yperiod", arg, yperiod)
-        self._set_property("yperiod0", arg, yperiod0)
-        self._set_property("yperiodalignment", arg, yperiodalignment)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("zorder", arg, zorder)
-
-        self._props["type"] = "box"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Box`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('alignmentgroup', arg, alignmentgroup)
+        self._set_property('boxmean', arg, boxmean)
+        self._set_property('boxpoints', arg, boxpoints)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('dx', arg, dx)
+        self._set_property('dy', arg, dy)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hoveron', arg, hoveron)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('jitter', arg, jitter)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('lowerfence', arg, lowerfence)
+        self._set_property('lowerfencesrc', arg, lowerfencesrc)
+        self._set_property('marker', arg, marker)
+        self._set_property('mean', arg, mean)
+        self._set_property('meansrc', arg, meansrc)
+        self._set_property('median', arg, median)
+        self._set_property('mediansrc', arg, mediansrc)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('notched', arg, notched)
+        self._set_property('notchspan', arg, notchspan)
+        self._set_property('notchspansrc', arg, notchspansrc)
+        self._set_property('notchwidth', arg, notchwidth)
+        self._set_property('offsetgroup', arg, offsetgroup)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('pointpos', arg, pointpos)
+        self._set_property('q1', arg, q1)
+        self._set_property('q1src', arg, q1src)
+        self._set_property('q3', arg, q3)
+        self._set_property('q3src', arg, q3src)
+        self._set_property('quartilemethod', arg, quartilemethod)
+        self._set_property('sd', arg, sd)
+        self._set_property('sdmultiple', arg, sdmultiple)
+        self._set_property('sdsrc', arg, sdsrc)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showwhiskers', arg, showwhiskers)
+        self._set_property('sizemode', arg, sizemode)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('upperfence', arg, upperfence)
+        self._set_property('upperfencesrc', arg, upperfencesrc)
+        self._set_property('visible', arg, visible)
+        self._set_property('whiskerwidth', arg, whiskerwidth)
+        self._set_property('width', arg, width)
+        self._set_property('x', arg, x)
+        self._set_property('x0', arg, x0)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('xcalendar', arg, xcalendar)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xperiod', arg, xperiod)
+        self._set_property('xperiod0', arg, xperiod0)
+        self._set_property('xperiodalignment', arg, xperiodalignment)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('y0', arg, y0)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('ycalendar', arg, ycalendar)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('yperiod', arg, yperiod)
+        self._set_property('yperiod0', arg, yperiod0)
+        self._set_property('yperiodalignment', arg, yperiodalignment)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('zorder', arg, zorder)
+
+
+        self._props['type'] = 'box'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_candlestick.py b/plotly/graph_objs/_candlestick.py
index 32fd12c67c4..71e459744fe 100644
--- a/plotly/graph_objs/_candlestick.py
+++ b/plotly/graph_objs/_candlestick.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,60 +11,9 @@
 
 class Candlestick(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "candlestick"
-    _valid_props = {
-        "close",
-        "closesrc",
-        "customdata",
-        "customdatasrc",
-        "decreasing",
-        "high",
-        "highsrc",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "increasing",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "low",
-        "lowsrc",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "open",
-        "opensrc",
-        "selectedpoints",
-        "showlegend",
-        "stream",
-        "text",
-        "textsrc",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-        "whiskerwidth",
-        "x",
-        "xaxis",
-        "xcalendar",
-        "xhoverformat",
-        "xperiod",
-        "xperiod0",
-        "xperiodalignment",
-        "xsrc",
-        "yaxis",
-        "yhoverformat",
-        "zorder",
-    }
+    _parent_path_str = ''
+    _path_str = 'candlestick'
+    _valid_props = {"close", "closesrc", "customdata", "customdatasrc", "decreasing", "high", "highsrc", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertext", "hovertextsrc", "ids", "idssrc", "increasing", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "low", "lowsrc", "meta", "metasrc", "name", "opacity", "open", "opensrc", "selectedpoints", "showlegend", "stream", "text", "textsrc", "type", "uid", "uirevision", "visible", "whiskerwidth", "x", "xaxis", "xcalendar", "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", "xsrc", "yaxis", "yhoverformat", "zorder"}
 
     @property
     def close(self):
@@ -74,11 +27,11 @@ def close(self):
         -------
         numpy.ndarray
         """
-        return self["close"]
+        return self['close']
 
     @close.setter
     def close(self, val):
-        self["close"] = val
+        self['close'] = val
 
     @property
     def closesrc(self):
@@ -92,11 +45,11 @@ def closesrc(self):
         -------
         str
         """
-        return self["closesrc"]
+        return self['closesrc']
 
     @closesrc.setter
     def closesrc(self, val):
-        self["closesrc"] = val
+        self['closesrc'] = val
 
     @property
     def customdata(self):
@@ -113,11 +66,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -132,11 +85,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def decreasing(self):
@@ -151,11 +104,11 @@ def decreasing(self):
         -------
         plotly.graph_objs.candlestick.Decreasing
         """
-        return self["decreasing"]
+        return self['decreasing']
 
     @decreasing.setter
     def decreasing(self, val):
-        self["decreasing"] = val
+        self['decreasing'] = val
 
     @property
     def high(self):
@@ -169,11 +122,11 @@ def high(self):
         -------
         numpy.ndarray
         """
-        return self["high"]
+        return self['high']
 
     @high.setter
     def high(self, val):
-        self["high"] = val
+        self['high'] = val
 
     @property
     def highsrc(self):
@@ -187,11 +140,11 @@ def highsrc(self):
         -------
         str
         """
-        return self["highsrc"]
+        return self['highsrc']
 
     @highsrc.setter
     def highsrc(self, val):
-        self["highsrc"] = val
+        self['highsrc'] = val
 
     @property
     def hoverinfo(self):
@@ -211,11 +164,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -230,11 +183,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -249,11 +202,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.candlestick.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertext(self):
@@ -269,11 +222,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -288,11 +241,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -308,11 +261,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -326,11 +279,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def increasing(self):
@@ -345,11 +298,11 @@ def increasing(self):
         -------
         plotly.graph_objs.candlestick.Increasing
         """
-        return self["increasing"]
+        return self['increasing']
 
     @increasing.setter
     def increasing(self, val):
-        self["increasing"] = val
+        self['increasing'] = val
 
     @property
     def legend(self):
@@ -368,11 +321,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -389,11 +342,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -408,11 +361,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.candlestick.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -433,11 +386,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -452,11 +405,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -471,11 +424,11 @@ def line(self):
         -------
         plotly.graph_objs.candlestick.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def low(self):
@@ -489,11 +442,11 @@ def low(self):
         -------
         numpy.ndarray
         """
-        return self["low"]
+        return self['low']
 
     @low.setter
     def low(self, val):
-        self["low"] = val
+        self['low'] = val
 
     @property
     def lowsrc(self):
@@ -507,11 +460,11 @@ def lowsrc(self):
         -------
         str
         """
-        return self["lowsrc"]
+        return self['lowsrc']
 
     @lowsrc.setter
     def lowsrc(self, val):
-        self["lowsrc"] = val
+        self['lowsrc'] = val
 
     @property
     def meta(self):
@@ -533,11 +486,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -551,11 +504,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -571,11 +524,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -589,11 +542,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def open(self):
@@ -607,11 +560,11 @@ def open(self):
         -------
         numpy.ndarray
         """
-        return self["open"]
+        return self['open']
 
     @open.setter
     def open(self, val):
-        self["open"] = val
+        self['open'] = val
 
     @property
     def opensrc(self):
@@ -625,11 +578,11 @@ def opensrc(self):
         -------
         str
         """
-        return self["opensrc"]
+        return self['opensrc']
 
     @opensrc.setter
     def opensrc(self, val):
-        self["opensrc"] = val
+        self['opensrc'] = val
 
     @property
     def selectedpoints(self):
@@ -647,11 +600,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -666,11 +619,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -685,11 +638,11 @@ def stream(self):
         -------
         plotly.graph_objs.candlestick.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -708,11 +661,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -726,11 +679,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def uid(self):
@@ -746,11 +699,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -777,11 +730,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -798,11 +751,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def whiskerwidth(self):
@@ -817,11 +770,11 @@ def whiskerwidth(self):
         -------
         int|float
         """
-        return self["whiskerwidth"]
+        return self['whiskerwidth']
 
     @whiskerwidth.setter
     def whiskerwidth(self, val):
-        self["whiskerwidth"] = val
+        self['whiskerwidth'] = val
 
     @property
     def x(self):
@@ -836,11 +789,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xaxis(self):
@@ -859,11 +812,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def xcalendar(self):
@@ -881,11 +834,11 @@ def xcalendar(self):
         -------
         Any
         """
-        return self["xcalendar"]
+        return self['xcalendar']
 
     @xcalendar.setter
     def xcalendar(self, val):
-        self["xcalendar"] = val
+        self['xcalendar'] = val
 
     @property
     def xhoverformat(self):
@@ -910,11 +863,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xperiod(self):
@@ -930,11 +883,11 @@ def xperiod(self):
         -------
         Any
         """
-        return self["xperiod"]
+        return self['xperiod']
 
     @xperiod.setter
     def xperiod(self, val):
-        self["xperiod"] = val
+        self['xperiod'] = val
 
     @property
     def xperiod0(self):
@@ -951,11 +904,11 @@ def xperiod0(self):
         -------
         Any
         """
-        return self["xperiod0"]
+        return self['xperiod0']
 
     @xperiod0.setter
     def xperiod0(self, val):
-        self["xperiod0"] = val
+        self['xperiod0'] = val
 
     @property
     def xperiodalignment(self):
@@ -971,11 +924,11 @@ def xperiodalignment(self):
         -------
         Any
         """
-        return self["xperiodalignment"]
+        return self['xperiodalignment']
 
     @xperiodalignment.setter
     def xperiodalignment(self, val):
-        self["xperiodalignment"] = val
+        self['xperiodalignment'] = val
 
     @property
     def xsrc(self):
@@ -989,11 +942,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def yaxis(self):
@@ -1012,11 +965,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def yhoverformat(self):
@@ -1041,11 +994,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def zorder(self):
@@ -1061,15 +1014,15 @@ def zorder(self):
         -------
         int
         """
-        return self["zorder"]
+        return self['zorder']
 
     @zorder.setter
     def zorder(self, val):
-        self["zorder"] = val
+        self['zorder'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1300,61 +1253,59 @@ def _prop_descriptions(self):
             traces with higher `zorder` appear in front of those
             with lower `zorder`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        close=None,
-        closesrc=None,
-        customdata=None,
-        customdatasrc=None,
-        decreasing=None,
-        high=None,
-        highsrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        increasing=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        low=None,
-        lowsrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        open=None,
-        opensrc=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        whiskerwidth=None,
-        x=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        yaxis=None,
-        yhoverformat=None,
-        zorder=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            close=None,
+            closesrc=None,
+            customdata=None,
+            customdatasrc=None,
+            decreasing=None,
+            high=None,
+            highsrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            increasing=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            low=None,
+            lowsrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            open=None,
+            opensrc=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            whiskerwidth=None,
+            x=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            yaxis=None,
+            yhoverformat=None,
+            zorder=None,
+            **kwargs
+        ):
         """
         Construct a new Candlestick object
 
@@ -1602,9 +1553,9 @@ def __init__(
         -------
         Candlestick
         """
-        super().__init__("candlestick")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('candlestick')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1614,67 +1565,68 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Candlestick
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Candlestick`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("close", arg, close)
-        self._set_property("closesrc", arg, closesrc)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("decreasing", arg, decreasing)
-        self._set_property("high", arg, high)
-        self._set_property("highsrc", arg, highsrc)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("increasing", arg, increasing)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("low", arg, low)
-        self._set_property("lowsrc", arg, lowsrc)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("open", arg, open)
-        self._set_property("opensrc", arg, opensrc)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("whiskerwidth", arg, whiskerwidth)
-        self._set_property("x", arg, x)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("xcalendar", arg, xcalendar)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xperiod", arg, xperiod)
-        self._set_property("xperiod0", arg, xperiod0)
-        self._set_property("xperiodalignment", arg, xperiodalignment)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("zorder", arg, zorder)
-
-        self._props["type"] = "candlestick"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Candlestick`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('close', arg, close)
+        self._set_property('closesrc', arg, closesrc)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('decreasing', arg, decreasing)
+        self._set_property('high', arg, high)
+        self._set_property('highsrc', arg, highsrc)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('increasing', arg, increasing)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('low', arg, low)
+        self._set_property('lowsrc', arg, lowsrc)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('open', arg, open)
+        self._set_property('opensrc', arg, opensrc)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('whiskerwidth', arg, whiskerwidth)
+        self._set_property('x', arg, x)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('xcalendar', arg, xcalendar)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xperiod', arg, xperiod)
+        self._set_property('xperiod0', arg, xperiod0)
+        self._set_property('xperiodalignment', arg, xperiodalignment)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('zorder', arg, zorder)
+
+
+        self._props['type'] = 'candlestick'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_carpet.py b/plotly/graph_objs/_carpet.py
index e173ff67b51..36796b724ca 100644
--- a/plotly/graph_objs/_carpet.py
+++ b/plotly/graph_objs/_carpet.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,48 +11,9 @@
 
 class Carpet(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "carpet"
-    _valid_props = {
-        "a",
-        "a0",
-        "aaxis",
-        "asrc",
-        "b",
-        "b0",
-        "baxis",
-        "bsrc",
-        "carpet",
-        "cheaterslope",
-        "color",
-        "customdata",
-        "customdatasrc",
-        "da",
-        "db",
-        "font",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "stream",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-        "x",
-        "xaxis",
-        "xsrc",
-        "y",
-        "yaxis",
-        "ysrc",
-        "zorder",
-    }
+    _parent_path_str = ''
+    _path_str = 'carpet'
+    _valid_props = {"a", "a0", "aaxis", "asrc", "b", "b0", "baxis", "bsrc", "carpet", "cheaterslope", "color", "customdata", "customdatasrc", "da", "db", "font", "ids", "idssrc", "legend", "legendgrouptitle", "legendrank", "legendwidth", "meta", "metasrc", "name", "opacity", "stream", "type", "uid", "uirevision", "visible", "x", "xaxis", "xsrc", "y", "yaxis", "ysrc", "zorder"}
 
     @property
     def a(self):
@@ -62,11 +27,11 @@ def a(self):
         -------
         numpy.ndarray
         """
-        return self["a"]
+        return self['a']
 
     @a.setter
     def a(self, val):
-        self["a"] = val
+        self['a'] = val
 
     @property
     def a0(self):
@@ -82,11 +47,11 @@ def a0(self):
         -------
         int|float
         """
-        return self["a0"]
+        return self['a0']
 
     @a0.setter
     def a0(self, val):
-        self["a0"] = val
+        self['a0'] = val
 
     @property
     def aaxis(self):
@@ -101,11 +66,11 @@ def aaxis(self):
         -------
         plotly.graph_objs.carpet.Aaxis
         """
-        return self["aaxis"]
+        return self['aaxis']
 
     @aaxis.setter
     def aaxis(self, val):
-        self["aaxis"] = val
+        self['aaxis'] = val
 
     @property
     def asrc(self):
@@ -119,11 +84,11 @@ def asrc(self):
         -------
         str
         """
-        return self["asrc"]
+        return self['asrc']
 
     @asrc.setter
     def asrc(self, val):
-        self["asrc"] = val
+        self['asrc'] = val
 
     @property
     def b(self):
@@ -137,11 +102,11 @@ def b(self):
         -------
         numpy.ndarray
         """
-        return self["b"]
+        return self['b']
 
     @b.setter
     def b(self, val):
-        self["b"] = val
+        self['b'] = val
 
     @property
     def b0(self):
@@ -157,11 +122,11 @@ def b0(self):
         -------
         int|float
         """
-        return self["b0"]
+        return self['b0']
 
     @b0.setter
     def b0(self, val):
-        self["b0"] = val
+        self['b0'] = val
 
     @property
     def baxis(self):
@@ -176,11 +141,11 @@ def baxis(self):
         -------
         plotly.graph_objs.carpet.Baxis
         """
-        return self["baxis"]
+        return self['baxis']
 
     @baxis.setter
     def baxis(self, val):
-        self["baxis"] = val
+        self['baxis'] = val
 
     @property
     def bsrc(self):
@@ -194,11 +159,11 @@ def bsrc(self):
         -------
         str
         """
-        return self["bsrc"]
+        return self['bsrc']
 
     @bsrc.setter
     def bsrc(self, val):
-        self["bsrc"] = val
+        self['bsrc'] = val
 
     @property
     def carpet(self):
@@ -215,11 +180,11 @@ def carpet(self):
         -------
         str
         """
-        return self["carpet"]
+        return self['carpet']
 
     @carpet.setter
     def carpet(self, val):
-        self["carpet"] = val
+        self['carpet'] = val
 
     @property
     def cheaterslope(self):
@@ -234,11 +199,11 @@ def cheaterslope(self):
         -------
         int|float
         """
-        return self["cheaterslope"]
+        return self['cheaterslope']
 
     @cheaterslope.setter
     def cheaterslope(self, val):
-        self["cheaterslope"] = val
+        self['cheaterslope'] = val
 
     @property
     def color(self):
@@ -259,11 +224,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def customdata(self):
@@ -280,11 +245,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -299,11 +264,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def da(self):
@@ -317,11 +282,11 @@ def da(self):
         -------
         int|float
         """
-        return self["da"]
+        return self['da']
 
     @da.setter
     def da(self, val):
-        self["da"] = val
+        self['da'] = val
 
     @property
     def db(self):
@@ -335,11 +300,11 @@ def db(self):
         -------
         int|float
         """
-        return self["db"]
+        return self['db']
 
     @db.setter
     def db(self, val):
-        self["db"] = val
+        self['db'] = val
 
     @property
     def font(self):
@@ -356,11 +321,11 @@ def font(self):
         -------
         plotly.graph_objs.carpet.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def ids(self):
@@ -376,11 +341,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -394,11 +359,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -417,11 +382,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgrouptitle(self):
@@ -436,11 +401,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.carpet.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -461,11 +426,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -480,11 +445,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def meta(self):
@@ -506,11 +471,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -524,11 +489,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -544,11 +509,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -562,11 +527,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def stream(self):
@@ -581,11 +546,11 @@ def stream(self):
         -------
         plotly.graph_objs.carpet.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def uid(self):
@@ -601,11 +566,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -632,11 +597,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -653,11 +618,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -673,11 +638,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xaxis(self):
@@ -696,11 +661,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def xsrc(self):
@@ -714,11 +679,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -732,11 +697,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yaxis(self):
@@ -755,11 +720,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def ysrc(self):
@@ -773,11 +738,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def zorder(self):
@@ -793,15 +758,15 @@ def zorder(self):
         -------
         int
         """
-        return self["zorder"]
+        return self['zorder']
 
     @zorder.setter
     def zorder(self, val):
-        self["zorder"] = val
+        self['zorder'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -969,49 +934,47 @@ def _prop_descriptions(self):
             traces with higher `zorder` appear in front of those
             with lower `zorder`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        a=None,
-        a0=None,
-        aaxis=None,
-        asrc=None,
-        b=None,
-        b0=None,
-        baxis=None,
-        bsrc=None,
-        carpet=None,
-        cheaterslope=None,
-        color=None,
-        customdata=None,
-        customdatasrc=None,
-        da=None,
-        db=None,
-        font=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        stream=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xaxis=None,
-        xsrc=None,
-        y=None,
-        yaxis=None,
-        ysrc=None,
-        zorder=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            a=None,
+            a0=None,
+            aaxis=None,
+            asrc=None,
+            b=None,
+            b0=None,
+            baxis=None,
+            bsrc=None,
+            carpet=None,
+            cheaterslope=None,
+            color=None,
+            customdata=None,
+            customdatasrc=None,
+            da=None,
+            db=None,
+            font=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            stream=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xaxis=None,
+            xsrc=None,
+            y=None,
+            yaxis=None,
+            ysrc=None,
+            zorder=None,
+            **kwargs
+        ):
         """
         Construct a new Carpet object
 
@@ -1194,9 +1157,9 @@ def __init__(
         -------
         Carpet
         """
-        super().__init__("carpet")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('carpet')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1206,55 +1169,56 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Carpet
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Carpet`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("a", arg, a)
-        self._set_property("a0", arg, a0)
-        self._set_property("aaxis", arg, aaxis)
-        self._set_property("asrc", arg, asrc)
-        self._set_property("b", arg, b)
-        self._set_property("b0", arg, b0)
-        self._set_property("baxis", arg, baxis)
-        self._set_property("bsrc", arg, bsrc)
-        self._set_property("carpet", arg, carpet)
-        self._set_property("cheaterslope", arg, cheaterslope)
-        self._set_property("color", arg, color)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("da", arg, da)
-        self._set_property("db", arg, db)
-        self._set_property("font", arg, font)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("stream", arg, stream)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("zorder", arg, zorder)
-
-        self._props["type"] = "carpet"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Carpet`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('a', arg, a)
+        self._set_property('a0', arg, a0)
+        self._set_property('aaxis', arg, aaxis)
+        self._set_property('asrc', arg, asrc)
+        self._set_property('b', arg, b)
+        self._set_property('b0', arg, b0)
+        self._set_property('baxis', arg, baxis)
+        self._set_property('bsrc', arg, bsrc)
+        self._set_property('carpet', arg, carpet)
+        self._set_property('cheaterslope', arg, cheaterslope)
+        self._set_property('color', arg, color)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('da', arg, da)
+        self._set_property('db', arg, db)
+        self._set_property('font', arg, font)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('stream', arg, stream)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('zorder', arg, zorder)
+
+
+        self._props['type'] = 'carpet'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_choropleth.py b/plotly/graph_objs/_choropleth.py
index 8f1475e6717..c375bdd93ea 100644
--- a/plotly/graph_objs/_choropleth.py
+++ b/plotly/graph_objs/_choropleth.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class Choropleth(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "choropleth"
-    _valid_props = {
-        "autocolorscale",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "customdata",
-        "customdatasrc",
-        "featureidkey",
-        "geo",
-        "geojson",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "locationmode",
-        "locations",
-        "locationssrc",
-        "marker",
-        "meta",
-        "metasrc",
-        "name",
-        "reversescale",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "showscale",
-        "stream",
-        "text",
-        "textsrc",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-        "z",
-        "zauto",
-        "zmax",
-        "zmid",
-        "zmin",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'choropleth'
+    _valid_props = {"autocolorscale", "coloraxis", "colorbar", "colorscale", "customdata", "customdatasrc", "featureidkey", "geo", "geojson", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "locationmode", "locations", "locationssrc", "marker", "meta", "metasrc", "name", "reversescale", "selected", "selectedpoints", "showlegend", "showscale", "stream", "text", "textsrc", "type", "uid", "uirevision", "unselected", "visible", "z", "zauto", "zmax", "zmid", "zmin", "zsrc"}
 
     @property
     def autocolorscale(self):
@@ -78,11 +32,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def coloraxis(self):
@@ -103,11 +57,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -122,11 +76,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.choropleth.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -173,11 +127,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def customdata(self):
@@ -194,11 +148,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -213,11 +167,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def featureidkey(self):
@@ -235,11 +189,11 @@ def featureidkey(self):
         -------
         str
         """
-        return self["featureidkey"]
+        return self['featureidkey']
 
     @featureidkey.setter
     def featureidkey(self, val):
-        self["featureidkey"] = val
+        self['featureidkey'] = val
 
     @property
     def geo(self):
@@ -258,11 +212,11 @@ def geo(self):
         -------
         str
         """
-        return self["geo"]
+        return self['geo']
 
     @geo.setter
     def geo(self, val):
-        self["geo"] = val
+        self['geo'] = val
 
     @property
     def geojson(self):
@@ -279,11 +233,11 @@ def geojson(self):
         -------
         Any
         """
-        return self["geojson"]
+        return self['geojson']
 
     @geojson.setter
     def geojson(self, val):
-        self["geojson"] = val
+        self['geojson'] = val
 
     @property
     def hoverinfo(self):
@@ -303,11 +257,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -322,11 +276,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -341,11 +295,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.choropleth.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -383,11 +337,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -402,11 +356,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -422,11 +376,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -441,11 +395,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -461,11 +415,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -479,11 +433,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -502,11 +456,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -523,11 +477,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -542,11 +496,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.choropleth.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -567,11 +521,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -586,11 +540,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def locationmode(self):
@@ -609,11 +563,11 @@ def locationmode(self):
         -------
         Any
         """
-        return self["locationmode"]
+        return self['locationmode']
 
     @locationmode.setter
     def locationmode(self, val):
-        self["locationmode"] = val
+        self['locationmode'] = val
 
     @property
     def locations(self):
@@ -628,11 +582,11 @@ def locations(self):
         -------
         numpy.ndarray
         """
-        return self["locations"]
+        return self['locations']
 
     @locations.setter
     def locations(self, val):
-        self["locations"] = val
+        self['locations'] = val
 
     @property
     def locationssrc(self):
@@ -647,11 +601,11 @@ def locationssrc(self):
         -------
         str
         """
-        return self["locationssrc"]
+        return self['locationssrc']
 
     @locationssrc.setter
     def locationssrc(self, val):
-        self["locationssrc"] = val
+        self['locationssrc'] = val
 
     @property
     def marker(self):
@@ -666,11 +620,11 @@ def marker(self):
         -------
         plotly.graph_objs.choropleth.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -692,11 +646,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -710,11 +664,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -730,11 +684,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def reversescale(self):
@@ -750,11 +704,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def selected(self):
@@ -769,11 +723,11 @@ def selected(self):
         -------
         plotly.graph_objs.choropleth.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -791,11 +745,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -810,11 +764,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showscale(self):
@@ -829,11 +783,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def stream(self):
@@ -848,11 +802,11 @@ def stream(self):
         -------
         plotly.graph_objs.choropleth.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -868,11 +822,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -886,11 +840,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def uid(self):
@@ -906,11 +860,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -937,11 +891,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -956,11 +910,11 @@ def unselected(self):
         -------
         plotly.graph_objs.choropleth.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -977,11 +931,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def z(self):
@@ -995,11 +949,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zauto(self):
@@ -1016,11 +970,11 @@ def zauto(self):
         -------
         bool
         """
-        return self["zauto"]
+        return self['zauto']
 
     @zauto.setter
     def zauto(self, val):
-        self["zauto"] = val
+        self['zauto'] = val
 
     @property
     def zmax(self):
@@ -1035,11 +989,11 @@ def zmax(self):
         -------
         int|float
         """
-        return self["zmax"]
+        return self['zmax']
 
     @zmax.setter
     def zmax(self, val):
-        self["zmax"] = val
+        self['zmax'] = val
 
     @property
     def zmid(self):
@@ -1055,11 +1009,11 @@ def zmid(self):
         -------
         int|float
         """
-        return self["zmid"]
+        return self['zmid']
 
     @zmid.setter
     def zmid(self, val):
-        self["zmid"] = val
+        self['zmid'] = val
 
     @property
     def zmin(self):
@@ -1074,11 +1028,11 @@ def zmin(self):
         -------
         int|float
         """
-        return self["zmin"]
+        return self['zmin']
 
     @zmin.setter
     def zmin(self, val):
-        self["zmin"] = val
+        self['zmin'] = val
 
     @property
     def zsrc(self):
@@ -1092,15 +1046,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1358,60 +1312,58 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        featureidkey=None,
-        geo=None,
-        geojson=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        locationmode=None,
-        locations=None,
-        locationssrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        reversescale=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            featureidkey=None,
+            geo=None,
+            geojson=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            locationmode=None,
+            locations=None,
+            locationssrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            reversescale=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Choropleth object
 
@@ -1681,9 +1633,9 @@ def __init__(
         -------
         Choropleth
         """
-        super().__init__("choropleth")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('choropleth')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1693,66 +1645,67 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Choropleth
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Choropleth`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("featureidkey", arg, featureidkey)
-        self._set_property("geo", arg, geo)
-        self._set_property("geojson", arg, geojson)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("locationmode", arg, locationmode)
-        self._set_property("locations", arg, locations)
-        self._set_property("locationssrc", arg, locationssrc)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-        self._set_property("z", arg, z)
-        self._set_property("zauto", arg, zauto)
-        self._set_property("zmax", arg, zmax)
-        self._set_property("zmid", arg, zmid)
-        self._set_property("zmin", arg, zmin)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "choropleth"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Choropleth`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('featureidkey', arg, featureidkey)
+        self._set_property('geo', arg, geo)
+        self._set_property('geojson', arg, geojson)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('locationmode', arg, locationmode)
+        self._set_property('locations', arg, locations)
+        self._set_property('locationssrc', arg, locationssrc)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+        self._set_property('z', arg, z)
+        self._set_property('zauto', arg, zauto)
+        self._set_property('zmax', arg, zmax)
+        self._set_property('zmid', arg, zmid)
+        self._set_property('zmin', arg, zmin)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'choropleth'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_choroplethmap.py b/plotly/graph_objs/_choroplethmap.py
index 4585a3c03e6..5e2e0fcf6e9 100644
--- a/plotly/graph_objs/_choroplethmap.py
+++ b/plotly/graph_objs/_choroplethmap.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class Choroplethmap(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "choroplethmap"
-    _valid_props = {
-        "autocolorscale",
-        "below",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "customdata",
-        "customdatasrc",
-        "featureidkey",
-        "geojson",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "locations",
-        "locationssrc",
-        "marker",
-        "meta",
-        "metasrc",
-        "name",
-        "reversescale",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "showscale",
-        "stream",
-        "subplot",
-        "text",
-        "textsrc",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-        "z",
-        "zauto",
-        "zmax",
-        "zmid",
-        "zmin",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'choroplethmap'
+    _valid_props = {"autocolorscale", "below", "coloraxis", "colorbar", "colorscale", "customdata", "customdatasrc", "featureidkey", "geojson", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "locations", "locationssrc", "marker", "meta", "metasrc", "name", "reversescale", "selected", "selectedpoints", "showlegend", "showscale", "stream", "subplot", "text", "textsrc", "type", "uid", "uirevision", "unselected", "visible", "z", "zauto", "zmax", "zmid", "zmin", "zsrc"}
 
     @property
     def autocolorscale(self):
@@ -78,11 +32,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def below(self):
@@ -100,11 +54,11 @@ def below(self):
         -------
         str
         """
-        return self["below"]
+        return self['below']
 
     @below.setter
     def below(self, val):
-        self["below"] = val
+        self['below'] = val
 
     @property
     def coloraxis(self):
@@ -125,11 +79,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -144,11 +98,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.choroplethmap.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -195,11 +149,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def customdata(self):
@@ -216,11 +170,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -235,11 +189,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def featureidkey(self):
@@ -256,11 +210,11 @@ def featureidkey(self):
         -------
         str
         """
-        return self["featureidkey"]
+        return self['featureidkey']
 
     @featureidkey.setter
     def featureidkey(self, val):
-        self["featureidkey"] = val
+        self['featureidkey'] = val
 
     @property
     def geojson(self):
@@ -276,11 +230,11 @@ def geojson(self):
         -------
         Any
         """
-        return self["geojson"]
+        return self['geojson']
 
     @geojson.setter
     def geojson(self, val):
-        self["geojson"] = val
+        self['geojson'] = val
 
     @property
     def hoverinfo(self):
@@ -300,11 +254,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -319,11 +273,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -338,11 +292,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.choroplethmap.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -381,11 +335,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -400,11 +354,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -420,11 +374,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -439,11 +393,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -459,11 +413,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -477,11 +431,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -500,11 +454,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -521,11 +475,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -540,11 +494,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.choroplethmap.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -565,11 +519,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -584,11 +538,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def locations(self):
@@ -603,11 +557,11 @@ def locations(self):
         -------
         numpy.ndarray
         """
-        return self["locations"]
+        return self['locations']
 
     @locations.setter
     def locations(self, val):
-        self["locations"] = val
+        self['locations'] = val
 
     @property
     def locationssrc(self):
@@ -622,11 +576,11 @@ def locationssrc(self):
         -------
         str
         """
-        return self["locationssrc"]
+        return self['locationssrc']
 
     @locationssrc.setter
     def locationssrc(self, val):
-        self["locationssrc"] = val
+        self['locationssrc'] = val
 
     @property
     def marker(self):
@@ -641,11 +595,11 @@ def marker(self):
         -------
         plotly.graph_objs.choroplethmap.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -667,11 +621,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -685,11 +639,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -705,11 +659,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def reversescale(self):
@@ -725,11 +679,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def selected(self):
@@ -744,11 +698,11 @@ def selected(self):
         -------
         plotly.graph_objs.choroplethmap.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -766,11 +720,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -785,11 +739,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showscale(self):
@@ -804,11 +758,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def stream(self):
@@ -823,11 +777,11 @@ def stream(self):
         -------
         plotly.graph_objs.choroplethmap.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def subplot(self):
@@ -846,11 +800,11 @@ def subplot(self):
         -------
         str
         """
-        return self["subplot"]
+        return self['subplot']
 
     @subplot.setter
     def subplot(self, val):
-        self["subplot"] = val
+        self['subplot'] = val
 
     @property
     def text(self):
@@ -866,11 +820,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -884,11 +838,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def uid(self):
@@ -904,11 +858,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -935,11 +889,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -954,11 +908,11 @@ def unselected(self):
         -------
         plotly.graph_objs.choroplethmap.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -975,11 +929,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def z(self):
@@ -993,11 +947,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zauto(self):
@@ -1014,11 +968,11 @@ def zauto(self):
         -------
         bool
         """
-        return self["zauto"]
+        return self['zauto']
 
     @zauto.setter
     def zauto(self, val):
-        self["zauto"] = val
+        self['zauto'] = val
 
     @property
     def zmax(self):
@@ -1033,11 +987,11 @@ def zmax(self):
         -------
         int|float
         """
-        return self["zmax"]
+        return self['zmax']
 
     @zmax.setter
     def zmax(self, val):
-        self["zmax"] = val
+        self['zmax'] = val
 
     @property
     def zmid(self):
@@ -1053,11 +1007,11 @@ def zmid(self):
         -------
         int|float
         """
-        return self["zmid"]
+        return self['zmid']
 
     @zmid.setter
     def zmid(self, val):
-        self["zmid"] = val
+        self['zmid'] = val
 
     @property
     def zmin(self):
@@ -1072,11 +1026,11 @@ def zmin(self):
         -------
         int|float
         """
-        return self["zmin"]
+        return self['zmin']
 
     @zmin.setter
     def zmin(self, val):
-        self["zmin"] = val
+        self['zmin'] = val
 
     @property
     def zsrc(self):
@@ -1090,15 +1044,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1354,60 +1308,58 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        below=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        featureidkey=None,
-        geojson=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        locations=None,
-        locationssrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        reversescale=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            below=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            featureidkey=None,
+            geojson=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            locations=None,
+            locationssrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            reversescale=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Choroplethmap object
 
@@ -1675,9 +1627,9 @@ def __init__(
         -------
         Choroplethmap
         """
-        super().__init__("choroplethmap")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('choroplethmap')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1687,66 +1639,67 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Choroplethmap
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Choroplethmap`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("below", arg, below)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("featureidkey", arg, featureidkey)
-        self._set_property("geojson", arg, geojson)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("locations", arg, locations)
-        self._set_property("locationssrc", arg, locationssrc)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("stream", arg, stream)
-        self._set_property("subplot", arg, subplot)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-        self._set_property("z", arg, z)
-        self._set_property("zauto", arg, zauto)
-        self._set_property("zmax", arg, zmax)
-        self._set_property("zmid", arg, zmid)
-        self._set_property("zmin", arg, zmin)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "choroplethmap"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Choroplethmap`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('below', arg, below)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('featureidkey', arg, featureidkey)
+        self._set_property('geojson', arg, geojson)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('locations', arg, locations)
+        self._set_property('locationssrc', arg, locationssrc)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('stream', arg, stream)
+        self._set_property('subplot', arg, subplot)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+        self._set_property('z', arg, z)
+        self._set_property('zauto', arg, zauto)
+        self._set_property('zmax', arg, zmax)
+        self._set_property('zmid', arg, zmid)
+        self._set_property('zmin', arg, zmin)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'choroplethmap'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_choroplethmapbox.py b/plotly/graph_objs/_choroplethmapbox.py
index 05b1448a950..af1b36c7299 100644
--- a/plotly/graph_objs/_choroplethmapbox.py
+++ b/plotly/graph_objs/_choroplethmapbox.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -8,59 +12,9 @@
 
 class Choroplethmapbox(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "choroplethmapbox"
-    _valid_props = {
-        "autocolorscale",
-        "below",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "customdata",
-        "customdatasrc",
-        "featureidkey",
-        "geojson",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "locations",
-        "locationssrc",
-        "marker",
-        "meta",
-        "metasrc",
-        "name",
-        "reversescale",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "showscale",
-        "stream",
-        "subplot",
-        "text",
-        "textsrc",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-        "z",
-        "zauto",
-        "zmax",
-        "zmid",
-        "zmin",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'choroplethmapbox'
+    _valid_props = {"autocolorscale", "below", "coloraxis", "colorbar", "colorscale", "customdata", "customdatasrc", "featureidkey", "geojson", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "locations", "locationssrc", "marker", "meta", "metasrc", "name", "reversescale", "selected", "selectedpoints", "showlegend", "showscale", "stream", "subplot", "text", "textsrc", "type", "uid", "uirevision", "unselected", "visible", "z", "zauto", "zmax", "zmid", "zmin", "zsrc"}
 
     @property
     def autocolorscale(self):
@@ -79,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def below(self):
@@ -101,11 +55,11 @@ def below(self):
         -------
         str
         """
-        return self["below"]
+        return self['below']
 
     @below.setter
     def below(self, val):
-        self["below"] = val
+        self['below'] = val
 
     @property
     def coloraxis(self):
@@ -126,11 +80,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -145,11 +99,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.choroplethmapbox.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -196,11 +150,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def customdata(self):
@@ -217,11 +171,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -236,11 +190,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def featureidkey(self):
@@ -257,11 +211,11 @@ def featureidkey(self):
         -------
         str
         """
-        return self["featureidkey"]
+        return self['featureidkey']
 
     @featureidkey.setter
     def featureidkey(self, val):
-        self["featureidkey"] = val
+        self['featureidkey'] = val
 
     @property
     def geojson(self):
@@ -277,11 +231,11 @@ def geojson(self):
         -------
         Any
         """
-        return self["geojson"]
+        return self['geojson']
 
     @geojson.setter
     def geojson(self, val):
-        self["geojson"] = val
+        self['geojson'] = val
 
     @property
     def hoverinfo(self):
@@ -301,11 +255,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -320,11 +274,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -339,11 +293,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.choroplethmapbox.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -382,11 +336,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -401,11 +355,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -421,11 +375,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -440,11 +394,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -460,11 +414,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -478,11 +432,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -501,11 +455,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -522,11 +476,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -541,11 +495,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.choroplethmapbox.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -566,11 +520,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -585,11 +539,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def locations(self):
@@ -604,11 +558,11 @@ def locations(self):
         -------
         numpy.ndarray
         """
-        return self["locations"]
+        return self['locations']
 
     @locations.setter
     def locations(self, val):
-        self["locations"] = val
+        self['locations'] = val
 
     @property
     def locationssrc(self):
@@ -623,11 +577,11 @@ def locationssrc(self):
         -------
         str
         """
-        return self["locationssrc"]
+        return self['locationssrc']
 
     @locationssrc.setter
     def locationssrc(self, val):
-        self["locationssrc"] = val
+        self['locationssrc'] = val
 
     @property
     def marker(self):
@@ -642,11 +596,11 @@ def marker(self):
         -------
         plotly.graph_objs.choroplethmapbox.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -668,11 +622,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -686,11 +640,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -706,11 +660,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def reversescale(self):
@@ -726,11 +680,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def selected(self):
@@ -745,11 +699,11 @@ def selected(self):
         -------
         plotly.graph_objs.choroplethmapbox.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -767,11 +721,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -786,11 +740,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showscale(self):
@@ -805,11 +759,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def stream(self):
@@ -824,11 +778,11 @@ def stream(self):
         -------
         plotly.graph_objs.choroplethmapbox.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def subplot(self):
@@ -851,11 +805,11 @@ def subplot(self):
         -------
         str
         """
-        return self["subplot"]
+        return self['subplot']
 
     @subplot.setter
     def subplot(self, val):
-        self["subplot"] = val
+        self['subplot'] = val
 
     @property
     def text(self):
@@ -871,11 +825,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -889,11 +843,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def uid(self):
@@ -909,11 +863,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -940,11 +894,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -959,11 +913,11 @@ def unselected(self):
         -------
         plotly.graph_objs.choroplethmapbox.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -980,11 +934,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def z(self):
@@ -998,11 +952,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zauto(self):
@@ -1019,11 +973,11 @@ def zauto(self):
         -------
         bool
         """
-        return self["zauto"]
+        return self['zauto']
 
     @zauto.setter
     def zauto(self, val):
-        self["zauto"] = val
+        self['zauto'] = val
 
     @property
     def zmax(self):
@@ -1038,11 +992,11 @@ def zmax(self):
         -------
         int|float
         """
-        return self["zmax"]
+        return self['zmax']
 
     @zmax.setter
     def zmax(self, val):
-        self["zmax"] = val
+        self['zmax'] = val
 
     @property
     def zmid(self):
@@ -1058,11 +1012,11 @@ def zmid(self):
         -------
         int|float
         """
-        return self["zmid"]
+        return self['zmid']
 
     @zmid.setter
     def zmid(self, val):
-        self["zmid"] = val
+        self['zmid'] = val
 
     @property
     def zmin(self):
@@ -1077,11 +1031,11 @@ def zmin(self):
         -------
         int|float
         """
-        return self["zmin"]
+        return self['zmin']
 
     @zmin.setter
     def zmin(self, val):
-        self["zmin"] = val
+        self['zmin'] = val
 
     @property
     def zsrc(self):
@@ -1095,15 +1049,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1364,60 +1318,58 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        below=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        featureidkey=None,
-        geojson=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        locations=None,
-        locationssrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        reversescale=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            below=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            featureidkey=None,
+            geojson=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            locations=None,
+            locationssrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            reversescale=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Choroplethmapbox object
 
@@ -1695,9 +1647,9 @@ def __init__(
         -------
         Choroplethmapbox
         """
-        super().__init__("choroplethmapbox")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('choroplethmapbox')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1707,67 +1659,68 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Choroplethmapbox
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Choroplethmapbox`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("below", arg, below)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("featureidkey", arg, featureidkey)
-        self._set_property("geojson", arg, geojson)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("locations", arg, locations)
-        self._set_property("locationssrc", arg, locationssrc)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("stream", arg, stream)
-        self._set_property("subplot", arg, subplot)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-        self._set_property("z", arg, z)
-        self._set_property("zauto", arg, zauto)
-        self._set_property("zmax", arg, zmax)
-        self._set_property("zmid", arg, zmid)
-        self._set_property("zmin", arg, zmin)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "choroplethmapbox"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Choroplethmapbox`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('below', arg, below)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('featureidkey', arg, featureidkey)
+        self._set_property('geojson', arg, geojson)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('locations', arg, locations)
+        self._set_property('locationssrc', arg, locationssrc)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('stream', arg, stream)
+        self._set_property('subplot', arg, subplot)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+        self._set_property('z', arg, z)
+        self._set_property('zauto', arg, zauto)
+        self._set_property('zmax', arg, zmax)
+        self._set_property('zmid', arg, zmid)
+        self._set_property('zmin', arg, zmin)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'choroplethmapbox'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
 
diff --git a/plotly/graph_objs/_cone.py b/plotly/graph_objs/_cone.py
index fe64fc64cae..3640bc9c196 100644
--- a/plotly/graph_objs/_cone.py
+++ b/plotly/graph_objs/_cone.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,72 +11,9 @@
 
 class Cone(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "cone"
-    _valid_props = {
-        "anchor",
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "customdata",
-        "customdatasrc",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "lighting",
-        "lightposition",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "reversescale",
-        "scene",
-        "showlegend",
-        "showscale",
-        "sizemode",
-        "sizeref",
-        "stream",
-        "text",
-        "textsrc",
-        "type",
-        "u",
-        "uhoverformat",
-        "uid",
-        "uirevision",
-        "usrc",
-        "v",
-        "vhoverformat",
-        "visible",
-        "vsrc",
-        "w",
-        "whoverformat",
-        "wsrc",
-        "x",
-        "xhoverformat",
-        "xsrc",
-        "y",
-        "yhoverformat",
-        "ysrc",
-        "z",
-        "zhoverformat",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'cone'
+    _valid_props = {"anchor", "autocolorscale", "cauto", "cmax", "cmid", "cmin", "coloraxis", "colorbar", "colorscale", "customdata", "customdatasrc", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "lighting", "lightposition", "meta", "metasrc", "name", "opacity", "reversescale", "scene", "showlegend", "showscale", "sizemode", "sizeref", "stream", "text", "textsrc", "type", "u", "uhoverformat", "uid", "uirevision", "usrc", "v", "vhoverformat", "visible", "vsrc", "w", "whoverformat", "wsrc", "x", "xhoverformat", "xsrc", "y", "yhoverformat", "ysrc", "z", "zhoverformat", "zsrc"}
 
     @property
     def anchor(self):
@@ -89,11 +30,11 @@ def anchor(self):
         -------
         Any
         """
-        return self["anchor"]
+        return self['anchor']
 
     @anchor.setter
     def anchor(self, val):
-        self["anchor"] = val
+        self['anchor'] = val
 
     @property
     def autocolorscale(self):
@@ -112,11 +53,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -133,11 +74,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -153,11 +94,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -174,11 +115,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -194,11 +135,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def coloraxis(self):
@@ -219,11 +160,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -238,11 +179,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.cone.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -289,11 +230,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def customdata(self):
@@ -310,11 +251,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -329,11 +270,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def hoverinfo(self):
@@ -353,11 +294,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -372,11 +313,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -391,11 +332,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.cone.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -434,11 +375,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -453,11 +394,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -473,11 +414,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -492,11 +433,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -512,11 +453,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -530,11 +471,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -553,11 +494,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -574,11 +515,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -593,11 +534,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.cone.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -618,11 +559,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -637,11 +578,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def lighting(self):
@@ -656,11 +597,11 @@ def lighting(self):
         -------
         plotly.graph_objs.cone.Lighting
         """
-        return self["lighting"]
+        return self['lighting']
 
     @lighting.setter
     def lighting(self, val):
-        self["lighting"] = val
+        self['lighting'] = val
 
     @property
     def lightposition(self):
@@ -675,11 +616,11 @@ def lightposition(self):
         -------
         plotly.graph_objs.cone.Lightposition
         """
-        return self["lightposition"]
+        return self['lightposition']
 
     @lightposition.setter
     def lightposition(self, val):
-        self["lightposition"] = val
+        self['lightposition'] = val
 
     @property
     def meta(self):
@@ -701,11 +642,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -719,11 +660,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -739,11 +680,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -762,11 +703,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def reversescale(self):
@@ -782,11 +723,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def scene(self):
@@ -805,11 +746,11 @@ def scene(self):
         -------
         str
         """
-        return self["scene"]
+        return self['scene']
 
     @scene.setter
     def scene(self, val):
-        self["scene"] = val
+        self['scene'] = val
 
     @property
     def showlegend(self):
@@ -824,11 +765,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showscale(self):
@@ -843,11 +784,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def sizemode(self):
@@ -866,11 +807,11 @@ def sizemode(self):
         -------
         Any
         """
-        return self["sizemode"]
+        return self['sizemode']
 
     @sizemode.setter
     def sizemode(self, val):
-        self["sizemode"] = val
+        self['sizemode'] = val
 
     @property
     def sizeref(self):
@@ -894,11 +835,11 @@ def sizeref(self):
         -------
         int|float
         """
-        return self["sizeref"]
+        return self['sizeref']
 
     @sizeref.setter
     def sizeref(self, val):
-        self["sizeref"] = val
+        self['sizeref'] = val
 
     @property
     def stream(self):
@@ -913,11 +854,11 @@ def stream(self):
         -------
         plotly.graph_objs.cone.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -935,11 +876,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -953,11 +894,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def u(self):
@@ -971,11 +912,11 @@ def u(self):
         -------
         numpy.ndarray
         """
-        return self["u"]
+        return self['u']
 
     @u.setter
     def u(self, val):
-        self["u"] = val
+        self['u'] = val
 
     @property
     def uhoverformat(self):
@@ -994,11 +935,11 @@ def uhoverformat(self):
         -------
         str
         """
-        return self["uhoverformat"]
+        return self['uhoverformat']
 
     @uhoverformat.setter
     def uhoverformat(self, val):
-        self["uhoverformat"] = val
+        self['uhoverformat'] = val
 
     @property
     def uid(self):
@@ -1014,11 +955,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1045,11 +986,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def usrc(self):
@@ -1063,11 +1004,11 @@ def usrc(self):
         -------
         str
         """
-        return self["usrc"]
+        return self['usrc']
 
     @usrc.setter
     def usrc(self, val):
-        self["usrc"] = val
+        self['usrc'] = val
 
     @property
     def v(self):
@@ -1081,11 +1022,11 @@ def v(self):
         -------
         numpy.ndarray
         """
-        return self["v"]
+        return self['v']
 
     @v.setter
     def v(self, val):
-        self["v"] = val
+        self['v'] = val
 
     @property
     def vhoverformat(self):
@@ -1104,11 +1045,11 @@ def vhoverformat(self):
         -------
         str
         """
-        return self["vhoverformat"]
+        return self['vhoverformat']
 
     @vhoverformat.setter
     def vhoverformat(self, val):
-        self["vhoverformat"] = val
+        self['vhoverformat'] = val
 
     @property
     def visible(self):
@@ -1125,11 +1066,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def vsrc(self):
@@ -1143,11 +1084,11 @@ def vsrc(self):
         -------
         str
         """
-        return self["vsrc"]
+        return self['vsrc']
 
     @vsrc.setter
     def vsrc(self, val):
-        self["vsrc"] = val
+        self['vsrc'] = val
 
     @property
     def w(self):
@@ -1161,11 +1102,11 @@ def w(self):
         -------
         numpy.ndarray
         """
-        return self["w"]
+        return self['w']
 
     @w.setter
     def w(self, val):
-        self["w"] = val
+        self['w'] = val
 
     @property
     def whoverformat(self):
@@ -1184,11 +1125,11 @@ def whoverformat(self):
         -------
         str
         """
-        return self["whoverformat"]
+        return self['whoverformat']
 
     @whoverformat.setter
     def whoverformat(self, val):
-        self["whoverformat"] = val
+        self['whoverformat'] = val
 
     @property
     def wsrc(self):
@@ -1202,11 +1143,11 @@ def wsrc(self):
         -------
         str
         """
-        return self["wsrc"]
+        return self['wsrc']
 
     @wsrc.setter
     def wsrc(self, val):
-        self["wsrc"] = val
+        self['wsrc'] = val
 
     @property
     def x(self):
@@ -1221,11 +1162,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xhoverformat(self):
@@ -1250,11 +1191,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xsrc(self):
@@ -1268,11 +1209,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -1287,11 +1228,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yhoverformat(self):
@@ -1316,11 +1257,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def ysrc(self):
@@ -1334,11 +1275,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def z(self):
@@ -1353,11 +1294,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zhoverformat(self):
@@ -1382,11 +1323,11 @@ def zhoverformat(self):
         -------
         str
         """
-        return self["zhoverformat"]
+        return self['zhoverformat']
 
     @zhoverformat.setter
     def zhoverformat(self, val):
-        self["zhoverformat"] = val
+        self['zhoverformat'] = val
 
     @property
     def zsrc(self):
@@ -1400,15 +1341,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1751,73 +1692,71 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        anchor=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        sizemode=None,
-        sizeref=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        u=None,
-        uhoverformat=None,
-        uid=None,
-        uirevision=None,
-        usrc=None,
-        v=None,
-        vhoverformat=None,
-        visible=None,
-        vsrc=None,
-        w=None,
-        whoverformat=None,
-        wsrc=None,
-        x=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zhoverformat=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            anchor=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            sizemode=None,
+            sizeref=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            u=None,
+            uhoverformat=None,
+            uid=None,
+            uirevision=None,
+            usrc=None,
+            v=None,
+            vhoverformat=None,
+            visible=None,
+            vsrc=None,
+            w=None,
+            whoverformat=None,
+            wsrc=None,
+            x=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zhoverformat=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Cone object
 
@@ -2173,9 +2112,9 @@ def __init__(
         -------
         Cone
         """
-        super().__init__("cone")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('cone')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2185,79 +2124,80 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Cone
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Cone`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("anchor", arg, anchor)
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("lighting", arg, lighting)
-        self._set_property("lightposition", arg, lightposition)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("scene", arg, scene)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("sizemode", arg, sizemode)
-        self._set_property("sizeref", arg, sizeref)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("u", arg, u)
-        self._set_property("uhoverformat", arg, uhoverformat)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("usrc", arg, usrc)
-        self._set_property("v", arg, v)
-        self._set_property("vhoverformat", arg, vhoverformat)
-        self._set_property("visible", arg, visible)
-        self._set_property("vsrc", arg, vsrc)
-        self._set_property("w", arg, w)
-        self._set_property("whoverformat", arg, whoverformat)
-        self._set_property("wsrc", arg, wsrc)
-        self._set_property("x", arg, x)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("z", arg, z)
-        self._set_property("zhoverformat", arg, zhoverformat)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "cone"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Cone`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('anchor', arg, anchor)
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('lighting', arg, lighting)
+        self._set_property('lightposition', arg, lightposition)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('scene', arg, scene)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('sizemode', arg, sizemode)
+        self._set_property('sizeref', arg, sizeref)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('u', arg, u)
+        self._set_property('uhoverformat', arg, uhoverformat)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('usrc', arg, usrc)
+        self._set_property('v', arg, v)
+        self._set_property('vhoverformat', arg, vhoverformat)
+        self._set_property('visible', arg, visible)
+        self._set_property('vsrc', arg, vsrc)
+        self._set_property('w', arg, w)
+        self._set_property('whoverformat', arg, whoverformat)
+        self._set_property('wsrc', arg, wsrc)
+        self._set_property('x', arg, x)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('z', arg, z)
+        self._set_property('zhoverformat', arg, zhoverformat)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'cone'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_contour.py b/plotly/graph_objs/_contour.py
index d64583be87a..c73f62c9677 100644
--- a/plotly/graph_objs/_contour.py
+++ b/plotly/graph_objs/_contour.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,84 +11,9 @@
 
 class Contour(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "contour"
-    _valid_props = {
-        "autocolorscale",
-        "autocontour",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "connectgaps",
-        "contours",
-        "customdata",
-        "customdatasrc",
-        "dx",
-        "dy",
-        "fillcolor",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hoverongaps",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "meta",
-        "metasrc",
-        "name",
-        "ncontours",
-        "opacity",
-        "reversescale",
-        "showlegend",
-        "showscale",
-        "stream",
-        "text",
-        "textfont",
-        "textsrc",
-        "texttemplate",
-        "transpose",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-        "x",
-        "x0",
-        "xaxis",
-        "xcalendar",
-        "xhoverformat",
-        "xperiod",
-        "xperiod0",
-        "xperiodalignment",
-        "xsrc",
-        "xtype",
-        "y",
-        "y0",
-        "yaxis",
-        "ycalendar",
-        "yhoverformat",
-        "yperiod",
-        "yperiod0",
-        "yperiodalignment",
-        "ysrc",
-        "ytype",
-        "z",
-        "zauto",
-        "zhoverformat",
-        "zmax",
-        "zmid",
-        "zmin",
-        "zorder",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'contour'
+    _valid_props = {"autocolorscale", "autocontour", "coloraxis", "colorbar", "colorscale", "connectgaps", "contours", "customdata", "customdatasrc", "dx", "dy", "fillcolor", "hoverinfo", "hoverinfosrc", "hoverlabel", "hoverongaps", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "meta", "metasrc", "name", "ncontours", "opacity", "reversescale", "showlegend", "showscale", "stream", "text", "textfont", "textsrc", "texttemplate", "transpose", "type", "uid", "uirevision", "visible", "x", "x0", "xaxis", "xcalendar", "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", "xsrc", "xtype", "y", "y0", "yaxis", "ycalendar", "yhoverformat", "yperiod", "yperiod0", "yperiodalignment", "ysrc", "ytype", "z", "zauto", "zhoverformat", "zmax", "zmid", "zmin", "zorder", "zsrc"}
 
     @property
     def autocolorscale(self):
@@ -103,11 +32,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def autocontour(self):
@@ -124,11 +53,11 @@ def autocontour(self):
         -------
         bool
         """
-        return self["autocontour"]
+        return self['autocontour']
 
     @autocontour.setter
     def autocontour(self, val):
-        self["autocontour"] = val
+        self['autocontour'] = val
 
     @property
     def coloraxis(self):
@@ -149,11 +78,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -168,11 +97,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.contour.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -219,11 +148,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def connectgaps(self):
@@ -239,11 +168,11 @@ def connectgaps(self):
         -------
         bool
         """
-        return self["connectgaps"]
+        return self['connectgaps']
 
     @connectgaps.setter
     def connectgaps(self, val):
-        self["connectgaps"] = val
+        self['connectgaps'] = val
 
     @property
     def contours(self):
@@ -258,11 +187,11 @@ def contours(self):
         -------
         plotly.graph_objs.contour.Contours
         """
-        return self["contours"]
+        return self['contours']
 
     @contours.setter
     def contours(self, val):
-        self["contours"] = val
+        self['contours'] = val
 
     @property
     def customdata(self):
@@ -279,11 +208,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -298,11 +227,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def dx(self):
@@ -316,11 +245,11 @@ def dx(self):
         -------
         int|float
         """
-        return self["dx"]
+        return self['dx']
 
     @dx.setter
     def dx(self, val):
-        self["dx"] = val
+        self['dx'] = val
 
     @property
     def dy(self):
@@ -334,11 +263,11 @@ def dy(self):
         -------
         int|float
         """
-        return self["dy"]
+        return self['dy']
 
     @dy.setter
     def dy(self, val):
-        self["dy"] = val
+        self['dy'] = val
 
     @property
     def fillcolor(self):
@@ -360,11 +289,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def hoverinfo(self):
@@ -384,11 +313,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -403,11 +332,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -422,11 +351,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.contour.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hoverongaps(self):
@@ -441,11 +370,11 @@ def hoverongaps(self):
         -------
         bool
         """
-        return self["hoverongaps"]
+        return self['hoverongaps']
 
     @hoverongaps.setter
     def hoverongaps(self, val):
-        self["hoverongaps"] = val
+        self['hoverongaps'] = val
 
     @property
     def hovertemplate(self):
@@ -483,11 +412,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -502,11 +431,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -520,11 +449,11 @@ def hovertext(self):
         -------
         numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -539,11 +468,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -559,11 +488,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -577,11 +506,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -600,11 +529,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -621,11 +550,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -640,11 +569,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.contour.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -665,11 +594,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -684,11 +613,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -703,11 +632,11 @@ def line(self):
         -------
         plotly.graph_objs.contour.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def meta(self):
@@ -729,11 +658,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -747,11 +676,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -767,11 +696,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def ncontours(self):
@@ -789,11 +718,11 @@ def ncontours(self):
         -------
         int
         """
-        return self["ncontours"]
+        return self['ncontours']
 
     @ncontours.setter
     def ncontours(self, val):
-        self["ncontours"] = val
+        self['ncontours'] = val
 
     @property
     def opacity(self):
@@ -807,11 +736,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def reversescale(self):
@@ -827,11 +756,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showlegend(self):
@@ -846,11 +775,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showscale(self):
@@ -865,11 +794,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def stream(self):
@@ -884,11 +813,11 @@ def stream(self):
         -------
         plotly.graph_objs.contour.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -902,11 +831,11 @@ def text(self):
         -------
         numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -924,11 +853,11 @@ def textfont(self):
         -------
         plotly.graph_objs.contour.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textsrc(self):
@@ -942,11 +871,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -975,11 +904,11 @@ def texttemplate(self):
         -------
         str
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def transpose(self):
@@ -993,11 +922,11 @@ def transpose(self):
         -------
         bool
         """
-        return self["transpose"]
+        return self['transpose']
 
     @transpose.setter
     def transpose(self, val):
-        self["transpose"] = val
+        self['transpose'] = val
 
     @property
     def uid(self):
@@ -1013,11 +942,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1044,11 +973,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -1065,11 +994,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -1083,11 +1012,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def x0(self):
@@ -1102,11 +1031,11 @@ def x0(self):
         -------
         Any
         """
-        return self["x0"]
+        return self['x0']
 
     @x0.setter
     def x0(self, val):
-        self["x0"] = val
+        self['x0'] = val
 
     @property
     def xaxis(self):
@@ -1125,11 +1054,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def xcalendar(self):
@@ -1147,11 +1076,11 @@ def xcalendar(self):
         -------
         Any
         """
-        return self["xcalendar"]
+        return self['xcalendar']
 
     @xcalendar.setter
     def xcalendar(self, val):
-        self["xcalendar"] = val
+        self['xcalendar'] = val
 
     @property
     def xhoverformat(self):
@@ -1176,11 +1105,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xperiod(self):
@@ -1196,11 +1125,11 @@ def xperiod(self):
         -------
         Any
         """
-        return self["xperiod"]
+        return self['xperiod']
 
     @xperiod.setter
     def xperiod(self, val):
-        self["xperiod"] = val
+        self['xperiod'] = val
 
     @property
     def xperiod0(self):
@@ -1217,11 +1146,11 @@ def xperiod0(self):
         -------
         Any
         """
-        return self["xperiod0"]
+        return self['xperiod0']
 
     @xperiod0.setter
     def xperiod0(self, val):
-        self["xperiod0"] = val
+        self['xperiod0'] = val
 
     @property
     def xperiodalignment(self):
@@ -1237,11 +1166,11 @@ def xperiodalignment(self):
         -------
         Any
         """
-        return self["xperiodalignment"]
+        return self['xperiodalignment']
 
     @xperiodalignment.setter
     def xperiodalignment(self, val):
-        self["xperiodalignment"] = val
+        self['xperiodalignment'] = val
 
     @property
     def xsrc(self):
@@ -1255,11 +1184,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def xtype(self):
@@ -1277,11 +1206,11 @@ def xtype(self):
         -------
         Any
         """
-        return self["xtype"]
+        return self['xtype']
 
     @xtype.setter
     def xtype(self, val):
-        self["xtype"] = val
+        self['xtype'] = val
 
     @property
     def y(self):
@@ -1295,11 +1224,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def y0(self):
@@ -1314,11 +1243,11 @@ def y0(self):
         -------
         Any
         """
-        return self["y0"]
+        return self['y0']
 
     @y0.setter
     def y0(self, val):
-        self["y0"] = val
+        self['y0'] = val
 
     @property
     def yaxis(self):
@@ -1337,11 +1266,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def ycalendar(self):
@@ -1359,11 +1288,11 @@ def ycalendar(self):
         -------
         Any
         """
-        return self["ycalendar"]
+        return self['ycalendar']
 
     @ycalendar.setter
     def ycalendar(self, val):
-        self["ycalendar"] = val
+        self['ycalendar'] = val
 
     @property
     def yhoverformat(self):
@@ -1388,11 +1317,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def yperiod(self):
@@ -1408,11 +1337,11 @@ def yperiod(self):
         -------
         Any
         """
-        return self["yperiod"]
+        return self['yperiod']
 
     @yperiod.setter
     def yperiod(self, val):
-        self["yperiod"] = val
+        self['yperiod'] = val
 
     @property
     def yperiod0(self):
@@ -1429,11 +1358,11 @@ def yperiod0(self):
         -------
         Any
         """
-        return self["yperiod0"]
+        return self['yperiod0']
 
     @yperiod0.setter
     def yperiod0(self, val):
-        self["yperiod0"] = val
+        self['yperiod0'] = val
 
     @property
     def yperiodalignment(self):
@@ -1449,11 +1378,11 @@ def yperiodalignment(self):
         -------
         Any
         """
-        return self["yperiodalignment"]
+        return self['yperiodalignment']
 
     @yperiodalignment.setter
     def yperiodalignment(self, val):
-        self["yperiodalignment"] = val
+        self['yperiodalignment'] = val
 
     @property
     def ysrc(self):
@@ -1467,11 +1396,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def ytype(self):
@@ -1489,11 +1418,11 @@ def ytype(self):
         -------
         Any
         """
-        return self["ytype"]
+        return self['ytype']
 
     @ytype.setter
     def ytype(self, val):
-        self["ytype"] = val
+        self['ytype'] = val
 
     @property
     def z(self):
@@ -1507,11 +1436,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zauto(self):
@@ -1528,11 +1457,11 @@ def zauto(self):
         -------
         bool
         """
-        return self["zauto"]
+        return self['zauto']
 
     @zauto.setter
     def zauto(self, val):
-        self["zauto"] = val
+        self['zauto'] = val
 
     @property
     def zhoverformat(self):
@@ -1551,11 +1480,11 @@ def zhoverformat(self):
         -------
         str
         """
-        return self["zhoverformat"]
+        return self['zhoverformat']
 
     @zhoverformat.setter
     def zhoverformat(self, val):
-        self["zhoverformat"] = val
+        self['zhoverformat'] = val
 
     @property
     def zmax(self):
@@ -1570,11 +1499,11 @@ def zmax(self):
         -------
         int|float
         """
-        return self["zmax"]
+        return self['zmax']
 
     @zmax.setter
     def zmax(self, val):
-        self["zmax"] = val
+        self['zmax'] = val
 
     @property
     def zmid(self):
@@ -1590,11 +1519,11 @@ def zmid(self):
         -------
         int|float
         """
-        return self["zmid"]
+        return self['zmid']
 
     @zmid.setter
     def zmid(self, val):
-        self["zmid"] = val
+        self['zmid'] = val
 
     @property
     def zmin(self):
@@ -1609,11 +1538,11 @@ def zmin(self):
         -------
         int|float
         """
-        return self["zmin"]
+        return self['zmin']
 
     @zmin.setter
     def zmin(self, val):
-        self["zmin"] = val
+        self['zmin'] = val
 
     @property
     def zorder(self):
@@ -1629,11 +1558,11 @@ def zorder(self):
         -------
         int
         """
-        return self["zorder"]
+        return self['zorder']
 
     @zorder.setter
     def zorder(self, val):
-        self["zorder"] = val
+        self['zorder'] = val
 
     @property
     def zsrc(self):
@@ -1647,15 +1576,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -2039,85 +1968,83 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        autocontour=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        connectgaps=None,
-        contours=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoverongaps=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        ncontours=None,
-        opacity=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textsrc=None,
-        texttemplate=None,
-        transpose=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        xtype=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        ytype=None,
-        z=None,
-        zauto=None,
-        zhoverformat=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zorder=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            autocontour=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            connectgaps=None,
+            contours=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoverongaps=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            ncontours=None,
+            opacity=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textsrc=None,
+            texttemplate=None,
+            transpose=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            xtype=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            ytype=None,
+            z=None,
+            zauto=None,
+            zhoverformat=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zorder=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Contour object
 
@@ -2517,9 +2444,9 @@ def __init__(
         -------
         Contour
         """
-        super().__init__("contour")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('contour')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2529,91 +2456,92 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Contour
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Contour`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("autocontour", arg, autocontour)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("connectgaps", arg, connectgaps)
-        self._set_property("contours", arg, contours)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("dx", arg, dx)
-        self._set_property("dy", arg, dy)
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hoverongaps", arg, hoverongaps)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("ncontours", arg, ncontours)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("transpose", arg, transpose)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("x0", arg, x0)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("xcalendar", arg, xcalendar)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xperiod", arg, xperiod)
-        self._set_property("xperiod0", arg, xperiod0)
-        self._set_property("xperiodalignment", arg, xperiodalignment)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("xtype", arg, xtype)
-        self._set_property("y", arg, y)
-        self._set_property("y0", arg, y0)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("ycalendar", arg, ycalendar)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("yperiod", arg, yperiod)
-        self._set_property("yperiod0", arg, yperiod0)
-        self._set_property("yperiodalignment", arg, yperiodalignment)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("ytype", arg, ytype)
-        self._set_property("z", arg, z)
-        self._set_property("zauto", arg, zauto)
-        self._set_property("zhoverformat", arg, zhoverformat)
-        self._set_property("zmax", arg, zmax)
-        self._set_property("zmid", arg, zmid)
-        self._set_property("zmin", arg, zmin)
-        self._set_property("zorder", arg, zorder)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "contour"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Contour`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('autocontour', arg, autocontour)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('connectgaps', arg, connectgaps)
+        self._set_property('contours', arg, contours)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('dx', arg, dx)
+        self._set_property('dy', arg, dy)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hoverongaps', arg, hoverongaps)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('ncontours', arg, ncontours)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('transpose', arg, transpose)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('x0', arg, x0)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('xcalendar', arg, xcalendar)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xperiod', arg, xperiod)
+        self._set_property('xperiod0', arg, xperiod0)
+        self._set_property('xperiodalignment', arg, xperiodalignment)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('xtype', arg, xtype)
+        self._set_property('y', arg, y)
+        self._set_property('y0', arg, y0)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('ycalendar', arg, ycalendar)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('yperiod', arg, yperiod)
+        self._set_property('yperiod0', arg, yperiod0)
+        self._set_property('yperiodalignment', arg, yperiodalignment)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('ytype', arg, ytype)
+        self._set_property('z', arg, z)
+        self._set_property('zauto', arg, zauto)
+        self._set_property('zhoverformat', arg, zhoverformat)
+        self._set_property('zmax', arg, zmax)
+        self._set_property('zmid', arg, zmid)
+        self._set_property('zmin', arg, zmin)
+        self._set_property('zorder', arg, zorder)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'contour'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_contourcarpet.py b/plotly/graph_objs/_contourcarpet.py
index f6aadf6ea75..d10653d7e26 100644
--- a/plotly/graph_objs/_contourcarpet.py
+++ b/plotly/graph_objs/_contourcarpet.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,65 +11,9 @@
 
 class Contourcarpet(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "contourcarpet"
-    _valid_props = {
-        "a",
-        "a0",
-        "asrc",
-        "atype",
-        "autocolorscale",
-        "autocontour",
-        "b",
-        "b0",
-        "bsrc",
-        "btype",
-        "carpet",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "contours",
-        "customdata",
-        "customdatasrc",
-        "da",
-        "db",
-        "fillcolor",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "meta",
-        "metasrc",
-        "name",
-        "ncontours",
-        "opacity",
-        "reversescale",
-        "showlegend",
-        "showscale",
-        "stream",
-        "text",
-        "textsrc",
-        "transpose",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-        "xaxis",
-        "yaxis",
-        "z",
-        "zauto",
-        "zmax",
-        "zmid",
-        "zmin",
-        "zorder",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'contourcarpet'
+    _valid_props = {"a", "a0", "asrc", "atype", "autocolorscale", "autocontour", "b", "b0", "bsrc", "btype", "carpet", "coloraxis", "colorbar", "colorscale", "contours", "customdata", "customdatasrc", "da", "db", "fillcolor", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "meta", "metasrc", "name", "ncontours", "opacity", "reversescale", "showlegend", "showscale", "stream", "text", "textsrc", "transpose", "type", "uid", "uirevision", "visible", "xaxis", "yaxis", "z", "zauto", "zmax", "zmid", "zmin", "zorder", "zsrc"}
 
     @property
     def a(self):
@@ -79,11 +27,11 @@ def a(self):
         -------
         numpy.ndarray
         """
-        return self["a"]
+        return self['a']
 
     @a.setter
     def a(self, val):
-        self["a"] = val
+        self['a'] = val
 
     @property
     def a0(self):
@@ -98,11 +46,11 @@ def a0(self):
         -------
         Any
         """
-        return self["a0"]
+        return self['a0']
 
     @a0.setter
     def a0(self, val):
-        self["a0"] = val
+        self['a0'] = val
 
     @property
     def asrc(self):
@@ -116,11 +64,11 @@ def asrc(self):
         -------
         str
         """
-        return self["asrc"]
+        return self['asrc']
 
     @asrc.setter
     def asrc(self, val):
-        self["asrc"] = val
+        self['asrc'] = val
 
     @property
     def atype(self):
@@ -138,11 +86,11 @@ def atype(self):
         -------
         Any
         """
-        return self["atype"]
+        return self['atype']
 
     @atype.setter
     def atype(self, val):
-        self["atype"] = val
+        self['atype'] = val
 
     @property
     def autocolorscale(self):
@@ -161,11 +109,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def autocontour(self):
@@ -182,11 +130,11 @@ def autocontour(self):
         -------
         bool
         """
-        return self["autocontour"]
+        return self['autocontour']
 
     @autocontour.setter
     def autocontour(self, val):
-        self["autocontour"] = val
+        self['autocontour'] = val
 
     @property
     def b(self):
@@ -200,11 +148,11 @@ def b(self):
         -------
         numpy.ndarray
         """
-        return self["b"]
+        return self['b']
 
     @b.setter
     def b(self, val):
-        self["b"] = val
+        self['b'] = val
 
     @property
     def b0(self):
@@ -219,11 +167,11 @@ def b0(self):
         -------
         Any
         """
-        return self["b0"]
+        return self['b0']
 
     @b0.setter
     def b0(self, val):
-        self["b0"] = val
+        self['b0'] = val
 
     @property
     def bsrc(self):
@@ -237,11 +185,11 @@ def bsrc(self):
         -------
         str
         """
-        return self["bsrc"]
+        return self['bsrc']
 
     @bsrc.setter
     def bsrc(self, val):
-        self["bsrc"] = val
+        self['bsrc'] = val
 
     @property
     def btype(self):
@@ -259,11 +207,11 @@ def btype(self):
         -------
         Any
         """
-        return self["btype"]
+        return self['btype']
 
     @btype.setter
     def btype(self, val):
-        self["btype"] = val
+        self['btype'] = val
 
     @property
     def carpet(self):
@@ -279,11 +227,11 @@ def carpet(self):
         -------
         str
         """
-        return self["carpet"]
+        return self['carpet']
 
     @carpet.setter
     def carpet(self, val):
-        self["carpet"] = val
+        self['carpet'] = val
 
     @property
     def coloraxis(self):
@@ -304,11 +252,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -323,11 +271,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.contourcarpet.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -374,11 +322,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def contours(self):
@@ -393,11 +341,11 @@ def contours(self):
         -------
         plotly.graph_objs.contourcarpet.Contours
         """
-        return self["contours"]
+        return self['contours']
 
     @contours.setter
     def contours(self, val):
-        self["contours"] = val
+        self['contours'] = val
 
     @property
     def customdata(self):
@@ -414,11 +362,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -433,11 +381,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def da(self):
@@ -451,11 +399,11 @@ def da(self):
         -------
         int|float
         """
-        return self["da"]
+        return self['da']
 
     @da.setter
     def da(self, val):
-        self["da"] = val
+        self['da'] = val
 
     @property
     def db(self):
@@ -469,11 +417,11 @@ def db(self):
         -------
         int|float
         """
-        return self["db"]
+        return self['db']
 
     @db.setter
     def db(self, val):
-        self["db"] = val
+        self['db'] = val
 
     @property
     def fillcolor(self):
@@ -495,11 +443,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def hovertext(self):
@@ -513,11 +461,11 @@ def hovertext(self):
         -------
         numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -532,11 +480,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -552,11 +500,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -570,11 +518,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -593,11 +541,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -614,11 +562,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -633,11 +581,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.contourcarpet.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -658,11 +606,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -677,11 +625,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -696,11 +644,11 @@ def line(self):
         -------
         plotly.graph_objs.contourcarpet.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def meta(self):
@@ -722,11 +670,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -740,11 +688,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -760,11 +708,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def ncontours(self):
@@ -782,11 +730,11 @@ def ncontours(self):
         -------
         int
         """
-        return self["ncontours"]
+        return self['ncontours']
 
     @ncontours.setter
     def ncontours(self, val):
-        self["ncontours"] = val
+        self['ncontours'] = val
 
     @property
     def opacity(self):
@@ -800,11 +748,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def reversescale(self):
@@ -820,11 +768,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showlegend(self):
@@ -839,11 +787,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showscale(self):
@@ -858,11 +806,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def stream(self):
@@ -877,11 +825,11 @@ def stream(self):
         -------
         plotly.graph_objs.contourcarpet.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -895,11 +843,11 @@ def text(self):
         -------
         numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -913,11 +861,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def transpose(self):
@@ -931,11 +879,11 @@ def transpose(self):
         -------
         bool
         """
-        return self["transpose"]
+        return self['transpose']
 
     @transpose.setter
     def transpose(self, val):
-        self["transpose"] = val
+        self['transpose'] = val
 
     @property
     def uid(self):
@@ -951,11 +899,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -982,11 +930,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -1003,11 +951,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def xaxis(self):
@@ -1026,11 +974,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def yaxis(self):
@@ -1049,11 +997,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def z(self):
@@ -1067,11 +1015,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zauto(self):
@@ -1088,11 +1036,11 @@ def zauto(self):
         -------
         bool
         """
-        return self["zauto"]
+        return self['zauto']
 
     @zauto.setter
     def zauto(self, val):
-        self["zauto"] = val
+        self['zauto'] = val
 
     @property
     def zmax(self):
@@ -1107,11 +1055,11 @@ def zmax(self):
         -------
         int|float
         """
-        return self["zmax"]
+        return self['zmax']
 
     @zmax.setter
     def zmax(self, val):
-        self["zmax"] = val
+        self['zmax'] = val
 
     @property
     def zmid(self):
@@ -1127,11 +1075,11 @@ def zmid(self):
         -------
         int|float
         """
-        return self["zmid"]
+        return self['zmid']
 
     @zmid.setter
     def zmid(self, val):
-        self["zmid"] = val
+        self['zmid'] = val
 
     @property
     def zmin(self):
@@ -1146,11 +1094,11 @@ def zmin(self):
         -------
         int|float
         """
-        return self["zmin"]
+        return self['zmin']
 
     @zmin.setter
     def zmin(self, val):
-        self["zmin"] = val
+        self['zmin'] = val
 
     @property
     def zorder(self):
@@ -1166,11 +1114,11 @@ def zorder(self):
         -------
         int
         """
-        return self["zorder"]
+        return self['zorder']
 
     @zorder.setter
     def zorder(self, val):
-        self["zorder"] = val
+        self['zorder'] = val
 
     @property
     def zsrc(self):
@@ -1184,15 +1132,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1439,66 +1387,64 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        a=None,
-        a0=None,
-        asrc=None,
-        atype=None,
-        autocolorscale=None,
-        autocontour=None,
-        b=None,
-        b0=None,
-        bsrc=None,
-        btype=None,
-        carpet=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        contours=None,
-        customdata=None,
-        customdatasrc=None,
-        da=None,
-        db=None,
-        fillcolor=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        ncontours=None,
-        opacity=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        transpose=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        xaxis=None,
-        yaxis=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zorder=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            a=None,
+            a0=None,
+            asrc=None,
+            atype=None,
+            autocolorscale=None,
+            autocontour=None,
+            b=None,
+            b0=None,
+            bsrc=None,
+            btype=None,
+            carpet=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            contours=None,
+            customdata=None,
+            customdatasrc=None,
+            da=None,
+            db=None,
+            fillcolor=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            ncontours=None,
+            opacity=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            transpose=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            xaxis=None,
+            yaxis=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zorder=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Contourcarpet object
 
@@ -1757,9 +1703,9 @@ def __init__(
         -------
         Contourcarpet
         """
-        super().__init__("contourcarpet")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('contourcarpet')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1769,72 +1715,73 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Contourcarpet
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Contourcarpet`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("a", arg, a)
-        self._set_property("a0", arg, a0)
-        self._set_property("asrc", arg, asrc)
-        self._set_property("atype", arg, atype)
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("autocontour", arg, autocontour)
-        self._set_property("b", arg, b)
-        self._set_property("b0", arg, b0)
-        self._set_property("bsrc", arg, bsrc)
-        self._set_property("btype", arg, btype)
-        self._set_property("carpet", arg, carpet)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("contours", arg, contours)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("da", arg, da)
-        self._set_property("db", arg, db)
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("ncontours", arg, ncontours)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("transpose", arg, transpose)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("z", arg, z)
-        self._set_property("zauto", arg, zauto)
-        self._set_property("zmax", arg, zmax)
-        self._set_property("zmid", arg, zmid)
-        self._set_property("zmin", arg, zmin)
-        self._set_property("zorder", arg, zorder)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "contourcarpet"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Contourcarpet`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('a', arg, a)
+        self._set_property('a0', arg, a0)
+        self._set_property('asrc', arg, asrc)
+        self._set_property('atype', arg, atype)
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('autocontour', arg, autocontour)
+        self._set_property('b', arg, b)
+        self._set_property('b0', arg, b0)
+        self._set_property('bsrc', arg, bsrc)
+        self._set_property('btype', arg, btype)
+        self._set_property('carpet', arg, carpet)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('contours', arg, contours)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('da', arg, da)
+        self._set_property('db', arg, db)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('ncontours', arg, ncontours)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('transpose', arg, transpose)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('z', arg, z)
+        self._set_property('zauto', arg, zauto)
+        self._set_property('zmax', arg, zmax)
+        self._set_property('zmid', arg, zmid)
+        self._set_property('zmin', arg, zmin)
+        self._set_property('zorder', arg, zorder)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'contourcarpet'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_densitymap.py b/plotly/graph_objs/_densitymap.py
index d63b2fc81b6..37f99626823 100644
--- a/plotly/graph_objs/_densitymap.py
+++ b/plotly/graph_objs/_densitymap.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,58 +11,9 @@
 
 class Densitymap(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "densitymap"
-    _valid_props = {
-        "autocolorscale",
-        "below",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "customdata",
-        "customdatasrc",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "lat",
-        "latsrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "lon",
-        "lonsrc",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "radius",
-        "radiussrc",
-        "reversescale",
-        "showlegend",
-        "showscale",
-        "stream",
-        "subplot",
-        "text",
-        "textsrc",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-        "z",
-        "zauto",
-        "zmax",
-        "zmid",
-        "zmin",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'densitymap'
+    _valid_props = {"autocolorscale", "below", "coloraxis", "colorbar", "colorscale", "customdata", "customdatasrc", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "lat", "latsrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "lon", "lonsrc", "meta", "metasrc", "name", "opacity", "radius", "radiussrc", "reversescale", "showlegend", "showscale", "stream", "subplot", "text", "textsrc", "type", "uid", "uirevision", "visible", "z", "zauto", "zmax", "zmid", "zmin", "zsrc"}
 
     @property
     def autocolorscale(self):
@@ -77,11 +32,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def below(self):
@@ -99,11 +54,11 @@ def below(self):
         -------
         str
         """
-        return self["below"]
+        return self['below']
 
     @below.setter
     def below(self, val):
-        self["below"] = val
+        self['below'] = val
 
     @property
     def coloraxis(self):
@@ -124,11 +79,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -143,11 +98,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.densitymap.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -194,11 +149,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def customdata(self):
@@ -215,11 +170,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -234,11 +189,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def hoverinfo(self):
@@ -258,11 +213,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -277,11 +232,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -296,11 +251,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.densitymap.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -338,11 +293,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -357,11 +312,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -381,11 +336,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -400,11 +355,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -420,11 +375,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -438,11 +393,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def lat(self):
@@ -456,11 +411,11 @@ def lat(self):
         -------
         numpy.ndarray
         """
-        return self["lat"]
+        return self['lat']
 
     @lat.setter
     def lat(self, val):
-        self["lat"] = val
+        self['lat'] = val
 
     @property
     def latsrc(self):
@@ -474,11 +429,11 @@ def latsrc(self):
         -------
         str
         """
-        return self["latsrc"]
+        return self['latsrc']
 
     @latsrc.setter
     def latsrc(self, val):
-        self["latsrc"] = val
+        self['latsrc'] = val
 
     @property
     def legend(self):
@@ -497,11 +452,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -518,11 +473,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -537,11 +492,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.densitymap.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -562,11 +517,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -581,11 +536,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def lon(self):
@@ -599,11 +554,11 @@ def lon(self):
         -------
         numpy.ndarray
         """
-        return self["lon"]
+        return self['lon']
 
     @lon.setter
     def lon(self, val):
-        self["lon"] = val
+        self['lon'] = val
 
     @property
     def lonsrc(self):
@@ -617,11 +572,11 @@ def lonsrc(self):
         -------
         str
         """
-        return self["lonsrc"]
+        return self['lonsrc']
 
     @lonsrc.setter
     def lonsrc(self, val):
-        self["lonsrc"] = val
+        self['lonsrc'] = val
 
     @property
     def meta(self):
@@ -643,11 +598,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -661,11 +616,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -681,11 +636,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -699,11 +654,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def radius(self):
@@ -720,11 +675,11 @@ def radius(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["radius"]
+        return self['radius']
 
     @radius.setter
     def radius(self, val):
-        self["radius"] = val
+        self['radius'] = val
 
     @property
     def radiussrc(self):
@@ -738,11 +693,11 @@ def radiussrc(self):
         -------
         str
         """
-        return self["radiussrc"]
+        return self['radiussrc']
 
     @radiussrc.setter
     def radiussrc(self, val):
-        self["radiussrc"] = val
+        self['radiussrc'] = val
 
     @property
     def reversescale(self):
@@ -758,11 +713,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showlegend(self):
@@ -777,11 +732,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showscale(self):
@@ -796,11 +751,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def stream(self):
@@ -815,11 +770,11 @@ def stream(self):
         -------
         plotly.graph_objs.densitymap.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def subplot(self):
@@ -838,11 +793,11 @@ def subplot(self):
         -------
         str
         """
-        return self["subplot"]
+        return self['subplot']
 
     @subplot.setter
     def subplot(self, val):
-        self["subplot"] = val
+        self['subplot'] = val
 
     @property
     def text(self):
@@ -863,11 +818,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -881,11 +836,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def uid(self):
@@ -901,11 +856,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -932,11 +887,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -953,11 +908,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def z(self):
@@ -972,11 +927,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zauto(self):
@@ -993,11 +948,11 @@ def zauto(self):
         -------
         bool
         """
-        return self["zauto"]
+        return self['zauto']
 
     @zauto.setter
     def zauto(self, val):
-        self["zauto"] = val
+        self['zauto'] = val
 
     @property
     def zmax(self):
@@ -1012,11 +967,11 @@ def zmax(self):
         -------
         int|float
         """
-        return self["zmax"]
+        return self['zmax']
 
     @zmax.setter
     def zmax(self, val):
-        self["zmax"] = val
+        self['zmax'] = val
 
     @property
     def zmid(self):
@@ -1032,11 +987,11 @@ def zmid(self):
         -------
         int|float
         """
-        return self["zmid"]
+        return self['zmid']
 
     @zmid.setter
     def zmid(self, val):
-        self["zmid"] = val
+        self['zmid'] = val
 
     @property
     def zmin(self):
@@ -1051,11 +1006,11 @@ def zmin(self):
         -------
         int|float
         """
-        return self["zmin"]
+        return self['zmin']
 
     @zmin.setter
     def zmin(self, val):
-        self["zmin"] = val
+        self['zmin'] = val
 
     @property
     def zsrc(self):
@@ -1069,15 +1024,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1331,59 +1286,57 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        below=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        lat=None,
-        latsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lon=None,
-        lonsrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        radius=None,
-        radiussrc=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            below=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            lat=None,
+            latsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lon=None,
+            lonsrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            radius=None,
+            radiussrc=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Densitymap object
 
@@ -1649,9 +1602,9 @@ def __init__(
         -------
         Densitymap
         """
-        super().__init__("densitymap")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('densitymap')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1661,65 +1614,66 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Densitymap
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Densitymap`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("below", arg, below)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("lat", arg, lat)
-        self._set_property("latsrc", arg, latsrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("lon", arg, lon)
-        self._set_property("lonsrc", arg, lonsrc)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("radius", arg, radius)
-        self._set_property("radiussrc", arg, radiussrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("stream", arg, stream)
-        self._set_property("subplot", arg, subplot)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("z", arg, z)
-        self._set_property("zauto", arg, zauto)
-        self._set_property("zmax", arg, zmax)
-        self._set_property("zmid", arg, zmid)
-        self._set_property("zmin", arg, zmin)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "densitymap"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Densitymap`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('below', arg, below)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('lat', arg, lat)
+        self._set_property('latsrc', arg, latsrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('lon', arg, lon)
+        self._set_property('lonsrc', arg, lonsrc)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('radius', arg, radius)
+        self._set_property('radiussrc', arg, radiussrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('stream', arg, stream)
+        self._set_property('subplot', arg, subplot)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('z', arg, z)
+        self._set_property('zauto', arg, zauto)
+        self._set_property('zmax', arg, zmax)
+        self._set_property('zmid', arg, zmid)
+        self._set_property('zmin', arg, zmin)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'densitymap'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_densitymapbox.py b/plotly/graph_objs/_densitymapbox.py
index 44c03e0eeb6..eaa14e4e9be 100644
--- a/plotly/graph_objs/_densitymapbox.py
+++ b/plotly/graph_objs/_densitymapbox.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -8,58 +12,9 @@
 
 class Densitymapbox(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "densitymapbox"
-    _valid_props = {
-        "autocolorscale",
-        "below",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "customdata",
-        "customdatasrc",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "lat",
-        "latsrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "lon",
-        "lonsrc",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "radius",
-        "radiussrc",
-        "reversescale",
-        "showlegend",
-        "showscale",
-        "stream",
-        "subplot",
-        "text",
-        "textsrc",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-        "z",
-        "zauto",
-        "zmax",
-        "zmid",
-        "zmin",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'densitymapbox'
+    _valid_props = {"autocolorscale", "below", "coloraxis", "colorbar", "colorscale", "customdata", "customdatasrc", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "lat", "latsrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "lon", "lonsrc", "meta", "metasrc", "name", "opacity", "radius", "radiussrc", "reversescale", "showlegend", "showscale", "stream", "subplot", "text", "textsrc", "type", "uid", "uirevision", "visible", "z", "zauto", "zmax", "zmid", "zmin", "zsrc"}
 
     @property
     def autocolorscale(self):
@@ -78,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def below(self):
@@ -100,11 +55,11 @@ def below(self):
         -------
         str
         """
-        return self["below"]
+        return self['below']
 
     @below.setter
     def below(self, val):
-        self["below"] = val
+        self['below'] = val
 
     @property
     def coloraxis(self):
@@ -125,11 +80,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -144,11 +99,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.densitymapbox.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -195,11 +150,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def customdata(self):
@@ -216,11 +171,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -235,11 +190,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def hoverinfo(self):
@@ -259,11 +214,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -278,11 +233,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -297,11 +252,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.densitymapbox.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -339,11 +294,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -358,11 +313,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -382,11 +337,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -401,11 +356,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -421,11 +376,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -439,11 +394,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def lat(self):
@@ -457,11 +412,11 @@ def lat(self):
         -------
         numpy.ndarray
         """
-        return self["lat"]
+        return self['lat']
 
     @lat.setter
     def lat(self, val):
-        self["lat"] = val
+        self['lat'] = val
 
     @property
     def latsrc(self):
@@ -475,11 +430,11 @@ def latsrc(self):
         -------
         str
         """
-        return self["latsrc"]
+        return self['latsrc']
 
     @latsrc.setter
     def latsrc(self, val):
-        self["latsrc"] = val
+        self['latsrc'] = val
 
     @property
     def legend(self):
@@ -498,11 +453,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -519,11 +474,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -538,11 +493,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.densitymapbox.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -563,11 +518,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -582,11 +537,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def lon(self):
@@ -600,11 +555,11 @@ def lon(self):
         -------
         numpy.ndarray
         """
-        return self["lon"]
+        return self['lon']
 
     @lon.setter
     def lon(self, val):
-        self["lon"] = val
+        self['lon'] = val
 
     @property
     def lonsrc(self):
@@ -618,11 +573,11 @@ def lonsrc(self):
         -------
         str
         """
-        return self["lonsrc"]
+        return self['lonsrc']
 
     @lonsrc.setter
     def lonsrc(self, val):
-        self["lonsrc"] = val
+        self['lonsrc'] = val
 
     @property
     def meta(self):
@@ -644,11 +599,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -662,11 +617,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -682,11 +637,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -700,11 +655,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def radius(self):
@@ -721,11 +676,11 @@ def radius(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["radius"]
+        return self['radius']
 
     @radius.setter
     def radius(self, val):
-        self["radius"] = val
+        self['radius'] = val
 
     @property
     def radiussrc(self):
@@ -739,11 +694,11 @@ def radiussrc(self):
         -------
         str
         """
-        return self["radiussrc"]
+        return self['radiussrc']
 
     @radiussrc.setter
     def radiussrc(self, val):
-        self["radiussrc"] = val
+        self['radiussrc'] = val
 
     @property
     def reversescale(self):
@@ -759,11 +714,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showlegend(self):
@@ -778,11 +733,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showscale(self):
@@ -797,11 +752,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def stream(self):
@@ -816,11 +771,11 @@ def stream(self):
         -------
         plotly.graph_objs.densitymapbox.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def subplot(self):
@@ -843,11 +798,11 @@ def subplot(self):
         -------
         str
         """
-        return self["subplot"]
+        return self['subplot']
 
     @subplot.setter
     def subplot(self, val):
-        self["subplot"] = val
+        self['subplot'] = val
 
     @property
     def text(self):
@@ -868,11 +823,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -886,11 +841,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def uid(self):
@@ -906,11 +861,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -937,11 +892,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -958,11 +913,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def z(self):
@@ -977,11 +932,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zauto(self):
@@ -998,11 +953,11 @@ def zauto(self):
         -------
         bool
         """
-        return self["zauto"]
+        return self['zauto']
 
     @zauto.setter
     def zauto(self, val):
-        self["zauto"] = val
+        self['zauto'] = val
 
     @property
     def zmax(self):
@@ -1017,11 +972,11 @@ def zmax(self):
         -------
         int|float
         """
-        return self["zmax"]
+        return self['zmax']
 
     @zmax.setter
     def zmax(self, val):
-        self["zmax"] = val
+        self['zmax'] = val
 
     @property
     def zmid(self):
@@ -1037,11 +992,11 @@ def zmid(self):
         -------
         int|float
         """
-        return self["zmid"]
+        return self['zmid']
 
     @zmid.setter
     def zmid(self, val):
-        self["zmid"] = val
+        self['zmid'] = val
 
     @property
     def zmin(self):
@@ -1056,11 +1011,11 @@ def zmin(self):
         -------
         int|float
         """
-        return self["zmin"]
+        return self['zmin']
 
     @zmin.setter
     def zmin(self, val):
-        self["zmin"] = val
+        self['zmin'] = val
 
     @property
     def zsrc(self):
@@ -1074,15 +1029,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1341,59 +1296,57 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        below=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        lat=None,
-        latsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lon=None,
-        lonsrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        radius=None,
-        radiussrc=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            below=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            lat=None,
+            latsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lon=None,
+            lonsrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            radius=None,
+            radiussrc=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Densitymapbox object
 
@@ -1668,9 +1621,9 @@ def __init__(
         -------
         Densitymapbox
         """
-        super().__init__("densitymapbox")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('densitymapbox')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1680,66 +1633,67 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Densitymapbox
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Densitymapbox`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("below", arg, below)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("lat", arg, lat)
-        self._set_property("latsrc", arg, latsrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("lon", arg, lon)
-        self._set_property("lonsrc", arg, lonsrc)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("radius", arg, radius)
-        self._set_property("radiussrc", arg, radiussrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("stream", arg, stream)
-        self._set_property("subplot", arg, subplot)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("z", arg, z)
-        self._set_property("zauto", arg, zauto)
-        self._set_property("zmax", arg, zmax)
-        self._set_property("zmid", arg, zmid)
-        self._set_property("zmin", arg, zmin)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "densitymapbox"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Densitymapbox`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('below', arg, below)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('lat', arg, lat)
+        self._set_property('latsrc', arg, latsrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('lon', arg, lon)
+        self._set_property('lonsrc', arg, lonsrc)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('radius', arg, radius)
+        self._set_property('radiussrc', arg, radiussrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('stream', arg, stream)
+        self._set_property('subplot', arg, subplot)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('z', arg, z)
+        self._set_property('zauto', arg, zauto)
+        self._set_property('zmax', arg, zmax)
+        self._set_property('zmid', arg, zmid)
+        self._set_property('zmin', arg, zmin)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'densitymapbox'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
 
diff --git a/plotly/graph_objs/_deprecations.py b/plotly/graph_objs/_deprecations.py
index aa08325deb3..c5f95fe25f1 100644
--- a/plotly/graph_objs/_deprecations.py
+++ b/plotly/graph_objs/_deprecations.py
@@ -1,723 +1,625 @@
 import warnings
 
-warnings.filterwarnings(
-    "default", r"plotly\.graph_objs\.\w+ is deprecated", DeprecationWarning
-)
+warnings.filterwarnings('default',
+                        r'plotly\.graph_objs\.\w+ is deprecated',
+                        DeprecationWarning)
 
 
 class Data(list):
     """
-        plotly.graph_objs.Data is deprecated.
-    Please replace it with a list or tuple of instances of the following types
-      - plotly.graph_objs.Scatter
-      - plotly.graph_objs.Bar
-      - plotly.graph_objs.Area
-      - plotly.graph_objs.Histogram
-      - etc.
+    plotly.graph_objs.Data is deprecated.
+Please replace it with a list or tuple of instances of the following types
+  - plotly.graph_objs.Scatter
+  - plotly.graph_objs.Bar
+  - plotly.graph_objs.Area
+  - plotly.graph_objs.Histogram
+  - etc.
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.Data is deprecated.
-        Please replace it with a list or tuple of instances of the following types
-          - plotly.graph_objs.Scatter
-          - plotly.graph_objs.Bar
-          - plotly.graph_objs.Area
-          - plotly.graph_objs.Histogram
-          - etc.
+        plotly.graph_objs.Data is deprecated.
+Please replace it with a list or tuple of instances of the following types
+  - plotly.graph_objs.Scatter
+  - plotly.graph_objs.Bar
+  - plotly.graph_objs.Area
+  - plotly.graph_objs.Histogram
+  - etc.
 
         """
-        warnings.warn(
-            """plotly.graph_objs.Data is deprecated.
+        warnings.warn("""plotly.graph_objs.Data is deprecated.
 Please replace it with a list or tuple of instances of the following types
   - plotly.graph_objs.Scatter
   - plotly.graph_objs.Bar
   - plotly.graph_objs.Area
   - plotly.graph_objs.Histogram
   - etc.
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class Annotations(list):
     """
-        plotly.graph_objs.Annotations is deprecated.
-    Please replace it with a list or tuple of instances of the following types
-      - plotly.graph_objs.layout.Annotation
-      - plotly.graph_objs.layout.scene.Annotation
+    plotly.graph_objs.Annotations is deprecated.
+Please replace it with a list or tuple of instances of the following types
+  - plotly.graph_objs.layout.Annotation
+  - plotly.graph_objs.layout.scene.Annotation
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.Annotations is deprecated.
-        Please replace it with a list or tuple of instances of the following types
-          - plotly.graph_objs.layout.Annotation
-          - plotly.graph_objs.layout.scene.Annotation
+        plotly.graph_objs.Annotations is deprecated.
+Please replace it with a list or tuple of instances of the following types
+  - plotly.graph_objs.layout.Annotation
+  - plotly.graph_objs.layout.scene.Annotation
 
         """
-        warnings.warn(
-            """plotly.graph_objs.Annotations is deprecated.
+        warnings.warn("""plotly.graph_objs.Annotations is deprecated.
 Please replace it with a list or tuple of instances of the following types
   - plotly.graph_objs.layout.Annotation
   - plotly.graph_objs.layout.scene.Annotation
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class Frames(list):
     """
-        plotly.graph_objs.Frames is deprecated.
-    Please replace it with a list or tuple of instances of the following types
-      - plotly.graph_objs.Frame
+    plotly.graph_objs.Frames is deprecated.
+Please replace it with a list or tuple of instances of the following types
+  - plotly.graph_objs.Frame
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.Frames is deprecated.
-        Please replace it with a list or tuple of instances of the following types
-          - plotly.graph_objs.Frame
+        plotly.graph_objs.Frames is deprecated.
+Please replace it with a list or tuple of instances of the following types
+  - plotly.graph_objs.Frame
 
         """
-        warnings.warn(
-            """plotly.graph_objs.Frames is deprecated.
+        warnings.warn("""plotly.graph_objs.Frames is deprecated.
 Please replace it with a list or tuple of instances of the following types
   - plotly.graph_objs.Frame
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class AngularAxis(dict):
     """
-        plotly.graph_objs.AngularAxis is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.layout.AngularAxis
-      - plotly.graph_objs.layout.polar.AngularAxis
+    plotly.graph_objs.AngularAxis is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.AngularAxis
+  - plotly.graph_objs.layout.polar.AngularAxis
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.AngularAxis is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.layout.AngularAxis
-          - plotly.graph_objs.layout.polar.AngularAxis
+        plotly.graph_objs.AngularAxis is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.AngularAxis
+  - plotly.graph_objs.layout.polar.AngularAxis
 
         """
-        warnings.warn(
-            """plotly.graph_objs.AngularAxis is deprecated.
+        warnings.warn("""plotly.graph_objs.AngularAxis is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.layout.AngularAxis
   - plotly.graph_objs.layout.polar.AngularAxis
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class Annotation(dict):
     """
-        plotly.graph_objs.Annotation is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.layout.Annotation
-      - plotly.graph_objs.layout.scene.Annotation
+    plotly.graph_objs.Annotation is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.Annotation
+  - plotly.graph_objs.layout.scene.Annotation
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.Annotation is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.layout.Annotation
-          - plotly.graph_objs.layout.scene.Annotation
+        plotly.graph_objs.Annotation is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.Annotation
+  - plotly.graph_objs.layout.scene.Annotation
 
         """
-        warnings.warn(
-            """plotly.graph_objs.Annotation is deprecated.
+        warnings.warn("""plotly.graph_objs.Annotation is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.layout.Annotation
   - plotly.graph_objs.layout.scene.Annotation
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class ColorBar(dict):
     """
-        plotly.graph_objs.ColorBar is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.scatter.marker.ColorBar
-      - plotly.graph_objs.surface.ColorBar
-      - etc.
+    plotly.graph_objs.ColorBar is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.scatter.marker.ColorBar
+  - plotly.graph_objs.surface.ColorBar
+  - etc.
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.ColorBar is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.scatter.marker.ColorBar
-          - plotly.graph_objs.surface.ColorBar
-          - etc.
+        plotly.graph_objs.ColorBar is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.scatter.marker.ColorBar
+  - plotly.graph_objs.surface.ColorBar
+  - etc.
 
         """
-        warnings.warn(
-            """plotly.graph_objs.ColorBar is deprecated.
+        warnings.warn("""plotly.graph_objs.ColorBar is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.scatter.marker.ColorBar
   - plotly.graph_objs.surface.ColorBar
   - etc.
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class Contours(dict):
     """
-        plotly.graph_objs.Contours is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.contour.Contours
-      - plotly.graph_objs.surface.Contours
-      - etc.
+    plotly.graph_objs.Contours is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.contour.Contours
+  - plotly.graph_objs.surface.Contours
+  - etc.
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.Contours is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.contour.Contours
-          - plotly.graph_objs.surface.Contours
-          - etc.
+        plotly.graph_objs.Contours is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.contour.Contours
+  - plotly.graph_objs.surface.Contours
+  - etc.
 
         """
-        warnings.warn(
-            """plotly.graph_objs.Contours is deprecated.
+        warnings.warn("""plotly.graph_objs.Contours is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.contour.Contours
   - plotly.graph_objs.surface.Contours
   - etc.
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class ErrorX(dict):
     """
-        plotly.graph_objs.ErrorX is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.scatter.ErrorX
-      - plotly.graph_objs.histogram.ErrorX
-      - etc.
+    plotly.graph_objs.ErrorX is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.scatter.ErrorX
+  - plotly.graph_objs.histogram.ErrorX
+  - etc.
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.ErrorX is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.scatter.ErrorX
-          - plotly.graph_objs.histogram.ErrorX
-          - etc.
+        plotly.graph_objs.ErrorX is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.scatter.ErrorX
+  - plotly.graph_objs.histogram.ErrorX
+  - etc.
 
         """
-        warnings.warn(
-            """plotly.graph_objs.ErrorX is deprecated.
+        warnings.warn("""plotly.graph_objs.ErrorX is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.scatter.ErrorX
   - plotly.graph_objs.histogram.ErrorX
   - etc.
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class ErrorY(dict):
     """
-        plotly.graph_objs.ErrorY is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.scatter.ErrorY
-      - plotly.graph_objs.histogram.ErrorY
-      - etc.
+    plotly.graph_objs.ErrorY is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.scatter.ErrorY
+  - plotly.graph_objs.histogram.ErrorY
+  - etc.
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.ErrorY is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.scatter.ErrorY
-          - plotly.graph_objs.histogram.ErrorY
-          - etc.
+        plotly.graph_objs.ErrorY is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.scatter.ErrorY
+  - plotly.graph_objs.histogram.ErrorY
+  - etc.
 
         """
-        warnings.warn(
-            """plotly.graph_objs.ErrorY is deprecated.
+        warnings.warn("""plotly.graph_objs.ErrorY is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.scatter.ErrorY
   - plotly.graph_objs.histogram.ErrorY
   - etc.
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class ErrorZ(dict):
     """
-        plotly.graph_objs.ErrorZ is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.scatter3d.ErrorZ
+    plotly.graph_objs.ErrorZ is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.scatter3d.ErrorZ
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.ErrorZ is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.scatter3d.ErrorZ
+        plotly.graph_objs.ErrorZ is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.scatter3d.ErrorZ
 
         """
-        warnings.warn(
-            """plotly.graph_objs.ErrorZ is deprecated.
+        warnings.warn("""plotly.graph_objs.ErrorZ is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.scatter3d.ErrorZ
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class Font(dict):
     """
-        plotly.graph_objs.Font is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.layout.Font
-      - plotly.graph_objs.layout.hoverlabel.Font
-      - etc.
+    plotly.graph_objs.Font is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.Font
+  - plotly.graph_objs.layout.hoverlabel.Font
+  - etc.
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.Font is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.layout.Font
-          - plotly.graph_objs.layout.hoverlabel.Font
-          - etc.
+        plotly.graph_objs.Font is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.Font
+  - plotly.graph_objs.layout.hoverlabel.Font
+  - etc.
 
         """
-        warnings.warn(
-            """plotly.graph_objs.Font is deprecated.
+        warnings.warn("""plotly.graph_objs.Font is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.layout.Font
   - plotly.graph_objs.layout.hoverlabel.Font
   - etc.
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class Legend(dict):
     """
-        plotly.graph_objs.Legend is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.layout.Legend
+    plotly.graph_objs.Legend is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.Legend
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.Legend is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.layout.Legend
+        plotly.graph_objs.Legend is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.Legend
 
         """
-        warnings.warn(
-            """plotly.graph_objs.Legend is deprecated.
+        warnings.warn("""plotly.graph_objs.Legend is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.layout.Legend
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class Line(dict):
     """
-        plotly.graph_objs.Line is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.scatter.Line
-      - plotly.graph_objs.layout.shape.Line
-      - etc.
+    plotly.graph_objs.Line is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.scatter.Line
+  - plotly.graph_objs.layout.shape.Line
+  - etc.
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.Line is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.scatter.Line
-          - plotly.graph_objs.layout.shape.Line
-          - etc.
+        plotly.graph_objs.Line is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.scatter.Line
+  - plotly.graph_objs.layout.shape.Line
+  - etc.
 
         """
-        warnings.warn(
-            """plotly.graph_objs.Line is deprecated.
+        warnings.warn("""plotly.graph_objs.Line is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.scatter.Line
   - plotly.graph_objs.layout.shape.Line
   - etc.
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class Margin(dict):
     """
-        plotly.graph_objs.Margin is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.layout.Margin
+    plotly.graph_objs.Margin is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.Margin
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.Margin is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.layout.Margin
+        plotly.graph_objs.Margin is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.Margin
 
         """
-        warnings.warn(
-            """plotly.graph_objs.Margin is deprecated.
+        warnings.warn("""plotly.graph_objs.Margin is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.layout.Margin
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class Marker(dict):
     """
-        plotly.graph_objs.Marker is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.scatter.Marker
-      - plotly.graph_objs.histogram.selected.Marker
-      - etc.
+    plotly.graph_objs.Marker is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.scatter.Marker
+  - plotly.graph_objs.histogram.selected.Marker
+  - etc.
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.Marker is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.scatter.Marker
-          - plotly.graph_objs.histogram.selected.Marker
-          - etc.
+        plotly.graph_objs.Marker is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.scatter.Marker
+  - plotly.graph_objs.histogram.selected.Marker
+  - etc.
 
         """
-        warnings.warn(
-            """plotly.graph_objs.Marker is deprecated.
+        warnings.warn("""plotly.graph_objs.Marker is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.scatter.Marker
   - plotly.graph_objs.histogram.selected.Marker
   - etc.
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class RadialAxis(dict):
     """
-        plotly.graph_objs.RadialAxis is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.layout.RadialAxis
-      - plotly.graph_objs.layout.polar.RadialAxis
+    plotly.graph_objs.RadialAxis is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.RadialAxis
+  - plotly.graph_objs.layout.polar.RadialAxis
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.RadialAxis is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.layout.RadialAxis
-          - plotly.graph_objs.layout.polar.RadialAxis
+        plotly.graph_objs.RadialAxis is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.RadialAxis
+  - plotly.graph_objs.layout.polar.RadialAxis
 
         """
-        warnings.warn(
-            """plotly.graph_objs.RadialAxis is deprecated.
+        warnings.warn("""plotly.graph_objs.RadialAxis is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.layout.RadialAxis
   - plotly.graph_objs.layout.polar.RadialAxis
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class Scene(dict):
     """
-        plotly.graph_objs.Scene is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.layout.Scene
+    plotly.graph_objs.Scene is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.Scene
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.Scene is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.layout.Scene
+        plotly.graph_objs.Scene is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.Scene
 
         """
-        warnings.warn(
-            """plotly.graph_objs.Scene is deprecated.
+        warnings.warn("""plotly.graph_objs.Scene is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.layout.Scene
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class Stream(dict):
     """
-        plotly.graph_objs.Stream is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.scatter.Stream
-      - plotly.graph_objs.area.Stream
+    plotly.graph_objs.Stream is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.scatter.Stream
+  - plotly.graph_objs.area.Stream
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.Stream is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.scatter.Stream
-          - plotly.graph_objs.area.Stream
+        plotly.graph_objs.Stream is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.scatter.Stream
+  - plotly.graph_objs.area.Stream
 
         """
-        warnings.warn(
-            """plotly.graph_objs.Stream is deprecated.
+        warnings.warn("""plotly.graph_objs.Stream is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.scatter.Stream
   - plotly.graph_objs.area.Stream
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class XAxis(dict):
     """
-        plotly.graph_objs.XAxis is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.layout.XAxis
-      - plotly.graph_objs.layout.scene.XAxis
+    plotly.graph_objs.XAxis is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.XAxis
+  - plotly.graph_objs.layout.scene.XAxis
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.XAxis is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.layout.XAxis
-          - plotly.graph_objs.layout.scene.XAxis
+        plotly.graph_objs.XAxis is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.XAxis
+  - plotly.graph_objs.layout.scene.XAxis
 
         """
-        warnings.warn(
-            """plotly.graph_objs.XAxis is deprecated.
+        warnings.warn("""plotly.graph_objs.XAxis is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.layout.XAxis
   - plotly.graph_objs.layout.scene.XAxis
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class YAxis(dict):
     """
-        plotly.graph_objs.YAxis is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.layout.YAxis
-      - plotly.graph_objs.layout.scene.YAxis
+    plotly.graph_objs.YAxis is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.YAxis
+  - plotly.graph_objs.layout.scene.YAxis
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.YAxis is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.layout.YAxis
-          - plotly.graph_objs.layout.scene.YAxis
+        plotly.graph_objs.YAxis is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.YAxis
+  - plotly.graph_objs.layout.scene.YAxis
 
         """
-        warnings.warn(
-            """plotly.graph_objs.YAxis is deprecated.
+        warnings.warn("""plotly.graph_objs.YAxis is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.layout.YAxis
   - plotly.graph_objs.layout.scene.YAxis
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class ZAxis(dict):
     """
-        plotly.graph_objs.ZAxis is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.layout.scene.ZAxis
+    plotly.graph_objs.ZAxis is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.scene.ZAxis
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.ZAxis is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.layout.scene.ZAxis
+        plotly.graph_objs.ZAxis is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.layout.scene.ZAxis
 
         """
-        warnings.warn(
-            """plotly.graph_objs.ZAxis is deprecated.
+        warnings.warn("""plotly.graph_objs.ZAxis is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.layout.scene.ZAxis
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class XBins(dict):
     """
-        plotly.graph_objs.XBins is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.histogram.XBins
-      - plotly.graph_objs.histogram2d.XBins
+    plotly.graph_objs.XBins is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.histogram.XBins
+  - plotly.graph_objs.histogram2d.XBins
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.XBins is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.histogram.XBins
-          - plotly.graph_objs.histogram2d.XBins
+        plotly.graph_objs.XBins is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.histogram.XBins
+  - plotly.graph_objs.histogram2d.XBins
 
         """
-        warnings.warn(
-            """plotly.graph_objs.XBins is deprecated.
+        warnings.warn("""plotly.graph_objs.XBins is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.histogram.XBins
   - plotly.graph_objs.histogram2d.XBins
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class YBins(dict):
     """
-        plotly.graph_objs.YBins is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.histogram.YBins
-      - plotly.graph_objs.histogram2d.YBins
+    plotly.graph_objs.YBins is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.histogram.YBins
+  - plotly.graph_objs.histogram2d.YBins
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.YBins is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.histogram.YBins
-          - plotly.graph_objs.histogram2d.YBins
+        plotly.graph_objs.YBins is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.histogram.YBins
+  - plotly.graph_objs.histogram2d.YBins
 
         """
-        warnings.warn(
-            """plotly.graph_objs.YBins is deprecated.
+        warnings.warn("""plotly.graph_objs.YBins is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.histogram.YBins
   - plotly.graph_objs.histogram2d.YBins
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class Trace(dict):
     """
-        plotly.graph_objs.Trace is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.Scatter
-      - plotly.graph_objs.Bar
-      - plotly.graph_objs.Area
-      - plotly.graph_objs.Histogram
-      - etc.
+    plotly.graph_objs.Trace is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.Scatter
+  - plotly.graph_objs.Bar
+  - plotly.graph_objs.Area
+  - plotly.graph_objs.Histogram
+  - etc.
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.Trace is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.Scatter
-          - plotly.graph_objs.Bar
-          - plotly.graph_objs.Area
-          - plotly.graph_objs.Histogram
-          - etc.
+        plotly.graph_objs.Trace is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.Scatter
+  - plotly.graph_objs.Bar
+  - plotly.graph_objs.Area
+  - plotly.graph_objs.Histogram
+  - etc.
 
         """
-        warnings.warn(
-            """plotly.graph_objs.Trace is deprecated.
+        warnings.warn("""plotly.graph_objs.Trace is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.Scatter
   - plotly.graph_objs.Bar
   - plotly.graph_objs.Area
   - plotly.graph_objs.Histogram
   - etc.
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
 
 
 class Histogram2dcontour(dict):
     """
-        plotly.graph_objs.Histogram2dcontour is deprecated.
-    Please replace it with one of the following more specific types
-      - plotly.graph_objs.Histogram2dContour
+    plotly.graph_objs.Histogram2dcontour is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.Histogram2dContour
 
     """
-
     def __init__(self, *args, **kwargs):
         """
-                plotly.graph_objs.Histogram2dcontour is deprecated.
-        Please replace it with one of the following more specific types
-          - plotly.graph_objs.Histogram2dContour
+        plotly.graph_objs.Histogram2dcontour is deprecated.
+Please replace it with one of the following more specific types
+  - plotly.graph_objs.Histogram2dContour
 
         """
-        warnings.warn(
-            """plotly.graph_objs.Histogram2dcontour is deprecated.
+        warnings.warn("""plotly.graph_objs.Histogram2dcontour is deprecated.
 Please replace it with one of the following more specific types
   - plotly.graph_objs.Histogram2dContour
-""",
-            DeprecationWarning,
-        )
+""", DeprecationWarning)
         super().__init__(*args, **kwargs)
+
+
diff --git a/plotly/graph_objs/_figure.py b/plotly/graph_objs/_figure.py
index e61a9b46db8..a04ec23be63 100644
--- a/plotly/graph_objs/_figure.py
+++ b/plotly/graph_objs/_figure.py
@@ -1,3 +1,5 @@
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -6,9 +8,8 @@
 
 class Figure(BaseFigure):
 
-    def __init__(
-        self, data=None, layout=None, frames=None, skip_invalid=False, **kwargs
-    ):
+    def __init__(self, data=None, layout=None,
+                 frames=None, skip_invalid=False, **kwargs):
         """
         Create a new :class:Figure instance
 
@@ -39,10 +40,10 @@ def __init__(
                              'scatterternary', 'splom', 'streamtube',
                              'sunburst', 'surface', 'table', 'treemap',
                              'violin', 'volume', 'waterfall']
-
+        
                 - All remaining properties are passed to the constructor of
                   the specified trace type
-
+        
                 (e.g. [{'type': 'scatter', ...}, {'type': 'bar, ...}])
 
         layout
@@ -71,10 +72,10 @@ def __init__(
             is invalid AND skip_invalid is False
         """
         super().__init__(data, layout, frames, skip_invalid, **kwargs)
-
+    
     def update(self, dict1=None, overwrite=False, **kwargs) -> "Figure":
-        """
-
+        '''
+        
         Update the properties of the figure with a dict and/or with
         keyword arguments.
 
@@ -119,22 +120,13 @@ def update(self, dict1=None, overwrite=False, **kwargs) -> "Figure":
         -------
         BaseFigure
             Updated figure
-
-        """
+        
+        '''
         return super().update(dict1, overwrite, **kwargs)
-
-    def update_traces(
-        self,
-        patch=None,
-        selector=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        overwrite=False,
-        **kwargs,
-    ) -> "Figure":
-        """
-
+    
+    def update_traces(self, patch=None, selector=None, row=None, col=None, secondary_y=None, overwrite=False, **kwargs) -> "Figure":
+        '''
+        
         Perform a property update operation on all traces that satisfy the
         specified selection criteria
 
@@ -184,15 +176,13 @@ def update_traces(
         -------
         self
             Returns the Figure object that the method was called on
-
-        """
-        return super().update_traces(
-            patch, selector, row, col, secondary_y, overwrite, **kwargs
-        )
-
+        
+        '''
+        return super().update_traces(patch, selector, row, col, secondary_y, overwrite, **kwargs)
+    
     def update_layout(self, dict1=None, overwrite=False, **kwargs) -> "Figure":
-        """
-
+        '''
+        
         Update the properties of the figure's layout with a dict and/or with
         keyword arguments.
 
@@ -214,15 +204,13 @@ def update_layout(self, dict1=None, overwrite=False, **kwargs) -> "Figure":
         -------
         BaseFigure
             The Figure object that the update_layout method was called on
-
-        """
+        
+        '''
         return super().update_layout(dict1, overwrite, **kwargs)
-
-    def for_each_trace(
-        self, fn, selector=None, row=None, col=None, secondary_y=None
-    ) -> "Figure":
-        """
-
+    
+    def for_each_trace(self, fn, selector=None, row=None, col=None, secondary_y=None) -> "Figure":
+        '''
+        
         Apply a function to all traces that satisfy the specified selection
         criteria
 
@@ -262,15 +250,13 @@ def for_each_trace(
         -------
         self
             Returns the Figure object that the method was called on
-
-        """
+        
+        '''
         return super().for_each_trace(fn, selector, row, col, secondary_y)
-
-    def add_trace(
-        self, trace, row=None, col=None, secondary_y=None, exclude_empty_subplots=False
-    ) -> "Figure":
-        """
-
+    
+    def add_trace(self, trace, row=None, col=None, secondary_y=None, exclude_empty_subplots=False) -> "Figure":
+        '''
+        
         Add a trace to the figure
 
         Parameters
@@ -339,20 +325,13 @@ def add_trace(
         Figure(...)
         >>> fig.add_trace(go.Scatter(x=[1,2,3], y=[2,1,2]), row=2, col=1) # doctest: +ELLIPSIS
         Figure(...)
-
-        """
+        
+        '''
         return super().add_trace(trace, row, col, secondary_y, exclude_empty_subplots)
-
-    def add_traces(
-        self,
-        data,
-        rows=None,
-        cols=None,
-        secondary_ys=None,
-        exclude_empty_subplots=False,
-    ) -> "Figure":
-        """
-
+    
+    def add_traces(self, data,rows=None,cols=None,secondary_ys=None,exclude_empty_subplots=False) -> "Figure":
+        '''
+        
         Add traces to the figure
 
         Parameters
@@ -417,319 +396,274 @@ def add_traces(
         ...                 go.Scatter(x=[1,2,3], y=[2,1,2])],
         ...                 rows=[1, 2], cols=[1, 1]) # doctest: +ELLIPSIS
         Figure(...)
-
-        """
-        return super().add_traces(
-            data, rows, cols, secondary_ys, exclude_empty_subplots
-        )
-
-    def add_vline(
-        self,
-        x,
-        row="all",
-        col="all",
-        exclude_empty_subplots=True,
-        annotation=None,
-        **kwargs,
-    ) -> "Figure":
-        """
-
-        Add a vertical line to a plot or subplot that extends infinitely in the
-        y-dimension.
-
-        Parameters
-        ----------
-        x: float or int
-            A number representing the x coordinate of the vertical line.
-        exclude_empty_subplots: Boolean
-            If True (default) do not place the shape on subplots that have no data
-            plotted on them.
-        row: None, int or 'all'
-            Subplot row for shape indexed starting at 1. If 'all', addresses all rows in
-            the specified column(s). If both row and col are None, addresses the
-            first subplot if subplots exist, or the only plot. By default is "all".
-        col: None, int or 'all'
-            Subplot column for shape indexed starting at 1. If 'all', addresses all rows in
-            the specified column(s). If both row and col are None, addresses the
-            first subplot if subplots exist, or the only plot. By default is "all".
-        annotation: dict or plotly.graph_objects.layout.Annotation. If dict(),
-            it is interpreted as describing an annotation. The annotation is
-            placed relative to the shape based on annotation_position (see
-            below) unless its x or y value has been specified for the annotation
-            passed here. xref and yref are always the same as for the added
-            shape and cannot be overridden.
-        annotation_position: a string containing optionally ["top", "bottom"]
-            and ["left", "right"] specifying where the text should be anchored
-            to on the line. Example positions are "bottom left", "right top",
-            "right", "bottom". If an annotation is added but annotation_position is
-            not specified, this defaults to "top right".
-        annotation_*: any parameters to go.layout.Annotation can be passed as
-            keywords by prefixing them with "annotation_". For example, to specify the
-            annotation text "example" you can pass annotation_text="example" as a
-            keyword argument.
-        **kwargs:
-            Any named function parameters that can be passed to 'add_shape',
-            except for x0, x1, y0, y1 or type.
-        """
-        return super().add_vline(
-            x, row, col, exclude_empty_subplots, annotation, **kwargs
-        )
-
-    def add_hline(
-        self,
-        y,
-        row="all",
-        col="all",
-        exclude_empty_subplots=True,
-        annotation=None,
-        **kwargs,
-    ) -> "Figure":
-        """
-
-        Add a horizontal line to a plot or subplot that extends infinitely in the
-        x-dimension.
-
-        Parameters
-        ----------
-        y: float or int
-            A number representing the y coordinate of the horizontal line.
-        exclude_empty_subplots: Boolean
-            If True (default) do not place the shape on subplots that have no data
-            plotted on them.
-        row: None, int or 'all'
-            Subplot row for shape indexed starting at 1. If 'all', addresses all rows in
-            the specified column(s). If both row and col are None, addresses the
-            first subplot if subplots exist, or the only plot. By default is "all".
-        col: None, int or 'all'
-            Subplot column for shape indexed starting at 1. If 'all', addresses all rows in
-            the specified column(s). If both row and col are None, addresses the
-            first subplot if subplots exist, or the only plot. By default is "all".
-        annotation: dict or plotly.graph_objects.layout.Annotation. If dict(),
-            it is interpreted as describing an annotation. The annotation is
-            placed relative to the shape based on annotation_position (see
-            below) unless its x or y value has been specified for the annotation
-            passed here. xref and yref are always the same as for the added
-            shape and cannot be overridden.
-        annotation_position: a string containing optionally ["top", "bottom"]
-            and ["left", "right"] specifying where the text should be anchored
-            to on the line. Example positions are "bottom left", "right top",
-            "right", "bottom". If an annotation is added but annotation_position is
-            not specified, this defaults to "top right".
-        annotation_*: any parameters to go.layout.Annotation can be passed as
-            keywords by prefixing them with "annotation_". For example, to specify the
-            annotation text "example" you can pass annotation_text="example" as a
-            keyword argument.
-        **kwargs:
-            Any named function parameters that can be passed to 'add_shape',
-            except for x0, x1, y0, y1 or type.
-        """
-        return super().add_hline(
-            y, row, col, exclude_empty_subplots, annotation, **kwargs
-        )
-
-    def add_vrect(
-        self,
-        x0,
-        x1,
-        row="all",
-        col="all",
-        exclude_empty_subplots=True,
-        annotation=None,
-        **kwargs,
-    ) -> "Figure":
-        """
-
-        Add a rectangle to a plot or subplot that extends infinitely in the
-        y-dimension.
-
-        Parameters
-        ----------
-        x0: float or int
-            A number representing the x coordinate of one side of the rectangle.
-        x1: float or int
-            A number representing the x coordinate of the other side of the rectangle.
-        exclude_empty_subplots: Boolean
-            If True (default) do not place the shape on subplots that have no data
-            plotted on them.
-        row: None, int or 'all'
-            Subplot row for shape indexed starting at 1. If 'all', addresses all rows in
-            the specified column(s). If both row and col are None, addresses the
-            first subplot if subplots exist, or the only plot. By default is "all".
-        col: None, int or 'all'
-            Subplot column for shape indexed starting at 1. If 'all', addresses all rows in
-            the specified column(s). If both row and col are None, addresses the
-            first subplot if subplots exist, or the only plot. By default is "all".
-        annotation: dict or plotly.graph_objects.layout.Annotation. If dict(),
-            it is interpreted as describing an annotation. The annotation is
-            placed relative to the shape based on annotation_position (see
-            below) unless its x or y value has been specified for the annotation
-            passed here. xref and yref are always the same as for the added
-            shape and cannot be overridden.
-        annotation_position: a string containing optionally ["inside", "outside"], ["top", "bottom"]
-            and ["left", "right"] specifying where the text should be anchored
-            to on the rectangle. Example positions are "outside top left", "inside
-            bottom", "right", "inside left", "inside" ("outside" is not supported). If
-            an annotation is added but annotation_position is not specified this
-            defaults to "inside top right".
-        annotation_*: any parameters to go.layout.Annotation can be passed as
-            keywords by prefixing them with "annotation_". For example, to specify the
-            annotation text "example" you can pass annotation_text="example" as a
-            keyword argument.
-        **kwargs:
-            Any named function parameters that can be passed to 'add_shape',
-            except for x0, x1, y0, y1 or type.
-        """
-        return super().add_vrect(
-            x0, x1, row, col, exclude_empty_subplots, annotation, **kwargs
-        )
-
-    def add_hrect(
-        self,
-        y0,
-        y1,
-        row="all",
-        col="all",
-        exclude_empty_subplots=True,
-        annotation=None,
-        **kwargs,
-    ) -> "Figure":
-        """
-
-        Add a rectangle to a plot or subplot that extends infinitely in the
-        x-dimension.
-
-        Parameters
-        ----------
-        y0: float or int
-            A number representing the y coordinate of one side of the rectangle.
-        y1: float or int
-            A number representing the y coordinate of the other side of the rectangle.
-        exclude_empty_subplots: Boolean
-            If True (default) do not place the shape on subplots that have no data
-            plotted on them.
-        row: None, int or 'all'
-            Subplot row for shape indexed starting at 1. If 'all', addresses all rows in
-            the specified column(s). If both row and col are None, addresses the
-            first subplot if subplots exist, or the only plot. By default is "all".
-        col: None, int or 'all'
-            Subplot column for shape indexed starting at 1. If 'all', addresses all rows in
-            the specified column(s). If both row and col are None, addresses the
-            first subplot if subplots exist, or the only plot. By default is "all".
-        annotation: dict or plotly.graph_objects.layout.Annotation. If dict(),
-            it is interpreted as describing an annotation. The annotation is
-            placed relative to the shape based on annotation_position (see
-            below) unless its x or y value has been specified for the annotation
-            passed here. xref and yref are always the same as for the added
-            shape and cannot be overridden.
-        annotation_position: a string containing optionally ["inside", "outside"], ["top", "bottom"]
-            and ["left", "right"] specifying where the text should be anchored
-            to on the rectangle. Example positions are "outside top left", "inside
-            bottom", "right", "inside left", "inside" ("outside" is not supported). If
-            an annotation is added but annotation_position is not specified this
-            defaults to "inside top right".
-        annotation_*: any parameters to go.layout.Annotation can be passed as
-            keywords by prefixing them with "annotation_". For example, to specify the
-            annotation text "example" you can pass annotation_text="example" as a
-            keyword argument.
-        **kwargs:
-            Any named function parameters that can be passed to 'add_shape',
-            except for x0, x1, y0, y1 or type.
-        """
-        return super().add_hrect(
-            y0, y1, row, col, exclude_empty_subplots, annotation, **kwargs
-        )
-
+        
+        '''
+        return super().add_traces(data,rows,cols,secondary_ys,exclude_empty_subplots)
+    
+    def add_vline(self, x,row="all",col="all",exclude_empty_subplots=True,annotation=None,**kwargs) -> "Figure":
+        '''
+        
+Add a vertical line to a plot or subplot that extends infinitely in the
+y-dimension.
+
+Parameters
+----------
+x: float or int
+    A number representing the x coordinate of the vertical line.
+exclude_empty_subplots: Boolean
+    If True (default) do not place the shape on subplots that have no data
+    plotted on them.
+row: None, int or 'all'
+    Subplot row for shape indexed starting at 1. If 'all', addresses all rows in
+    the specified column(s). If both row and col are None, addresses the
+    first subplot if subplots exist, or the only plot. By default is "all".
+col: None, int or 'all'
+    Subplot column for shape indexed starting at 1. If 'all', addresses all rows in
+    the specified column(s). If both row and col are None, addresses the
+    first subplot if subplots exist, or the only plot. By default is "all".
+annotation: dict or plotly.graph_objects.layout.Annotation. If dict(),
+    it is interpreted as describing an annotation. The annotation is
+    placed relative to the shape based on annotation_position (see
+    below) unless its x or y value has been specified for the annotation
+    passed here. xref and yref are always the same as for the added
+    shape and cannot be overridden.
+annotation_position: a string containing optionally ["top", "bottom"]
+    and ["left", "right"] specifying where the text should be anchored
+    to on the line. Example positions are "bottom left", "right top",
+    "right", "bottom". If an annotation is added but annotation_position is
+    not specified, this defaults to "top right".
+annotation_*: any parameters to go.layout.Annotation can be passed as
+    keywords by prefixing them with "annotation_". For example, to specify the
+    annotation text "example" you can pass annotation_text="example" as a
+    keyword argument.
+**kwargs:
+    Any named function parameters that can be passed to 'add_shape',
+    except for x0, x1, y0, y1 or type.
+        '''
+        return super().add_vline(x,row,col,exclude_empty_subplots,annotation,**kwargs)
+    
+    def add_hline(self, y,row="all",col="all",exclude_empty_subplots=True,annotation=None,**kwargs) -> "Figure":
+        '''
+        
+Add a horizontal line to a plot or subplot that extends infinitely in the
+x-dimension.
+
+Parameters
+----------
+y: float or int
+    A number representing the y coordinate of the horizontal line.
+exclude_empty_subplots: Boolean
+    If True (default) do not place the shape on subplots that have no data
+    plotted on them.
+row: None, int or 'all'
+    Subplot row for shape indexed starting at 1. If 'all', addresses all rows in
+    the specified column(s). If both row and col are None, addresses the
+    first subplot if subplots exist, or the only plot. By default is "all".
+col: None, int or 'all'
+    Subplot column for shape indexed starting at 1. If 'all', addresses all rows in
+    the specified column(s). If both row and col are None, addresses the
+    first subplot if subplots exist, or the only plot. By default is "all".
+annotation: dict or plotly.graph_objects.layout.Annotation. If dict(),
+    it is interpreted as describing an annotation. The annotation is
+    placed relative to the shape based on annotation_position (see
+    below) unless its x or y value has been specified for the annotation
+    passed here. xref and yref are always the same as for the added
+    shape and cannot be overridden.
+annotation_position: a string containing optionally ["top", "bottom"]
+    and ["left", "right"] specifying where the text should be anchored
+    to on the line. Example positions are "bottom left", "right top",
+    "right", "bottom". If an annotation is added but annotation_position is
+    not specified, this defaults to "top right".
+annotation_*: any parameters to go.layout.Annotation can be passed as
+    keywords by prefixing them with "annotation_". For example, to specify the
+    annotation text "example" you can pass annotation_text="example" as a
+    keyword argument.
+**kwargs:
+    Any named function parameters that can be passed to 'add_shape',
+    except for x0, x1, y0, y1 or type.
+        '''
+        return super().add_hline(y,row,col,exclude_empty_subplots,annotation,**kwargs)
+    
+    def add_vrect(self, x0,x1,row="all",col="all",exclude_empty_subplots=True,annotation=None,**kwargs) -> "Figure":
+        '''
+        
+Add a rectangle to a plot or subplot that extends infinitely in the
+y-dimension.
+
+Parameters
+----------
+x0: float or int
+    A number representing the x coordinate of one side of the rectangle.
+x1: float or int
+    A number representing the x coordinate of the other side of the rectangle.
+exclude_empty_subplots: Boolean
+    If True (default) do not place the shape on subplots that have no data
+    plotted on them.
+row: None, int or 'all'
+    Subplot row for shape indexed starting at 1. If 'all', addresses all rows in
+    the specified column(s). If both row and col are None, addresses the
+    first subplot if subplots exist, or the only plot. By default is "all".
+col: None, int or 'all'
+    Subplot column for shape indexed starting at 1. If 'all', addresses all rows in
+    the specified column(s). If both row and col are None, addresses the
+    first subplot if subplots exist, or the only plot. By default is "all".
+annotation: dict or plotly.graph_objects.layout.Annotation. If dict(),
+    it is interpreted as describing an annotation. The annotation is
+    placed relative to the shape based on annotation_position (see
+    below) unless its x or y value has been specified for the annotation
+    passed here. xref and yref are always the same as for the added
+    shape and cannot be overridden.
+annotation_position: a string containing optionally ["inside", "outside"], ["top", "bottom"]
+    and ["left", "right"] specifying where the text should be anchored
+    to on the rectangle. Example positions are "outside top left", "inside
+    bottom", "right", "inside left", "inside" ("outside" is not supported). If
+    an annotation is added but annotation_position is not specified this
+    defaults to "inside top right".
+annotation_*: any parameters to go.layout.Annotation can be passed as
+    keywords by prefixing them with "annotation_". For example, to specify the
+    annotation text "example" you can pass annotation_text="example" as a
+    keyword argument.
+**kwargs:
+    Any named function parameters that can be passed to 'add_shape',
+    except for x0, x1, y0, y1 or type.
+        '''
+        return super().add_vrect(x0,x1,row,col,exclude_empty_subplots,annotation,**kwargs)
+    
+    def add_hrect(self, y0,y1,row="all",col="all",exclude_empty_subplots=True,annotation=None,**kwargs) -> "Figure":
+        '''
+        
+Add a rectangle to a plot or subplot that extends infinitely in the
+x-dimension.
+
+Parameters
+----------
+y0: float or int
+    A number representing the y coordinate of one side of the rectangle.
+y1: float or int
+    A number representing the y coordinate of the other side of the rectangle.
+exclude_empty_subplots: Boolean
+    If True (default) do not place the shape on subplots that have no data
+    plotted on them.
+row: None, int or 'all'
+    Subplot row for shape indexed starting at 1. If 'all', addresses all rows in
+    the specified column(s). If both row and col are None, addresses the
+    first subplot if subplots exist, or the only plot. By default is "all".
+col: None, int or 'all'
+    Subplot column for shape indexed starting at 1. If 'all', addresses all rows in
+    the specified column(s). If both row and col are None, addresses the
+    first subplot if subplots exist, or the only plot. By default is "all".
+annotation: dict or plotly.graph_objects.layout.Annotation. If dict(),
+    it is interpreted as describing an annotation. The annotation is
+    placed relative to the shape based on annotation_position (see
+    below) unless its x or y value has been specified for the annotation
+    passed here. xref and yref are always the same as for the added
+    shape and cannot be overridden.
+annotation_position: a string containing optionally ["inside", "outside"], ["top", "bottom"]
+    and ["left", "right"] specifying where the text should be anchored
+    to on the rectangle. Example positions are "outside top left", "inside
+    bottom", "right", "inside left", "inside" ("outside" is not supported). If
+    an annotation is added but annotation_position is not specified this
+    defaults to "inside top right".
+annotation_*: any parameters to go.layout.Annotation can be passed as
+    keywords by prefixing them with "annotation_". For example, to specify the
+    annotation text "example" you can pass annotation_text="example" as a
+    keyword argument.
+**kwargs:
+    Any named function parameters that can be passed to 'add_shape',
+    except for x0, x1, y0, y1 or type.
+        '''
+        return super().add_hrect(y0,y1,row,col,exclude_empty_subplots,annotation,**kwargs)
+    
     def set_subplots(self, rows=None, cols=None, **make_subplots_args) -> "Figure":
-        """
-
+        '''
+        
         Add subplots to this figure. If the figure already contains subplots,
         then this throws an error. Accepts any keyword arguments that
         plotly.subplots.make_subplots accepts.
-
-        """
+        
+        '''
         return super().set_subplots(rows, cols, **make_subplots_args)
-
-    def add_bar(
-        self,
-        alignmentgroup=None,
-        base=None,
-        basesrc=None,
-        cliponaxis=None,
-        constraintext=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        error_x=None,
-        error_y=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextanchor=None,
-        insidetextfont=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        offset=None,
-        offsetgroup=None,
-        offsetsrc=None,
-        opacity=None,
-        orientation=None,
-        outsidetextfont=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textangle=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        width=None,
-        widthsrc=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+    
+    def add_bar(self,
+            alignmentgroup=None,
+            base=None,
+            basesrc=None,
+            cliponaxis=None,
+            constraintext=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            error_x=None,
+            error_y=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextanchor=None,
+            insidetextfont=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            offset=None,
+            offsetgroup=None,
+            offsetsrc=None,
+            opacity=None,
+            orientation=None,
+            outsidetextfont=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textangle=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            width=None,
+            widthsrc=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Bar trace
 
@@ -1138,139 +1072,137 @@ def add_bar(
         Figure
         """
         from plotly.graph_objs import Bar
-
         new_trace = Bar(
-            alignmentgroup=alignmentgroup,
-            base=base,
-            basesrc=basesrc,
-            cliponaxis=cliponaxis,
-            constraintext=constraintext,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dx=dx,
-            dy=dy,
-            error_x=error_x,
-            error_y=error_y,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            insidetextanchor=insidetextanchor,
-            insidetextfont=insidetextfont,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            offset=offset,
-            offsetgroup=offsetgroup,
-            offsetsrc=offsetsrc,
-            opacity=opacity,
-            orientation=orientation,
-            outsidetextfont=outsidetextfont,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textangle=textangle,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            width=width,
-            widthsrc=widthsrc,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            yperiod=yperiod,
-            yperiod0=yperiod0,
-            yperiodalignment=yperiodalignment,
-            ysrc=ysrc,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_barpolar(
-        self,
-        base=None,
-        basesrc=None,
-        customdata=None,
-        customdatasrc=None,
-        dr=None,
-        dtheta=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        offset=None,
-        offsetsrc=None,
-        opacity=None,
-        r=None,
-        r0=None,
-        rsrc=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textsrc=None,
-        theta=None,
-        theta0=None,
-        thetasrc=None,
-        thetaunit=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        width=None,
-        widthsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                alignmentgroup=alignmentgroup,
+                base=base,
+                basesrc=basesrc,
+                cliponaxis=cliponaxis,
+                constraintext=constraintext,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dx=dx,
+                dy=dy,
+                error_x=error_x,
+                error_y=error_y,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                insidetextanchor=insidetextanchor,
+                insidetextfont=insidetextfont,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                offset=offset,
+                offsetgroup=offsetgroup,
+                offsetsrc=offsetsrc,
+                opacity=opacity,
+                orientation=orientation,
+                outsidetextfont=outsidetextfont,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textangle=textangle,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                width=width,
+                widthsrc=widthsrc,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                yperiod=yperiod,
+                yperiod0=yperiod0,
+                yperiodalignment=yperiodalignment,
+                ysrc=ysrc,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_barpolar(self,
+            base=None,
+            basesrc=None,
+            customdata=None,
+            customdatasrc=None,
+            dr=None,
+            dtheta=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            offset=None,
+            offsetsrc=None,
+            opacity=None,
+            r=None,
+            r0=None,
+            rsrc=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textsrc=None,
+            theta=None,
+            theta0=None,
+            thetasrc=None,
+            thetaunit=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            width=None,
+            widthsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Barpolar trace
 
@@ -1512,152 +1444,150 @@ def add_barpolar(
         Figure
         """
         from plotly.graph_objs import Barpolar
-
         new_trace = Barpolar(
-            base=base,
-            basesrc=basesrc,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dr=dr,
-            dtheta=dtheta,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            offset=offset,
-            offsetsrc=offsetsrc,
-            opacity=opacity,
-            r=r,
-            r0=r0,
-            rsrc=rsrc,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textsrc=textsrc,
-            theta=theta,
-            theta0=theta0,
-            thetasrc=thetasrc,
-            thetaunit=thetaunit,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            width=width,
-            widthsrc=widthsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_box(
-        self,
-        alignmentgroup=None,
-        boxmean=None,
-        boxpoints=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        jitter=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        lowerfence=None,
-        lowerfencesrc=None,
-        marker=None,
-        mean=None,
-        meansrc=None,
-        median=None,
-        mediansrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        notched=None,
-        notchspan=None,
-        notchspansrc=None,
-        notchwidth=None,
-        offsetgroup=None,
-        opacity=None,
-        orientation=None,
-        pointpos=None,
-        q1=None,
-        q1src=None,
-        q3=None,
-        q3src=None,
-        quartilemethod=None,
-        sd=None,
-        sdmultiple=None,
-        sdsrc=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        showwhiskers=None,
-        sizemode=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        upperfence=None,
-        upperfencesrc=None,
-        visible=None,
-        whiskerwidth=None,
-        width=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                base=base,
+                basesrc=basesrc,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dr=dr,
+                dtheta=dtheta,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                offset=offset,
+                offsetsrc=offsetsrc,
+                opacity=opacity,
+                r=r,
+                r0=r0,
+                rsrc=rsrc,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textsrc=textsrc,
+                theta=theta,
+                theta0=theta0,
+                thetasrc=thetasrc,
+                thetaunit=thetaunit,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                width=width,
+                widthsrc=widthsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_box(self,
+            alignmentgroup=None,
+            boxmean=None,
+            boxpoints=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            jitter=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            lowerfence=None,
+            lowerfencesrc=None,
+            marker=None,
+            mean=None,
+            meansrc=None,
+            median=None,
+            mediansrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            notched=None,
+            notchspan=None,
+            notchspansrc=None,
+            notchwidth=None,
+            offsetgroup=None,
+            opacity=None,
+            orientation=None,
+            pointpos=None,
+            q1=None,
+            q1src=None,
+            q3=None,
+            q3src=None,
+            quartilemethod=None,
+            sd=None,
+            sdmultiple=None,
+            sdsrc=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            showwhiskers=None,
+            sizemode=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            upperfence=None,
+            upperfencesrc=None,
+            visible=None,
+            whiskerwidth=None,
+            width=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Box trace
 
@@ -2159,154 +2089,152 @@ def add_box(
         Figure
         """
         from plotly.graph_objs import Box
-
         new_trace = Box(
-            alignmentgroup=alignmentgroup,
-            boxmean=boxmean,
-            boxpoints=boxpoints,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dx=dx,
-            dy=dy,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoveron=hoveron,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            jitter=jitter,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            lowerfence=lowerfence,
-            lowerfencesrc=lowerfencesrc,
-            marker=marker,
-            mean=mean,
-            meansrc=meansrc,
-            median=median,
-            mediansrc=mediansrc,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            notched=notched,
-            notchspan=notchspan,
-            notchspansrc=notchspansrc,
-            notchwidth=notchwidth,
-            offsetgroup=offsetgroup,
-            opacity=opacity,
-            orientation=orientation,
-            pointpos=pointpos,
-            q1=q1,
-            q1src=q1src,
-            q3=q3,
-            q3src=q3src,
-            quartilemethod=quartilemethod,
-            sd=sd,
-            sdmultiple=sdmultiple,
-            sdsrc=sdsrc,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            showwhiskers=showwhiskers,
-            sizemode=sizemode,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            upperfence=upperfence,
-            upperfencesrc=upperfencesrc,
-            visible=visible,
-            whiskerwidth=whiskerwidth,
-            width=width,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            yperiod=yperiod,
-            yperiod0=yperiod0,
-            yperiodalignment=yperiodalignment,
-            ysrc=ysrc,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_candlestick(
-        self,
-        close=None,
-        closesrc=None,
-        customdata=None,
-        customdatasrc=None,
-        decreasing=None,
-        high=None,
-        highsrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        increasing=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        low=None,
-        lowsrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        open=None,
-        opensrc=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        whiskerwidth=None,
-        x=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        yaxis=None,
-        yhoverformat=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                alignmentgroup=alignmentgroup,
+                boxmean=boxmean,
+                boxpoints=boxpoints,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dx=dx,
+                dy=dy,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoveron=hoveron,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                jitter=jitter,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                lowerfence=lowerfence,
+                lowerfencesrc=lowerfencesrc,
+                marker=marker,
+                mean=mean,
+                meansrc=meansrc,
+                median=median,
+                mediansrc=mediansrc,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                notched=notched,
+                notchspan=notchspan,
+                notchspansrc=notchspansrc,
+                notchwidth=notchwidth,
+                offsetgroup=offsetgroup,
+                opacity=opacity,
+                orientation=orientation,
+                pointpos=pointpos,
+                q1=q1,
+                q1src=q1src,
+                q3=q3,
+                q3src=q3src,
+                quartilemethod=quartilemethod,
+                sd=sd,
+                sdmultiple=sdmultiple,
+                sdsrc=sdsrc,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                showwhiskers=showwhiskers,
+                sizemode=sizemode,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                upperfence=upperfence,
+                upperfencesrc=upperfencesrc,
+                visible=visible,
+                whiskerwidth=whiskerwidth,
+                width=width,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                yperiod=yperiod,
+                yperiod0=yperiod0,
+                yperiodalignment=yperiodalignment,
+                ysrc=ysrc,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_candlestick(self,
+            close=None,
+            closesrc=None,
+            customdata=None,
+            customdatasrc=None,
+            decreasing=None,
+            high=None,
+            highsrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            increasing=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            low=None,
+            lowsrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            open=None,
+            opensrc=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            whiskerwidth=None,
+            x=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            yaxis=None,
+            yhoverformat=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Candlestick trace
 
@@ -2572,105 +2500,103 @@ def add_candlestick(
         Figure
         """
         from plotly.graph_objs import Candlestick
-
         new_trace = Candlestick(
-            close=close,
-            closesrc=closesrc,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            decreasing=decreasing,
-            high=high,
-            highsrc=highsrc,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            increasing=increasing,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            low=low,
-            lowsrc=lowsrc,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            open=open,
-            opensrc=opensrc,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            whiskerwidth=whiskerwidth,
-            x=x,
-            xaxis=xaxis,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            yaxis=yaxis,
-            yhoverformat=yhoverformat,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_carpet(
-        self,
-        a=None,
-        a0=None,
-        aaxis=None,
-        asrc=None,
-        b=None,
-        b0=None,
-        baxis=None,
-        bsrc=None,
-        carpet=None,
-        cheaterslope=None,
-        color=None,
-        customdata=None,
-        customdatasrc=None,
-        da=None,
-        db=None,
-        font=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        stream=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xaxis=None,
-        xsrc=None,
-        y=None,
-        yaxis=None,
-        ysrc=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                close=close,
+                closesrc=closesrc,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                decreasing=decreasing,
+                high=high,
+                highsrc=highsrc,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                increasing=increasing,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                low=low,
+                lowsrc=lowsrc,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                open=open,
+                opensrc=opensrc,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                whiskerwidth=whiskerwidth,
+                x=x,
+                xaxis=xaxis,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                yaxis=yaxis,
+                yhoverformat=yhoverformat,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_carpet(self,
+            a=None,
+            a0=None,
+            aaxis=None,
+            asrc=None,
+            b=None,
+            b0=None,
+            baxis=None,
+            bsrc=None,
+            carpet=None,
+            cheaterslope=None,
+            color=None,
+            customdata=None,
+            customdatasrc=None,
+            da=None,
+            db=None,
+            font=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            stream=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xaxis=None,
+            xsrc=None,
+            y=None,
+            yaxis=None,
+            ysrc=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Carpet trace
 
@@ -2871,103 +2797,101 @@ def add_carpet(
         Figure
         """
         from plotly.graph_objs import Carpet
-
         new_trace = Carpet(
-            a=a,
-            a0=a0,
-            aaxis=aaxis,
-            asrc=asrc,
-            b=b,
-            b0=b0,
-            baxis=baxis,
-            bsrc=bsrc,
-            carpet=carpet,
-            cheaterslope=cheaterslope,
-            color=color,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            da=da,
-            db=db,
-            font=font,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            stream=stream,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x=x,
-            xaxis=xaxis,
-            xsrc=xsrc,
-            y=y,
-            yaxis=yaxis,
-            ysrc=ysrc,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_choropleth(
-        self,
-        autocolorscale=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        featureidkey=None,
-        geo=None,
-        geojson=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        locationmode=None,
-        locations=None,
-        locationssrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        reversescale=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                a=a,
+                a0=a0,
+                aaxis=aaxis,
+                asrc=asrc,
+                b=b,
+                b0=b0,
+                baxis=baxis,
+                bsrc=bsrc,
+                carpet=carpet,
+                cheaterslope=cheaterslope,
+                color=color,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                da=da,
+                db=db,
+                font=font,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                stream=stream,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x=x,
+                xaxis=xaxis,
+                xsrc=xsrc,
+                y=y,
+                yaxis=yaxis,
+                ysrc=ysrc,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_choropleth(self,
+            autocolorscale=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            featureidkey=None,
+            geo=None,
+            geojson=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            locationmode=None,
+            locations=None,
+            locationssrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            reversescale=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Choropleth trace
 
@@ -3245,114 +3169,112 @@ def add_choropleth(
         Figure
         """
         from plotly.graph_objs import Choropleth
-
         new_trace = Choropleth(
-            autocolorscale=autocolorscale,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            featureidkey=featureidkey,
-            geo=geo,
-            geojson=geojson,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            locationmode=locationmode,
-            locations=locations,
-            locationssrc=locationssrc,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            reversescale=reversescale,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            z=z,
-            zauto=zauto,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_choroplethmap(
-        self,
-        autocolorscale=None,
-        below=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        featureidkey=None,
-        geojson=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        locations=None,
-        locationssrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        reversescale=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                autocolorscale=autocolorscale,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                featureidkey=featureidkey,
+                geo=geo,
+                geojson=geojson,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                locationmode=locationmode,
+                locations=locations,
+                locationssrc=locationssrc,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                reversescale=reversescale,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                z=z,
+                zauto=zauto,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_choroplethmap(self,
+            autocolorscale=None,
+            below=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            featureidkey=None,
+            geojson=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            locations=None,
+            locationssrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            reversescale=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Choroplethmap trace
 
@@ -3628,114 +3550,112 @@ def add_choroplethmap(
         Figure
         """
         from plotly.graph_objs import Choroplethmap
-
         new_trace = Choroplethmap(
-            autocolorscale=autocolorscale,
-            below=below,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            featureidkey=featureidkey,
-            geojson=geojson,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            locations=locations,
-            locationssrc=locationssrc,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            reversescale=reversescale,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            z=z,
-            zauto=zauto,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_choroplethmapbox(
-        self,
-        autocolorscale=None,
-        below=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        featureidkey=None,
-        geojson=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        locations=None,
-        locationssrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        reversescale=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                autocolorscale=autocolorscale,
+                below=below,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                featureidkey=featureidkey,
+                geojson=geojson,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                locations=locations,
+                locationssrc=locationssrc,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                reversescale=reversescale,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                z=z,
+                zauto=zauto,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_choroplethmapbox(self,
+            autocolorscale=None,
+            below=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            featureidkey=None,
+            geojson=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            locations=None,
+            locationssrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            reversescale=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Choroplethmapbox trace
 
@@ -4020,127 +3940,125 @@ def add_choroplethmapbox(
         Figure
         """
         from plotly.graph_objs import Choroplethmapbox
-
         new_trace = Choroplethmapbox(
-            autocolorscale=autocolorscale,
-            below=below,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            featureidkey=featureidkey,
-            geojson=geojson,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            locations=locations,
-            locationssrc=locationssrc,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            reversescale=reversescale,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            z=z,
-            zauto=zauto,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_cone(
-        self,
-        anchor=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        sizemode=None,
-        sizeref=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        u=None,
-        uhoverformat=None,
-        uid=None,
-        uirevision=None,
-        usrc=None,
-        v=None,
-        vhoverformat=None,
-        visible=None,
-        vsrc=None,
-        w=None,
-        whoverformat=None,
-        wsrc=None,
-        x=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zhoverformat=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                autocolorscale=autocolorscale,
+                below=below,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                featureidkey=featureidkey,
+                geojson=geojson,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                locations=locations,
+                locationssrc=locationssrc,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                reversescale=reversescale,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                z=z,
+                zauto=zauto,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_cone(self,
+            anchor=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            sizemode=None,
+            sizeref=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            u=None,
+            uhoverformat=None,
+            uid=None,
+            uirevision=None,
+            usrc=None,
+            v=None,
+            vhoverformat=None,
+            visible=None,
+            vsrc=None,
+            w=None,
+            whoverformat=None,
+            wsrc=None,
+            x=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zhoverformat=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Cone trace
 
@@ -4504,153 +4422,151 @@ def add_cone(
         Figure
         """
         from plotly.graph_objs import Cone
-
         new_trace = Cone(
-            anchor=anchor,
-            autocolorscale=autocolorscale,
-            cauto=cauto,
-            cmax=cmax,
-            cmid=cmid,
-            cmin=cmin,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            lighting=lighting,
-            lightposition=lightposition,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            reversescale=reversescale,
-            scene=scene,
-            showlegend=showlegend,
-            showscale=showscale,
-            sizemode=sizemode,
-            sizeref=sizeref,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            u=u,
-            uhoverformat=uhoverformat,
-            uid=uid,
-            uirevision=uirevision,
-            usrc=usrc,
-            v=v,
-            vhoverformat=vhoverformat,
-            visible=visible,
-            vsrc=vsrc,
-            w=w,
-            whoverformat=whoverformat,
-            wsrc=wsrc,
-            x=x,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zhoverformat=zhoverformat,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_contour(
-        self,
-        autocolorscale=None,
-        autocontour=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        connectgaps=None,
-        contours=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoverongaps=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        ncontours=None,
-        opacity=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textsrc=None,
-        texttemplate=None,
-        transpose=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        xtype=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        ytype=None,
-        z=None,
-        zauto=None,
-        zhoverformat=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zorder=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                anchor=anchor,
+                autocolorscale=autocolorscale,
+                cauto=cauto,
+                cmax=cmax,
+                cmid=cmid,
+                cmin=cmin,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                lighting=lighting,
+                lightposition=lightposition,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                reversescale=reversescale,
+                scene=scene,
+                showlegend=showlegend,
+                showscale=showscale,
+                sizemode=sizemode,
+                sizeref=sizeref,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                u=u,
+                uhoverformat=uhoverformat,
+                uid=uid,
+                uirevision=uirevision,
+                usrc=usrc,
+                v=v,
+                vhoverformat=vhoverformat,
+                visible=visible,
+                vsrc=vsrc,
+                w=w,
+                whoverformat=whoverformat,
+                wsrc=wsrc,
+                x=x,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zhoverformat=zhoverformat,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_contour(self,
+            autocolorscale=None,
+            autocontour=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            connectgaps=None,
+            contours=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoverongaps=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            ncontours=None,
+            opacity=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textsrc=None,
+            texttemplate=None,
+            transpose=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            xtype=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            ytype=None,
+            z=None,
+            zauto=None,
+            zhoverformat=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zorder=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Contour trace
 
@@ -5068,146 +4984,144 @@ def add_contour(
         Figure
         """
         from plotly.graph_objs import Contour
-
         new_trace = Contour(
-            autocolorscale=autocolorscale,
-            autocontour=autocontour,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            connectgaps=connectgaps,
-            contours=contours,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dx=dx,
-            dy=dy,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoverongaps=hoverongaps,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            ncontours=ncontours,
-            opacity=opacity,
-            reversescale=reversescale,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            transpose=transpose,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            xtype=xtype,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            yperiod=yperiod,
-            yperiod0=yperiod0,
-            yperiodalignment=yperiodalignment,
-            ysrc=ysrc,
-            ytype=ytype,
-            z=z,
-            zauto=zauto,
-            zhoverformat=zhoverformat,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zorder=zorder,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_contourcarpet(
-        self,
-        a=None,
-        a0=None,
-        asrc=None,
-        atype=None,
-        autocolorscale=None,
-        autocontour=None,
-        b=None,
-        b0=None,
-        bsrc=None,
-        btype=None,
-        carpet=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        contours=None,
-        customdata=None,
-        customdatasrc=None,
-        da=None,
-        db=None,
-        fillcolor=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        ncontours=None,
-        opacity=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        transpose=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        xaxis=None,
-        yaxis=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zorder=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                autocolorscale=autocolorscale,
+                autocontour=autocontour,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                connectgaps=connectgaps,
+                contours=contours,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dx=dx,
+                dy=dy,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoverongaps=hoverongaps,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                ncontours=ncontours,
+                opacity=opacity,
+                reversescale=reversescale,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                transpose=transpose,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                xtype=xtype,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                yperiod=yperiod,
+                yperiod0=yperiod0,
+                yperiodalignment=yperiodalignment,
+                ysrc=ysrc,
+                ytype=ytype,
+                z=z,
+                zauto=zauto,
+                zhoverformat=zhoverformat,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zorder=zorder,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_contourcarpet(self,
+            a=None,
+            a0=None,
+            asrc=None,
+            atype=None,
+            autocolorscale=None,
+            autocontour=None,
+            b=None,
+            b0=None,
+            bsrc=None,
+            btype=None,
+            carpet=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            contours=None,
+            customdata=None,
+            customdatasrc=None,
+            da=None,
+            db=None,
+            fillcolor=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            ncontours=None,
+            opacity=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            transpose=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            xaxis=None,
+            yaxis=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zorder=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Contourcarpet trace
 
@@ -5484,119 +5398,117 @@ def add_contourcarpet(
         Figure
         """
         from plotly.graph_objs import Contourcarpet
-
         new_trace = Contourcarpet(
-            a=a,
-            a0=a0,
-            asrc=asrc,
-            atype=atype,
-            autocolorscale=autocolorscale,
-            autocontour=autocontour,
-            b=b,
-            b0=b0,
-            bsrc=bsrc,
-            btype=btype,
-            carpet=carpet,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            contours=contours,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            da=da,
-            db=db,
-            fillcolor=fillcolor,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            ncontours=ncontours,
-            opacity=opacity,
-            reversescale=reversescale,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            transpose=transpose,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            xaxis=xaxis,
-            yaxis=yaxis,
-            z=z,
-            zauto=zauto,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zorder=zorder,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_densitymap(
-        self,
-        autocolorscale=None,
-        below=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        lat=None,
-        latsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lon=None,
-        lonsrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        radius=None,
-        radiussrc=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                a=a,
+                a0=a0,
+                asrc=asrc,
+                atype=atype,
+                autocolorscale=autocolorscale,
+                autocontour=autocontour,
+                b=b,
+                b0=b0,
+                bsrc=bsrc,
+                btype=btype,
+                carpet=carpet,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                contours=contours,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                da=da,
+                db=db,
+                fillcolor=fillcolor,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                ncontours=ncontours,
+                opacity=opacity,
+                reversescale=reversescale,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                transpose=transpose,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                xaxis=xaxis,
+                yaxis=yaxis,
+                z=z,
+                zauto=zauto,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zorder=zorder,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_densitymap(self,
+            autocolorscale=None,
+            below=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            lat=None,
+            latsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lon=None,
+            lonsrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            radius=None,
+            radiussrc=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Densitymap trace
 
@@ -5870,112 +5782,110 @@ def add_densitymap(
         Figure
         """
         from plotly.graph_objs import Densitymap
-
         new_trace = Densitymap(
-            autocolorscale=autocolorscale,
-            below=below,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            lat=lat,
-            latsrc=latsrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            lon=lon,
-            lonsrc=lonsrc,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            radius=radius,
-            radiussrc=radiussrc,
-            reversescale=reversescale,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            z=z,
-            zauto=zauto,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_densitymapbox(
-        self,
-        autocolorscale=None,
-        below=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        lat=None,
-        latsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lon=None,
-        lonsrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        radius=None,
-        radiussrc=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                autocolorscale=autocolorscale,
+                below=below,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                lat=lat,
+                latsrc=latsrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                lon=lon,
+                lonsrc=lonsrc,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                radius=radius,
+                radiussrc=radiussrc,
+                reversescale=reversescale,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                z=z,
+                zauto=zauto,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_densitymapbox(self,
+            autocolorscale=None,
+            below=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            lat=None,
+            latsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lon=None,
+            lonsrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            radius=None,
+            radiussrc=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Densitymapbox trace
 
@@ -6258,132 +6168,130 @@ def add_densitymapbox(
         Figure
         """
         from plotly.graph_objs import Densitymapbox
-
         new_trace = Densitymapbox(
-            autocolorscale=autocolorscale,
-            below=below,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            lat=lat,
-            latsrc=latsrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            lon=lon,
-            lonsrc=lonsrc,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            radius=radius,
-            radiussrc=radiussrc,
-            reversescale=reversescale,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            z=z,
-            zauto=zauto,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_funnel(
-        self,
-        alignmentgroup=None,
-        cliponaxis=None,
-        connector=None,
-        constraintext=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextanchor=None,
-        insidetextfont=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        offset=None,
-        offsetgroup=None,
-        opacity=None,
-        orientation=None,
-        outsidetextfont=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textangle=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        width=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                autocolorscale=autocolorscale,
+                below=below,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                lat=lat,
+                latsrc=latsrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                lon=lon,
+                lonsrc=lonsrc,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                radius=radius,
+                radiussrc=radiussrc,
+                reversescale=reversescale,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                z=z,
+                zauto=zauto,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_funnel(self,
+            alignmentgroup=None,
+            cliponaxis=None,
+            connector=None,
+            constraintext=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextanchor=None,
+            insidetextfont=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            offset=None,
+            offsetgroup=None,
+            opacity=None,
+            orientation=None,
+            outsidetextfont=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textangle=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            width=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Funnel trace
 
@@ -6776,130 +6684,128 @@ def add_funnel(
         Figure
         """
         from plotly.graph_objs import Funnel
-
         new_trace = Funnel(
-            alignmentgroup=alignmentgroup,
-            cliponaxis=cliponaxis,
-            connector=connector,
-            constraintext=constraintext,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dx=dx,
-            dy=dy,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            insidetextanchor=insidetextanchor,
-            insidetextfont=insidetextfont,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            offset=offset,
-            offsetgroup=offsetgroup,
-            opacity=opacity,
-            orientation=orientation,
-            outsidetextfont=outsidetextfont,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textangle=textangle,
-            textfont=textfont,
-            textinfo=textinfo,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            width=width,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            yhoverformat=yhoverformat,
-            yperiod=yperiod,
-            yperiod0=yperiod0,
-            yperiodalignment=yperiodalignment,
-            ysrc=ysrc,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_funnelarea(
-        self,
-        aspectratio=None,
-        baseratio=None,
-        customdata=None,
-        customdatasrc=None,
-        dlabel=None,
-        domain=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextfont=None,
-        label0=None,
-        labels=None,
-        labelssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        scalegroup=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        title=None,
-        uid=None,
-        uirevision=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                alignmentgroup=alignmentgroup,
+                cliponaxis=cliponaxis,
+                connector=connector,
+                constraintext=constraintext,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dx=dx,
+                dy=dy,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                insidetextanchor=insidetextanchor,
+                insidetextfont=insidetextfont,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                offset=offset,
+                offsetgroup=offsetgroup,
+                opacity=opacity,
+                orientation=orientation,
+                outsidetextfont=outsidetextfont,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textangle=textangle,
+                textfont=textfont,
+                textinfo=textinfo,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                width=width,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                yhoverformat=yhoverformat,
+                yperiod=yperiod,
+                yperiod0=yperiod0,
+                yperiodalignment=yperiodalignment,
+                ysrc=ysrc,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_funnelarea(self,
+            aspectratio=None,
+            baseratio=None,
+            customdata=None,
+            customdatasrc=None,
+            dlabel=None,
+            domain=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextfont=None,
+            label0=None,
+            labels=None,
+            labelssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            scalegroup=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            title=None,
+            uid=None,
+            uirevision=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Funnelarea trace
 
@@ -7158,136 +7064,134 @@ def add_funnelarea(
         Figure
         """
         from plotly.graph_objs import Funnelarea
-
         new_trace = Funnelarea(
-            aspectratio=aspectratio,
-            baseratio=baseratio,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dlabel=dlabel,
-            domain=domain,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            insidetextfont=insidetextfont,
-            label0=label0,
-            labels=labels,
-            labelssrc=labelssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            scalegroup=scalegroup,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textinfo=textinfo,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            title=title,
-            uid=uid,
-            uirevision=uirevision,
-            values=values,
-            valuessrc=valuessrc,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_heatmap(
-        self,
-        autocolorscale=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoverongaps=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textsrc=None,
-        texttemplate=None,
-        transpose=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xgap=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        xtype=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        ygap=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        ytype=None,
-        z=None,
-        zauto=None,
-        zhoverformat=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zorder=None,
-        zsmooth=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                aspectratio=aspectratio,
+                baseratio=baseratio,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dlabel=dlabel,
+                domain=domain,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                insidetextfont=insidetextfont,
+                label0=label0,
+                labels=labels,
+                labelssrc=labelssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                scalegroup=scalegroup,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textinfo=textinfo,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                title=title,
+                uid=uid,
+                uirevision=uirevision,
+                values=values,
+                valuessrc=valuessrc,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_heatmap(self,
+            autocolorscale=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoverongaps=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textsrc=None,
+            texttemplate=None,
+            transpose=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xgap=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            xtype=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            ygap=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            ytype=None,
+            z=None,
+            zauto=None,
+            zhoverformat=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zorder=None,
+            zsmooth=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Heatmap trace
 
@@ -7697,156 +7601,154 @@ def add_heatmap(
         Figure
         """
         from plotly.graph_objs import Heatmap
-
         new_trace = Heatmap(
-            autocolorscale=autocolorscale,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dx=dx,
-            dy=dy,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoverongaps=hoverongaps,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            reversescale=reversescale,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            transpose=transpose,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xcalendar=xcalendar,
-            xgap=xgap,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            xtype=xtype,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            ycalendar=ycalendar,
-            ygap=ygap,
-            yhoverformat=yhoverformat,
-            yperiod=yperiod,
-            yperiod0=yperiod0,
-            yperiodalignment=yperiodalignment,
-            ysrc=ysrc,
-            ytype=ytype,
-            z=z,
-            zauto=zauto,
-            zhoverformat=zhoverformat,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zorder=zorder,
-            zsmooth=zsmooth,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_histogram(
-        self,
-        alignmentgroup=None,
-        autobinx=None,
-        autobiny=None,
-        bingroup=None,
-        cliponaxis=None,
-        constraintext=None,
-        cumulative=None,
-        customdata=None,
-        customdatasrc=None,
-        error_x=None,
-        error_y=None,
-        histfunc=None,
-        histnorm=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextanchor=None,
-        insidetextfont=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        nbinsx=None,
-        nbinsy=None,
-        offsetgroup=None,
-        opacity=None,
-        orientation=None,
-        outsidetextfont=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textangle=None,
-        textfont=None,
-        textposition=None,
-        textsrc=None,
-        texttemplate=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        x=None,
-        xaxis=None,
-        xbins=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yaxis=None,
-        ybins=None,
-        ycalendar=None,
-        yhoverformat=None,
-        ysrc=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                autocolorscale=autocolorscale,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dx=dx,
+                dy=dy,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoverongaps=hoverongaps,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                reversescale=reversescale,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                transpose=transpose,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xcalendar=xcalendar,
+                xgap=xgap,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                xtype=xtype,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                ycalendar=ycalendar,
+                ygap=ygap,
+                yhoverformat=yhoverformat,
+                yperiod=yperiod,
+                yperiod0=yperiod0,
+                yperiodalignment=yperiodalignment,
+                ysrc=ysrc,
+                ytype=ytype,
+                z=z,
+                zauto=zauto,
+                zhoverformat=zhoverformat,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zorder=zorder,
+                zsmooth=zsmooth,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_histogram(self,
+            alignmentgroup=None,
+            autobinx=None,
+            autobiny=None,
+            bingroup=None,
+            cliponaxis=None,
+            constraintext=None,
+            cumulative=None,
+            customdata=None,
+            customdatasrc=None,
+            error_x=None,
+            error_y=None,
+            histfunc=None,
+            histnorm=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextanchor=None,
+            insidetextfont=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            nbinsx=None,
+            nbinsy=None,
+            offsetgroup=None,
+            opacity=None,
+            orientation=None,
+            outsidetextfont=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textangle=None,
+            textfont=None,
+            textposition=None,
+            textsrc=None,
+            texttemplate=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            x=None,
+            xaxis=None,
+            xbins=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yaxis=None,
+            ybins=None,
+            ycalendar=None,
+            yhoverformat=None,
+            ysrc=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Histogram trace
 
@@ -8244,148 +8146,146 @@ def add_histogram(
         Figure
         """
         from plotly.graph_objs import Histogram
-
         new_trace = Histogram(
-            alignmentgroup=alignmentgroup,
-            autobinx=autobinx,
-            autobiny=autobiny,
-            bingroup=bingroup,
-            cliponaxis=cliponaxis,
-            constraintext=constraintext,
-            cumulative=cumulative,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            error_x=error_x,
-            error_y=error_y,
-            histfunc=histfunc,
-            histnorm=histnorm,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            insidetextanchor=insidetextanchor,
-            insidetextfont=insidetextfont,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            nbinsx=nbinsx,
-            nbinsy=nbinsy,
-            offsetgroup=offsetgroup,
-            opacity=opacity,
-            orientation=orientation,
-            outsidetextfont=outsidetextfont,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textangle=textangle,
-            textfont=textfont,
-            textposition=textposition,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            x=x,
-            xaxis=xaxis,
-            xbins=xbins,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            yaxis=yaxis,
-            ybins=ybins,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_histogram2d(
-        self,
-        autobinx=None,
-        autobiny=None,
-        autocolorscale=None,
-        bingroup=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        histfunc=None,
-        histnorm=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        nbinsx=None,
-        nbinsy=None,
-        opacity=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        textfont=None,
-        texttemplate=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xaxis=None,
-        xbingroup=None,
-        xbins=None,
-        xcalendar=None,
-        xgap=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yaxis=None,
-        ybingroup=None,
-        ybins=None,
-        ycalendar=None,
-        ygap=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zauto=None,
-        zhoverformat=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsmooth=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                alignmentgroup=alignmentgroup,
+                autobinx=autobinx,
+                autobiny=autobiny,
+                bingroup=bingroup,
+                cliponaxis=cliponaxis,
+                constraintext=constraintext,
+                cumulative=cumulative,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                error_x=error_x,
+                error_y=error_y,
+                histfunc=histfunc,
+                histnorm=histnorm,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                insidetextanchor=insidetextanchor,
+                insidetextfont=insidetextfont,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                nbinsx=nbinsx,
+                nbinsy=nbinsy,
+                offsetgroup=offsetgroup,
+                opacity=opacity,
+                orientation=orientation,
+                outsidetextfont=outsidetextfont,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textangle=textangle,
+                textfont=textfont,
+                textposition=textposition,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                x=x,
+                xaxis=xaxis,
+                xbins=xbins,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                yaxis=yaxis,
+                ybins=ybins,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_histogram2d(self,
+            autobinx=None,
+            autobiny=None,
+            autocolorscale=None,
+            bingroup=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            histfunc=None,
+            histnorm=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            nbinsx=None,
+            nbinsy=None,
+            opacity=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            textfont=None,
+            texttemplate=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xaxis=None,
+            xbingroup=None,
+            xbins=None,
+            xcalendar=None,
+            xgap=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yaxis=None,
+            ybingroup=None,
+            ybins=None,
+            ycalendar=None,
+            ygap=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zauto=None,
+            zhoverformat=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsmooth=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Histogram2d trace
 
@@ -8780,146 +8680,144 @@ def add_histogram2d(
         Figure
         """
         from plotly.graph_objs import Histogram2d
-
         new_trace = Histogram2d(
-            autobinx=autobinx,
-            autobiny=autobiny,
-            autocolorscale=autocolorscale,
-            bingroup=bingroup,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            histfunc=histfunc,
-            histnorm=histnorm,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            nbinsx=nbinsx,
-            nbinsy=nbinsy,
-            opacity=opacity,
-            reversescale=reversescale,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            textfont=textfont,
-            texttemplate=texttemplate,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x=x,
-            xaxis=xaxis,
-            xbingroup=xbingroup,
-            xbins=xbins,
-            xcalendar=xcalendar,
-            xgap=xgap,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            yaxis=yaxis,
-            ybingroup=ybingroup,
-            ybins=ybins,
-            ycalendar=ycalendar,
-            ygap=ygap,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zauto=zauto,
-            zhoverformat=zhoverformat,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zsmooth=zsmooth,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_histogram2dcontour(
-        self,
-        autobinx=None,
-        autobiny=None,
-        autocolorscale=None,
-        autocontour=None,
-        bingroup=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        contours=None,
-        customdata=None,
-        customdatasrc=None,
-        histfunc=None,
-        histnorm=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        nbinsx=None,
-        nbinsy=None,
-        ncontours=None,
-        opacity=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        textfont=None,
-        texttemplate=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xaxis=None,
-        xbingroup=None,
-        xbins=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yaxis=None,
-        ybingroup=None,
-        ybins=None,
-        ycalendar=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zauto=None,
-        zhoverformat=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                autobinx=autobinx,
+                autobiny=autobiny,
+                autocolorscale=autocolorscale,
+                bingroup=bingroup,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                histfunc=histfunc,
+                histnorm=histnorm,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                nbinsx=nbinsx,
+                nbinsy=nbinsy,
+                opacity=opacity,
+                reversescale=reversescale,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                textfont=textfont,
+                texttemplate=texttemplate,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x=x,
+                xaxis=xaxis,
+                xbingroup=xbingroup,
+                xbins=xbins,
+                xcalendar=xcalendar,
+                xgap=xgap,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                yaxis=yaxis,
+                ybingroup=ybingroup,
+                ybins=ybins,
+                ycalendar=ycalendar,
+                ygap=ygap,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zauto=zauto,
+                zhoverformat=zhoverformat,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zsmooth=zsmooth,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_histogram2dcontour(self,
+            autobinx=None,
+            autobiny=None,
+            autocolorscale=None,
+            autocontour=None,
+            bingroup=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            contours=None,
+            customdata=None,
+            customdatasrc=None,
+            histfunc=None,
+            histnorm=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            nbinsx=None,
+            nbinsy=None,
+            ncontours=None,
+            opacity=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            textfont=None,
+            texttemplate=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xaxis=None,
+            xbingroup=None,
+            xbins=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yaxis=None,
+            ybingroup=None,
+            ybins=None,
+            ycalendar=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zauto=None,
+            zhoverformat=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Histogram2dContour trace
 
@@ -9327,131 +9225,129 @@ def add_histogram2dcontour(
         Figure
         """
         from plotly.graph_objs import Histogram2dContour
-
         new_trace = Histogram2dContour(
-            autobinx=autobinx,
-            autobiny=autobiny,
-            autocolorscale=autocolorscale,
-            autocontour=autocontour,
-            bingroup=bingroup,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            contours=contours,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            histfunc=histfunc,
-            histnorm=histnorm,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            nbinsx=nbinsx,
-            nbinsy=nbinsy,
-            ncontours=ncontours,
-            opacity=opacity,
-            reversescale=reversescale,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            textfont=textfont,
-            texttemplate=texttemplate,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x=x,
-            xaxis=xaxis,
-            xbingroup=xbingroup,
-            xbins=xbins,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            yaxis=yaxis,
-            ybingroup=ybingroup,
-            ybins=ybins,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zauto=zauto,
-            zhoverformat=zhoverformat,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_icicle(
-        self,
-        branchvalues=None,
-        count=None,
-        customdata=None,
-        customdatasrc=None,
-        domain=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextfont=None,
-        labels=None,
-        labelssrc=None,
-        leaf=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        level=None,
-        marker=None,
-        maxdepth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        outsidetextfont=None,
-        parents=None,
-        parentssrc=None,
-        pathbar=None,
-        root=None,
-        sort=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        tiling=None,
-        uid=None,
-        uirevision=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                autobinx=autobinx,
+                autobiny=autobiny,
+                autocolorscale=autocolorscale,
+                autocontour=autocontour,
+                bingroup=bingroup,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                contours=contours,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                histfunc=histfunc,
+                histnorm=histnorm,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                nbinsx=nbinsx,
+                nbinsy=nbinsy,
+                ncontours=ncontours,
+                opacity=opacity,
+                reversescale=reversescale,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                textfont=textfont,
+                texttemplate=texttemplate,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x=x,
+                xaxis=xaxis,
+                xbingroup=xbingroup,
+                xbins=xbins,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                yaxis=yaxis,
+                ybingroup=ybingroup,
+                ybins=ybins,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zauto=zauto,
+                zhoverformat=zhoverformat,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_icicle(self,
+            branchvalues=None,
+            count=None,
+            customdata=None,
+            customdatasrc=None,
+            domain=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextfont=None,
+            labels=None,
+            labelssrc=None,
+            leaf=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            level=None,
+            marker=None,
+            maxdepth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            outsidetextfont=None,
+            parents=None,
+            parentssrc=None,
+            pathbar=None,
+            root=None,
+            sort=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            tiling=None,
+            uid=None,
+            uirevision=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Icicle trace
 
@@ -9731,107 +9627,105 @@ def add_icicle(
         Figure
         """
         from plotly.graph_objs import Icicle
-
         new_trace = Icicle(
-            branchvalues=branchvalues,
-            count=count,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            domain=domain,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            insidetextfont=insidetextfont,
-            labels=labels,
-            labelssrc=labelssrc,
-            leaf=leaf,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            level=level,
-            marker=marker,
-            maxdepth=maxdepth,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            outsidetextfont=outsidetextfont,
-            parents=parents,
-            parentssrc=parentssrc,
-            pathbar=pathbar,
-            root=root,
-            sort=sort,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textinfo=textinfo,
-            textposition=textposition,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            tiling=tiling,
-            uid=uid,
-            uirevision=uirevision,
-            values=values,
-            valuessrc=valuessrc,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_image(
-        self,
-        colormodel=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        source=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x0=None,
-        xaxis=None,
-        y0=None,
-        yaxis=None,
-        z=None,
-        zmax=None,
-        zmin=None,
-        zorder=None,
-        zsmooth=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                branchvalues=branchvalues,
+                count=count,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                domain=domain,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                insidetextfont=insidetextfont,
+                labels=labels,
+                labelssrc=labelssrc,
+                leaf=leaf,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                level=level,
+                marker=marker,
+                maxdepth=maxdepth,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                outsidetextfont=outsidetextfont,
+                parents=parents,
+                parentssrc=parentssrc,
+                pathbar=pathbar,
+                root=root,
+                sort=sort,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textinfo=textinfo,
+                textposition=textposition,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                tiling=tiling,
+                uid=uid,
+                uirevision=uirevision,
+                values=values,
+                valuessrc=valuessrc,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_image(self,
+            colormodel=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            source=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x0=None,
+            xaxis=None,
+            y0=None,
+            yaxis=None,
+            z=None,
+            zmax=None,
+            zmin=None,
+            zorder=None,
+            zsmooth=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Image trace
 
@@ -10081,80 +9975,78 @@ def add_image(
         Figure
         """
         from plotly.graph_objs import Image
-
         new_trace = Image(
-            colormodel=colormodel,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dx=dx,
-            dy=dy,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            source=source,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x0=x0,
-            xaxis=xaxis,
-            y0=y0,
-            yaxis=yaxis,
-            z=z,
-            zmax=zmax,
-            zmin=zmin,
-            zorder=zorder,
-            zsmooth=zsmooth,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_indicator(
-        self,
-        align=None,
-        customdata=None,
-        customdatasrc=None,
-        delta=None,
-        domain=None,
-        gauge=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        number=None,
-        stream=None,
-        title=None,
-        uid=None,
-        uirevision=None,
-        value=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                colormodel=colormodel,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dx=dx,
+                dy=dy,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                source=source,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x0=x0,
+                xaxis=xaxis,
+                y0=y0,
+                yaxis=yaxis,
+                z=z,
+                zmax=zmax,
+                zmin=zmin,
+                zorder=zorder,
+                zsmooth=zsmooth,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_indicator(self,
+            align=None,
+            customdata=None,
+            customdatasrc=None,
+            delta=None,
+            domain=None,
+            gauge=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            number=None,
+            stream=None,
+            title=None,
+            uid=None,
+            uirevision=None,
+            value=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Indicator trace
 
@@ -10297,101 +10189,99 @@ def add_indicator(
         Figure
         """
         from plotly.graph_objs import Indicator
-
         new_trace = Indicator(
-            align=align,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            delta=delta,
-            domain=domain,
-            gauge=gauge,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            number=number,
-            stream=stream,
-            title=title,
-            uid=uid,
-            uirevision=uirevision,
-            value=value,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_isosurface(
-        self,
-        autocolorscale=None,
-        caps=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        contour=None,
-        customdata=None,
-        customdatasrc=None,
-        flatshading=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        isomax=None,
-        isomin=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        slices=None,
-        spaceframe=None,
-        stream=None,
-        surface=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        value=None,
-        valuehoverformat=None,
-        valuesrc=None,
-        visible=None,
-        x=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zhoverformat=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                align=align,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                delta=delta,
+                domain=domain,
+                gauge=gauge,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                number=number,
+                stream=stream,
+                title=title,
+                uid=uid,
+                uirevision=uirevision,
+                value=value,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_isosurface(self,
+            autocolorscale=None,
+            caps=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            contour=None,
+            customdata=None,
+            customdatasrc=None,
+            flatshading=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            isomax=None,
+            isomin=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            slices=None,
+            spaceframe=None,
+            stream=None,
+            surface=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            value=None,
+            valuehoverformat=None,
+            valuesrc=None,
+            visible=None,
+            x=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zhoverformat=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Isosurface trace
 
@@ -10731,148 +10621,146 @@ def add_isosurface(
         Figure
         """
         from plotly.graph_objs import Isosurface
-
         new_trace = Isosurface(
-            autocolorscale=autocolorscale,
-            caps=caps,
-            cauto=cauto,
-            cmax=cmax,
-            cmid=cmid,
-            cmin=cmin,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            contour=contour,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            flatshading=flatshading,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            isomax=isomax,
-            isomin=isomin,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            lighting=lighting,
-            lightposition=lightposition,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            reversescale=reversescale,
-            scene=scene,
-            showlegend=showlegend,
-            showscale=showscale,
-            slices=slices,
-            spaceframe=spaceframe,
-            stream=stream,
-            surface=surface,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            value=value,
-            valuehoverformat=valuehoverformat,
-            valuesrc=valuesrc,
-            visible=visible,
-            x=x,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zhoverformat=zhoverformat,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_mesh3d(
-        self,
-        alphahull=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        contour=None,
-        customdata=None,
-        customdatasrc=None,
-        delaunayaxis=None,
-        facecolor=None,
-        facecolorsrc=None,
-        flatshading=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        i=None,
-        ids=None,
-        idssrc=None,
-        intensity=None,
-        intensitymode=None,
-        intensitysrc=None,
-        isrc=None,
-        j=None,
-        jsrc=None,
-        k=None,
-        ksrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        vertexcolor=None,
-        vertexcolorsrc=None,
-        visible=None,
-        x=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        ycalendar=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zcalendar=None,
-        zhoverformat=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                autocolorscale=autocolorscale,
+                caps=caps,
+                cauto=cauto,
+                cmax=cmax,
+                cmid=cmid,
+                cmin=cmin,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                contour=contour,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                flatshading=flatshading,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                isomax=isomax,
+                isomin=isomin,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                lighting=lighting,
+                lightposition=lightposition,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                reversescale=reversescale,
+                scene=scene,
+                showlegend=showlegend,
+                showscale=showscale,
+                slices=slices,
+                spaceframe=spaceframe,
+                stream=stream,
+                surface=surface,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                value=value,
+                valuehoverformat=valuehoverformat,
+                valuesrc=valuesrc,
+                visible=visible,
+                x=x,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zhoverformat=zhoverformat,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_mesh3d(self,
+            alphahull=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            contour=None,
+            customdata=None,
+            customdatasrc=None,
+            delaunayaxis=None,
+            facecolor=None,
+            facecolorsrc=None,
+            flatshading=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            i=None,
+            ids=None,
+            idssrc=None,
+            intensity=None,
+            intensitymode=None,
+            intensitysrc=None,
+            isrc=None,
+            j=None,
+            jsrc=None,
+            k=None,
+            ksrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            vertexcolor=None,
+            vertexcolorsrc=None,
+            visible=None,
+            x=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            ycalendar=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zcalendar=None,
+            zhoverformat=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Mesh3d trace
 
@@ -11282,138 +11170,136 @@ def add_mesh3d(
         Figure
         """
         from plotly.graph_objs import Mesh3d
-
         new_trace = Mesh3d(
-            alphahull=alphahull,
-            autocolorscale=autocolorscale,
-            cauto=cauto,
-            cmax=cmax,
-            cmid=cmid,
-            cmin=cmin,
-            color=color,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            contour=contour,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            delaunayaxis=delaunayaxis,
-            facecolor=facecolor,
-            facecolorsrc=facecolorsrc,
-            flatshading=flatshading,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            i=i,
-            ids=ids,
-            idssrc=idssrc,
-            intensity=intensity,
-            intensitymode=intensitymode,
-            intensitysrc=intensitysrc,
-            isrc=isrc,
-            j=j,
-            jsrc=jsrc,
-            k=k,
-            ksrc=ksrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            lighting=lighting,
-            lightposition=lightposition,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            reversescale=reversescale,
-            scene=scene,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            vertexcolor=vertexcolor,
-            vertexcolorsrc=vertexcolorsrc,
-            visible=visible,
-            x=x,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zcalendar=zcalendar,
-            zhoverformat=zhoverformat,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_ohlc(
-        self,
-        close=None,
-        closesrc=None,
-        customdata=None,
-        customdatasrc=None,
-        decreasing=None,
-        high=None,
-        highsrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        increasing=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        low=None,
-        lowsrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        open=None,
-        opensrc=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        tickwidth=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        yaxis=None,
-        yhoverformat=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                alphahull=alphahull,
+                autocolorscale=autocolorscale,
+                cauto=cauto,
+                cmax=cmax,
+                cmid=cmid,
+                cmin=cmin,
+                color=color,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                contour=contour,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                delaunayaxis=delaunayaxis,
+                facecolor=facecolor,
+                facecolorsrc=facecolorsrc,
+                flatshading=flatshading,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                i=i,
+                ids=ids,
+                idssrc=idssrc,
+                intensity=intensity,
+                intensitymode=intensitymode,
+                intensitysrc=intensitysrc,
+                isrc=isrc,
+                j=j,
+                jsrc=jsrc,
+                k=k,
+                ksrc=ksrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                lighting=lighting,
+                lightposition=lightposition,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                reversescale=reversescale,
+                scene=scene,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                vertexcolor=vertexcolor,
+                vertexcolorsrc=vertexcolorsrc,
+                visible=visible,
+                x=x,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zcalendar=zcalendar,
+                zhoverformat=zhoverformat,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_ohlc(self,
+            close=None,
+            closesrc=None,
+            customdata=None,
+            customdatasrc=None,
+            decreasing=None,
+            high=None,
+            highsrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            increasing=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            low=None,
+            lowsrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            open=None,
+            opensrc=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            tickwidth=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            yaxis=None,
+            yhoverformat=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Ohlc trace
 
@@ -11678,90 +11564,88 @@ def add_ohlc(
         Figure
         """
         from plotly.graph_objs import Ohlc
-
         new_trace = Ohlc(
-            close=close,
-            closesrc=closesrc,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            decreasing=decreasing,
-            high=high,
-            highsrc=highsrc,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            increasing=increasing,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            low=low,
-            lowsrc=lowsrc,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            open=open,
-            opensrc=opensrc,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            tickwidth=tickwidth,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x=x,
-            xaxis=xaxis,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            yaxis=yaxis,
-            yhoverformat=yhoverformat,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_parcats(
-        self,
-        arrangement=None,
-        bundlecolors=None,
-        counts=None,
-        countssrc=None,
-        dimensions=None,
-        dimensiondefaults=None,
-        domain=None,
-        hoverinfo=None,
-        hoveron=None,
-        hovertemplate=None,
-        labelfont=None,
-        legendgrouptitle=None,
-        legendwidth=None,
-        line=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        sortpaths=None,
-        stream=None,
-        tickfont=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                close=close,
+                closesrc=closesrc,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                decreasing=decreasing,
+                high=high,
+                highsrc=highsrc,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                increasing=increasing,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                low=low,
+                lowsrc=lowsrc,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                open=open,
+                opensrc=opensrc,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                tickwidth=tickwidth,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x=x,
+                xaxis=xaxis,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                yaxis=yaxis,
+                yhoverformat=yhoverformat,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_parcats(self,
+            arrangement=None,
+            bundlecolors=None,
+            counts=None,
+            countssrc=None,
+            dimensions=None,
+            dimensiondefaults=None,
+            domain=None,
+            hoverinfo=None,
+            hoveron=None,
+            hovertemplate=None,
+            labelfont=None,
+            legendgrouptitle=None,
+            legendwidth=None,
+            line=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            sortpaths=None,
+            stream=None,
+            tickfont=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Parcats trace
 
@@ -11928,66 +11812,64 @@ def add_parcats(
         Figure
         """
         from plotly.graph_objs import Parcats
-
         new_trace = Parcats(
-            arrangement=arrangement,
-            bundlecolors=bundlecolors,
-            counts=counts,
-            countssrc=countssrc,
-            dimensions=dimensions,
-            dimensiondefaults=dimensiondefaults,
-            domain=domain,
-            hoverinfo=hoverinfo,
-            hoveron=hoveron,
-            hovertemplate=hovertemplate,
-            labelfont=labelfont,
-            legendgrouptitle=legendgrouptitle,
-            legendwidth=legendwidth,
-            line=line,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            sortpaths=sortpaths,
-            stream=stream,
-            tickfont=tickfont,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_parcoords(
-        self,
-        customdata=None,
-        customdatasrc=None,
-        dimensions=None,
-        dimensiondefaults=None,
-        domain=None,
-        ids=None,
-        idssrc=None,
-        labelangle=None,
-        labelfont=None,
-        labelside=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        rangefont=None,
-        stream=None,
-        tickfont=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                arrangement=arrangement,
+                bundlecolors=bundlecolors,
+                counts=counts,
+                countssrc=countssrc,
+                dimensions=dimensions,
+                dimensiondefaults=dimensiondefaults,
+                domain=domain,
+                hoverinfo=hoverinfo,
+                hoveron=hoveron,
+                hovertemplate=hovertemplate,
+                labelfont=labelfont,
+                legendgrouptitle=legendgrouptitle,
+                legendwidth=legendwidth,
+                line=line,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                sortpaths=sortpaths,
+                stream=stream,
+                tickfont=tickfont,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_parcoords(self,
+            customdata=None,
+            customdatasrc=None,
+            dimensions=None,
+            dimensiondefaults=None,
+            domain=None,
+            ids=None,
+            idssrc=None,
+            labelangle=None,
+            labelfont=None,
+            labelside=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            rangefont=None,
+            stream=None,
+            tickfont=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Parcoords trace
 
@@ -12135,96 +12017,94 @@ def add_parcoords(
         Figure
         """
         from plotly.graph_objs import Parcoords
-
         new_trace = Parcoords(
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dimensions=dimensions,
-            dimensiondefaults=dimensiondefaults,
-            domain=domain,
-            ids=ids,
-            idssrc=idssrc,
-            labelangle=labelangle,
-            labelfont=labelfont,
-            labelside=labelside,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            rangefont=rangefont,
-            stream=stream,
-            tickfont=tickfont,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_pie(
-        self,
-        automargin=None,
-        customdata=None,
-        customdatasrc=None,
-        direction=None,
-        dlabel=None,
-        domain=None,
-        hole=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextfont=None,
-        insidetextorientation=None,
-        label0=None,
-        labels=None,
-        labelssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        outsidetextfont=None,
-        pull=None,
-        pullsrc=None,
-        rotation=None,
-        scalegroup=None,
-        showlegend=None,
-        sort=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        title=None,
-        uid=None,
-        uirevision=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dimensions=dimensions,
+                dimensiondefaults=dimensiondefaults,
+                domain=domain,
+                ids=ids,
+                idssrc=idssrc,
+                labelangle=labelangle,
+                labelfont=labelfont,
+                labelside=labelside,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                rangefont=rangefont,
+                stream=stream,
+                tickfont=tickfont,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_pie(self,
+            automargin=None,
+            customdata=None,
+            customdatasrc=None,
+            direction=None,
+            dlabel=None,
+            domain=None,
+            hole=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextfont=None,
+            insidetextorientation=None,
+            label0=None,
+            labels=None,
+            labelssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            outsidetextfont=None,
+            pull=None,
+            pullsrc=None,
+            rotation=None,
+            scalegroup=None,
+            showlegend=None,
+            sort=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            title=None,
+            uid=None,
+            uirevision=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Pie trace
 
@@ -12512,97 +12392,95 @@ def add_pie(
         Figure
         """
         from plotly.graph_objs import Pie
-
         new_trace = Pie(
-            automargin=automargin,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            direction=direction,
-            dlabel=dlabel,
-            domain=domain,
-            hole=hole,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            insidetextfont=insidetextfont,
-            insidetextorientation=insidetextorientation,
-            label0=label0,
-            labels=labels,
-            labelssrc=labelssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            outsidetextfont=outsidetextfont,
-            pull=pull,
-            pullsrc=pullsrc,
-            rotation=rotation,
-            scalegroup=scalegroup,
-            showlegend=showlegend,
-            sort=sort,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textinfo=textinfo,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            title=title,
-            uid=uid,
-            uirevision=uirevision,
-            values=values,
-            valuessrc=valuessrc,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_sankey(
-        self,
-        arrangement=None,
-        customdata=None,
-        customdatasrc=None,
-        domain=None,
-        hoverinfo=None,
-        hoverlabel=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        link=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        node=None,
-        orientation=None,
-        selectedpoints=None,
-        stream=None,
-        textfont=None,
-        uid=None,
-        uirevision=None,
-        valueformat=None,
-        valuesuffix=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                automargin=automargin,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                direction=direction,
+                dlabel=dlabel,
+                domain=domain,
+                hole=hole,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                insidetextfont=insidetextfont,
+                insidetextorientation=insidetextorientation,
+                label0=label0,
+                labels=labels,
+                labelssrc=labelssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                outsidetextfont=outsidetextfont,
+                pull=pull,
+                pullsrc=pullsrc,
+                rotation=rotation,
+                scalegroup=scalegroup,
+                showlegend=showlegend,
+                sort=sort,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textinfo=textinfo,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                title=title,
+                uid=uid,
+                uirevision=uirevision,
+                values=values,
+                valuessrc=valuessrc,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_sankey(self,
+            arrangement=None,
+            customdata=None,
+            customdatasrc=None,
+            domain=None,
+            hoverinfo=None,
+            hoverlabel=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            link=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            node=None,
+            orientation=None,
+            selectedpoints=None,
+            stream=None,
+            textfont=None,
+            uid=None,
+            uirevision=None,
+            valueformat=None,
+            valuesuffix=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Sankey trace
 
@@ -12761,119 +12639,117 @@ def add_sankey(
         Figure
         """
         from plotly.graph_objs import Sankey
-
         new_trace = Sankey(
-            arrangement=arrangement,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            domain=domain,
-            hoverinfo=hoverinfo,
-            hoverlabel=hoverlabel,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            link=link,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            node=node,
-            orientation=orientation,
-            selectedpoints=selectedpoints,
-            stream=stream,
-            textfont=textfont,
-            uid=uid,
-            uirevision=uirevision,
-            valueformat=valueformat,
-            valuesuffix=valuesuffix,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_scatter(
-        self,
-        alignmentgroup=None,
-        cliponaxis=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        error_x=None,
-        error_y=None,
-        fill=None,
-        fillcolor=None,
-        fillgradient=None,
-        fillpattern=None,
-        groupnorm=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        offsetgroup=None,
-        opacity=None,
-        orientation=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stackgaps=None,
-        stackgroup=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                arrangement=arrangement,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                domain=domain,
+                hoverinfo=hoverinfo,
+                hoverlabel=hoverlabel,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                link=link,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                node=node,
+                orientation=orientation,
+                selectedpoints=selectedpoints,
+                stream=stream,
+                textfont=textfont,
+                uid=uid,
+                uirevision=uirevision,
+                valueformat=valueformat,
+                valuesuffix=valuesuffix,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_scatter(self,
+            alignmentgroup=None,
+            cliponaxis=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            error_x=None,
+            error_y=None,
+            fill=None,
+            fillcolor=None,
+            fillgradient=None,
+            fillpattern=None,
+            groupnorm=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            offsetgroup=None,
+            opacity=None,
+            orientation=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stackgaps=None,
+            stackgroup=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Scatter trace
 
@@ -13331,147 +13207,145 @@ def add_scatter(
         Figure
         """
         from plotly.graph_objs import Scatter
-
         new_trace = Scatter(
-            alignmentgroup=alignmentgroup,
-            cliponaxis=cliponaxis,
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dx=dx,
-            dy=dy,
-            error_x=error_x,
-            error_y=error_y,
-            fill=fill,
-            fillcolor=fillcolor,
-            fillgradient=fillgradient,
-            fillpattern=fillpattern,
-            groupnorm=groupnorm,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoveron=hoveron,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            offsetgroup=offsetgroup,
-            opacity=opacity,
-            orientation=orientation,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stackgaps=stackgaps,
-            stackgroup=stackgroup,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            yperiod=yperiod,
-            yperiod0=yperiod0,
-            yperiodalignment=yperiodalignment,
-            ysrc=ysrc,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_scatter3d(
-        self,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        error_x=None,
-        error_y=None,
-        error_z=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        projection=None,
-        scene=None,
-        showlegend=None,
-        stream=None,
-        surfaceaxis=None,
-        surfacecolor=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        ycalendar=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zcalendar=None,
-        zhoverformat=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                alignmentgroup=alignmentgroup,
+                cliponaxis=cliponaxis,
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dx=dx,
+                dy=dy,
+                error_x=error_x,
+                error_y=error_y,
+                fill=fill,
+                fillcolor=fillcolor,
+                fillgradient=fillgradient,
+                fillpattern=fillpattern,
+                groupnorm=groupnorm,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoveron=hoveron,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                offsetgroup=offsetgroup,
+                opacity=opacity,
+                orientation=orientation,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stackgaps=stackgaps,
+                stackgroup=stackgroup,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                yperiod=yperiod,
+                yperiod0=yperiod0,
+                yperiodalignment=yperiodalignment,
+                ysrc=ysrc,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_scatter3d(self,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            error_x=None,
+            error_y=None,
+            error_z=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            projection=None,
+            scene=None,
+            showlegend=None,
+            stream=None,
+            surfaceaxis=None,
+            surfacecolor=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            ycalendar=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zcalendar=None,
+            zhoverformat=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Scatter3d trace
 
@@ -13786,124 +13660,122 @@ def add_scatter3d(
         Figure
         """
         from plotly.graph_objs import Scatter3d
-
         new_trace = Scatter3d(
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            error_x=error_x,
-            error_y=error_y,
-            error_z=error_z,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            projection=projection,
-            scene=scene,
-            showlegend=showlegend,
-            stream=stream,
-            surfaceaxis=surfaceaxis,
-            surfacecolor=surfacecolor,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x=x,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zcalendar=zcalendar,
-            zhoverformat=zhoverformat,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_scattercarpet(
-        self,
-        a=None,
-        asrc=None,
-        b=None,
-        bsrc=None,
-        carpet=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        xaxis=None,
-        yaxis=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                error_x=error_x,
+                error_y=error_y,
+                error_z=error_z,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                projection=projection,
+                scene=scene,
+                showlegend=showlegend,
+                stream=stream,
+                surfaceaxis=surfaceaxis,
+                surfacecolor=surfacecolor,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x=x,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zcalendar=zcalendar,
+                zhoverformat=zhoverformat,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_scattercarpet(self,
+            a=None,
+            asrc=None,
+            b=None,
+            bsrc=None,
+            carpet=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            xaxis=None,
+            yaxis=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Scattercarpet trace
 
@@ -14203,119 +14075,117 @@ def add_scattercarpet(
         Figure
         """
         from plotly.graph_objs import Scattercarpet
-
         new_trace = Scattercarpet(
-            a=a,
-            asrc=asrc,
-            b=b,
-            bsrc=bsrc,
-            carpet=carpet,
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            fill=fill,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoveron=hoveron,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            xaxis=xaxis,
-            yaxis=yaxis,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_scattergeo(
-        self,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        featureidkey=None,
-        fill=None,
-        fillcolor=None,
-        geo=None,
-        geojson=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        lat=None,
-        latsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        locationmode=None,
-        locations=None,
-        locationssrc=None,
-        lon=None,
-        lonsrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                a=a,
+                asrc=asrc,
+                b=b,
+                bsrc=bsrc,
+                carpet=carpet,
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                fill=fill,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoveron=hoveron,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                xaxis=xaxis,
+                yaxis=yaxis,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_scattergeo(self,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            featureidkey=None,
+            fill=None,
+            fillcolor=None,
+            geo=None,
+            geojson=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            lat=None,
+            latsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            locationmode=None,
+            locations=None,
+            locationssrc=None,
+            lon=None,
+            lonsrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Scattergeo trace
 
@@ -14611,133 +14481,131 @@ def add_scattergeo(
         Figure
         """
         from plotly.graph_objs import Scattergeo
-
         new_trace = Scattergeo(
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            featureidkey=featureidkey,
-            fill=fill,
-            fillcolor=fillcolor,
-            geo=geo,
-            geojson=geojson,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            lat=lat,
-            latsrc=latsrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            locationmode=locationmode,
-            locations=locations,
-            locationssrc=locationssrc,
-            lon=lon,
-            lonsrc=lonsrc,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_scattergl(
-        self,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        error_x=None,
-        error_y=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                featureidkey=featureidkey,
+                fill=fill,
+                fillcolor=fillcolor,
+                geo=geo,
+                geojson=geojson,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                lat=lat,
+                latsrc=latsrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                locationmode=locationmode,
+                locations=locations,
+                locationssrc=locationssrc,
+                lon=lon,
+                lonsrc=lonsrc,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_scattergl(self,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            error_x=None,
+            error_y=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Scattergl trace
 
@@ -15111,128 +14979,126 @@ def add_scattergl(
         Figure
         """
         from plotly.graph_objs import Scattergl
-
         new_trace = Scattergl(
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dx=dx,
-            dy=dy,
-            error_x=error_x,
-            error_y=error_y,
-            fill=fill,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            yperiod=yperiod,
-            yperiod0=yperiod0,
-            yperiodalignment=yperiodalignment,
-            ysrc=ysrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_scattermap(
-        self,
-        below=None,
-        cluster=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        lat=None,
-        latsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        lon=None,
-        lonsrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dx=dx,
+                dy=dy,
+                error_x=error_x,
+                error_y=error_y,
+                fill=fill,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                yperiod=yperiod,
+                yperiod0=yperiod0,
+                yperiodalignment=yperiodalignment,
+                ysrc=ysrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_scattermap(self,
+            below=None,
+            cluster=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            lat=None,
+            latsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            lon=None,
+            lonsrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Scattermap trace
 
@@ -15504,112 +15370,110 @@ def add_scattermap(
         Figure
         """
         from plotly.graph_objs import Scattermap
-
         new_trace = Scattermap(
-            below=below,
-            cluster=cluster,
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            fill=fill,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            lat=lat,
-            latsrc=latsrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            lon=lon,
-            lonsrc=lonsrc,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_scattermapbox(
-        self,
-        below=None,
-        cluster=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        lat=None,
-        latsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        lon=None,
-        lonsrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                below=below,
+                cluster=cluster,
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                fill=fill,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                lat=lat,
+                latsrc=latsrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                lon=lon,
+                lonsrc=lonsrc,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_scattermapbox(self,
+            below=None,
+            cluster=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            lat=None,
+            latsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            lon=None,
+            lonsrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Scattermapbox trace
 
@@ -15890,118 +15754,116 @@ def add_scattermapbox(
         Figure
         """
         from plotly.graph_objs import Scattermapbox
-
         new_trace = Scattermapbox(
-            below=below,
-            cluster=cluster,
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            fill=fill,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            lat=lat,
-            latsrc=latsrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            lon=lon,
-            lonsrc=lonsrc,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_scatterpolar(
-        self,
-        cliponaxis=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        dr=None,
-        dtheta=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        r=None,
-        r0=None,
-        rsrc=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        theta=None,
-        theta0=None,
-        thetasrc=None,
-        thetaunit=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                below=below,
+                cluster=cluster,
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                fill=fill,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                lat=lat,
+                latsrc=latsrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                lon=lon,
+                lonsrc=lonsrc,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_scatterpolar(self,
+            cliponaxis=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            dr=None,
+            dtheta=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            r=None,
+            r0=None,
+            rsrc=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            theta=None,
+            theta0=None,
+            thetasrc=None,
+            thetaunit=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Scatterpolar trace
 
@@ -16306,122 +16168,120 @@ def add_scatterpolar(
         Figure
         """
         from plotly.graph_objs import Scatterpolar
-
         new_trace = Scatterpolar(
-            cliponaxis=cliponaxis,
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dr=dr,
-            dtheta=dtheta,
-            fill=fill,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoveron=hoveron,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            r=r,
-            r0=r0,
-            rsrc=rsrc,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            theta=theta,
-            theta0=theta0,
-            thetasrc=thetasrc,
-            thetaunit=thetaunit,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_scatterpolargl(
-        self,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        dr=None,
-        dtheta=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        r=None,
-        r0=None,
-        rsrc=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        theta=None,
-        theta0=None,
-        thetasrc=None,
-        thetaunit=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                cliponaxis=cliponaxis,
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dr=dr,
+                dtheta=dtheta,
+                fill=fill,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoveron=hoveron,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                r=r,
+                r0=r0,
+                rsrc=rsrc,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                theta=theta,
+                theta0=theta0,
+                thetasrc=thetasrc,
+                thetaunit=thetaunit,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_scatterpolargl(self,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            dr=None,
+            dtheta=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            r=None,
+            r0=None,
+            rsrc=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            theta=None,
+            theta0=None,
+            thetasrc=None,
+            thetaunit=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Scatterpolargl trace
 
@@ -16725,117 +16585,115 @@ def add_scatterpolargl(
         Figure
         """
         from plotly.graph_objs import Scatterpolargl
-
         new_trace = Scatterpolargl(
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dr=dr,
-            dtheta=dtheta,
-            fill=fill,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            r=r,
-            r0=r0,
-            rsrc=rsrc,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            theta=theta,
-            theta0=theta0,
-            thetasrc=thetasrc,
-            thetaunit=thetaunit,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_scattersmith(
-        self,
-        cliponaxis=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        imag=None,
-        imagsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        real=None,
-        realsrc=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dr=dr,
+                dtheta=dtheta,
+                fill=fill,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                r=r,
+                r0=r0,
+                rsrc=rsrc,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                theta=theta,
+                theta0=theta0,
+                thetasrc=thetasrc,
+                thetaunit=thetaunit,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_scattersmith(self,
+            cliponaxis=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            imag=None,
+            imagsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            real=None,
+            realsrc=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Scattersmith trace
 
@@ -17127,117 +16985,115 @@ def add_scattersmith(
         Figure
         """
         from plotly.graph_objs import Scattersmith
-
         new_trace = Scattersmith(
-            cliponaxis=cliponaxis,
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            fill=fill,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoveron=hoveron,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            imag=imag,
-            imagsrc=imagsrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            real=real,
-            realsrc=realsrc,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_scatterternary(
-        self,
-        a=None,
-        asrc=None,
-        b=None,
-        bsrc=None,
-        c=None,
-        cliponaxis=None,
-        connectgaps=None,
-        csrc=None,
-        customdata=None,
-        customdatasrc=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        sum=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                cliponaxis=cliponaxis,
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                fill=fill,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoveron=hoveron,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                imag=imag,
+                imagsrc=imagsrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                real=real,
+                realsrc=realsrc,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_scatterternary(self,
+            a=None,
+            asrc=None,
+            b=None,
+            bsrc=None,
+            c=None,
+            cliponaxis=None,
+            connectgaps=None,
+            csrc=None,
+            customdata=None,
+            customdatasrc=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            sum=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Scatterternary trace
 
@@ -17545,109 +17401,107 @@ def add_scatterternary(
         Figure
         """
         from plotly.graph_objs import Scatterternary
-
         new_trace = Scatterternary(
-            a=a,
-            asrc=asrc,
-            b=b,
-            bsrc=bsrc,
-            c=c,
-            cliponaxis=cliponaxis,
-            connectgaps=connectgaps,
-            csrc=csrc,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            fill=fill,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoveron=hoveron,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            subplot=subplot,
-            sum=sum,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_splom(
-        self,
-        customdata=None,
-        customdatasrc=None,
-        diagonal=None,
-        dimensions=None,
-        dimensiondefaults=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        showlowerhalf=None,
-        showupperhalf=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        xaxes=None,
-        xhoverformat=None,
-        yaxes=None,
-        yhoverformat=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                a=a,
+                asrc=asrc,
+                b=b,
+                bsrc=bsrc,
+                c=c,
+                cliponaxis=cliponaxis,
+                connectgaps=connectgaps,
+                csrc=csrc,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                fill=fill,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoveron=hoveron,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                subplot=subplot,
+                sum=sum,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_splom(self,
+            customdata=None,
+            customdatasrc=None,
+            diagonal=None,
+            dimensions=None,
+            dimensiondefaults=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            showlowerhalf=None,
+            showupperhalf=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            xaxes=None,
+            xhoverformat=None,
+            yaxes=None,
+            yhoverformat=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Splom trace
 
@@ -17905,117 +17759,115 @@ def add_splom(
         Figure
         """
         from plotly.graph_objs import Splom
-
         new_trace = Splom(
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            diagonal=diagonal,
-            dimensions=dimensions,
-            dimensiondefaults=dimensiondefaults,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            showlowerhalf=showlowerhalf,
-            showupperhalf=showupperhalf,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            xaxes=xaxes,
-            xhoverformat=xhoverformat,
-            yaxes=yaxes,
-            yhoverformat=yhoverformat,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_streamtube(
-        self,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        maxdisplayed=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        sizeref=None,
-        starts=None,
-        stream=None,
-        text=None,
-        u=None,
-        uhoverformat=None,
-        uid=None,
-        uirevision=None,
-        usrc=None,
-        v=None,
-        vhoverformat=None,
-        visible=None,
-        vsrc=None,
-        w=None,
-        whoverformat=None,
-        wsrc=None,
-        x=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zhoverformat=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                diagonal=diagonal,
+                dimensions=dimensions,
+                dimensiondefaults=dimensiondefaults,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                showlowerhalf=showlowerhalf,
+                showupperhalf=showupperhalf,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                xaxes=xaxes,
+                xhoverformat=xhoverformat,
+                yaxes=yaxes,
+                yhoverformat=yhoverformat,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_streamtube(self,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            maxdisplayed=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            sizeref=None,
+            starts=None,
+            stream=None,
+            text=None,
+            u=None,
+            uhoverformat=None,
+            uid=None,
+            uirevision=None,
+            usrc=None,
+            v=None,
+            vhoverformat=None,
+            visible=None,
+            vsrc=None,
+            w=None,
+            whoverformat=None,
+            wsrc=None,
+            x=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zhoverformat=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Streamtube trace
 
@@ -18364,125 +18216,123 @@ def add_streamtube(
         Figure
         """
         from plotly.graph_objs import Streamtube
-
         new_trace = Streamtube(
-            autocolorscale=autocolorscale,
-            cauto=cauto,
-            cmax=cmax,
-            cmid=cmid,
-            cmin=cmin,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            lighting=lighting,
-            lightposition=lightposition,
-            maxdisplayed=maxdisplayed,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            reversescale=reversescale,
-            scene=scene,
-            showlegend=showlegend,
-            showscale=showscale,
-            sizeref=sizeref,
-            starts=starts,
-            stream=stream,
-            text=text,
-            u=u,
-            uhoverformat=uhoverformat,
-            uid=uid,
-            uirevision=uirevision,
-            usrc=usrc,
-            v=v,
-            vhoverformat=vhoverformat,
-            visible=visible,
-            vsrc=vsrc,
-            w=w,
-            whoverformat=whoverformat,
-            wsrc=wsrc,
-            x=x,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zhoverformat=zhoverformat,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_sunburst(
-        self,
-        branchvalues=None,
-        count=None,
-        customdata=None,
-        customdatasrc=None,
-        domain=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextfont=None,
-        insidetextorientation=None,
-        labels=None,
-        labelssrc=None,
-        leaf=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        level=None,
-        marker=None,
-        maxdepth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        outsidetextfont=None,
-        parents=None,
-        parentssrc=None,
-        root=None,
-        rotation=None,
-        sort=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textinfo=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                autocolorscale=autocolorscale,
+                cauto=cauto,
+                cmax=cmax,
+                cmid=cmid,
+                cmin=cmin,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                lighting=lighting,
+                lightposition=lightposition,
+                maxdisplayed=maxdisplayed,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                reversescale=reversescale,
+                scene=scene,
+                showlegend=showlegend,
+                showscale=showscale,
+                sizeref=sizeref,
+                starts=starts,
+                stream=stream,
+                text=text,
+                u=u,
+                uhoverformat=uhoverformat,
+                uid=uid,
+                uirevision=uirevision,
+                usrc=usrc,
+                v=v,
+                vhoverformat=vhoverformat,
+                visible=visible,
+                vsrc=vsrc,
+                w=w,
+                whoverformat=whoverformat,
+                wsrc=wsrc,
+                x=x,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zhoverformat=zhoverformat,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_sunburst(self,
+            branchvalues=None,
+            count=None,
+            customdata=None,
+            customdatasrc=None,
+            domain=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextfont=None,
+            insidetextorientation=None,
+            labels=None,
+            labelssrc=None,
+            leaf=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            level=None,
+            marker=None,
+            maxdepth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            outsidetextfont=None,
+            parents=None,
+            parentssrc=None,
+            root=None,
+            rotation=None,
+            sort=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textinfo=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Sunburst trace
 
@@ -18767,124 +18617,122 @@ def add_sunburst(
         Figure
         """
         from plotly.graph_objs import Sunburst
-
         new_trace = Sunburst(
-            branchvalues=branchvalues,
-            count=count,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            domain=domain,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            insidetextfont=insidetextfont,
-            insidetextorientation=insidetextorientation,
-            labels=labels,
-            labelssrc=labelssrc,
-            leaf=leaf,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            level=level,
-            marker=marker,
-            maxdepth=maxdepth,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            outsidetextfont=outsidetextfont,
-            parents=parents,
-            parentssrc=parentssrc,
-            root=root,
-            rotation=rotation,
-            sort=sort,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textinfo=textinfo,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            values=values,
-            valuessrc=valuessrc,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_surface(
-        self,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        connectgaps=None,
-        contours=None,
-        customdata=None,
-        customdatasrc=None,
-        hidesurface=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        opacityscale=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        surfacecolor=None,
-        surfacecolorsrc=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        ycalendar=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zcalendar=None,
-        zhoverformat=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                branchvalues=branchvalues,
+                count=count,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                domain=domain,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                insidetextfont=insidetextfont,
+                insidetextorientation=insidetextorientation,
+                labels=labels,
+                labelssrc=labelssrc,
+                leaf=leaf,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                level=level,
+                marker=marker,
+                maxdepth=maxdepth,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                outsidetextfont=outsidetextfont,
+                parents=parents,
+                parentssrc=parentssrc,
+                root=root,
+                rotation=rotation,
+                sort=sort,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textinfo=textinfo,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                values=values,
+                valuessrc=valuessrc,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_surface(self,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            connectgaps=None,
+            contours=None,
+            customdata=None,
+            customdatasrc=None,
+            hidesurface=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            opacityscale=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            surfacecolor=None,
+            surfacecolorsrc=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            ycalendar=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zcalendar=None,
+            zhoverformat=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Surface trace
 
@@ -19227,101 +19075,99 @@ def add_surface(
         Figure
         """
         from plotly.graph_objs import Surface
-
         new_trace = Surface(
-            autocolorscale=autocolorscale,
-            cauto=cauto,
-            cmax=cmax,
-            cmid=cmid,
-            cmin=cmin,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            connectgaps=connectgaps,
-            contours=contours,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            hidesurface=hidesurface,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            lighting=lighting,
-            lightposition=lightposition,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            opacityscale=opacityscale,
-            reversescale=reversescale,
-            scene=scene,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            surfacecolor=surfacecolor,
-            surfacecolorsrc=surfacecolorsrc,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x=x,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zcalendar=zcalendar,
-            zhoverformat=zhoverformat,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_table(
-        self,
-        cells=None,
-        columnorder=None,
-        columnordersrc=None,
-        columnwidth=None,
-        columnwidthsrc=None,
-        customdata=None,
-        customdatasrc=None,
-        domain=None,
-        header=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        stream=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                autocolorscale=autocolorscale,
+                cauto=cauto,
+                cmax=cmax,
+                cmid=cmid,
+                cmin=cmin,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                connectgaps=connectgaps,
+                contours=contours,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                hidesurface=hidesurface,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                lighting=lighting,
+                lightposition=lightposition,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                opacityscale=opacityscale,
+                reversescale=reversescale,
+                scene=scene,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                surfacecolor=surfacecolor,
+                surfacecolorsrc=surfacecolorsrc,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x=x,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zcalendar=zcalendar,
+                zhoverformat=zhoverformat,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_table(self,
+            cells=None,
+            columnorder=None,
+            columnordersrc=None,
+            columnwidth=None,
+            columnwidthsrc=None,
+            customdata=None,
+            customdatasrc=None,
+            domain=None,
+            header=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            stream=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Table trace
 
@@ -19471,91 +19317,89 @@ def add_table(
         Figure
         """
         from plotly.graph_objs import Table
-
         new_trace = Table(
-            cells=cells,
-            columnorder=columnorder,
-            columnordersrc=columnordersrc,
-            columnwidth=columnwidth,
-            columnwidthsrc=columnwidthsrc,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            domain=domain,
-            header=header,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            stream=stream,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_treemap(
-        self,
-        branchvalues=None,
-        count=None,
-        customdata=None,
-        customdatasrc=None,
-        domain=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextfont=None,
-        labels=None,
-        labelssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        level=None,
-        marker=None,
-        maxdepth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        outsidetextfont=None,
-        parents=None,
-        parentssrc=None,
-        pathbar=None,
-        root=None,
-        sort=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        tiling=None,
-        uid=None,
-        uirevision=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                cells=cells,
+                columnorder=columnorder,
+                columnordersrc=columnordersrc,
+                columnwidth=columnwidth,
+                columnwidthsrc=columnwidthsrc,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                domain=domain,
+                header=header,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                stream=stream,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_treemap(self,
+            branchvalues=None,
+            count=None,
+            customdata=None,
+            customdatasrc=None,
+            domain=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextfont=None,
+            labels=None,
+            labelssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            level=None,
+            marker=None,
+            maxdepth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            outsidetextfont=None,
+            parents=None,
+            parentssrc=None,
+            pathbar=None,
+            root=None,
+            sort=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            tiling=None,
+            uid=None,
+            uirevision=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Treemap trace
 
@@ -19833,128 +19677,126 @@ def add_treemap(
         Figure
         """
         from plotly.graph_objs import Treemap
-
         new_trace = Treemap(
-            branchvalues=branchvalues,
-            count=count,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            domain=domain,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            insidetextfont=insidetextfont,
-            labels=labels,
-            labelssrc=labelssrc,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            level=level,
-            marker=marker,
-            maxdepth=maxdepth,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            outsidetextfont=outsidetextfont,
-            parents=parents,
-            parentssrc=parentssrc,
-            pathbar=pathbar,
-            root=root,
-            sort=sort,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textinfo=textinfo,
-            textposition=textposition,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            tiling=tiling,
-            uid=uid,
-            uirevision=uirevision,
-            values=values,
-            valuessrc=valuessrc,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_violin(
-        self,
-        alignmentgroup=None,
-        bandwidth=None,
-        box=None,
-        customdata=None,
-        customdatasrc=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        jitter=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meanline=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        offsetgroup=None,
-        opacity=None,
-        orientation=None,
-        pointpos=None,
-        points=None,
-        quartilemethod=None,
-        scalegroup=None,
-        scalemode=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        side=None,
-        span=None,
-        spanmode=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        width=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        yhoverformat=None,
-        ysrc=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                branchvalues=branchvalues,
+                count=count,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                domain=domain,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                insidetextfont=insidetextfont,
+                labels=labels,
+                labelssrc=labelssrc,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                level=level,
+                marker=marker,
+                maxdepth=maxdepth,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                outsidetextfont=outsidetextfont,
+                parents=parents,
+                parentssrc=parentssrc,
+                pathbar=pathbar,
+                root=root,
+                sort=sort,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textinfo=textinfo,
+                textposition=textposition,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                tiling=tiling,
+                uid=uid,
+                uirevision=uirevision,
+                values=values,
+                valuessrc=valuessrc,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_violin(self,
+            alignmentgroup=None,
+            bandwidth=None,
+            box=None,
+            customdata=None,
+            customdatasrc=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            jitter=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meanline=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            offsetgroup=None,
+            opacity=None,
+            orientation=None,
+            pointpos=None,
+            points=None,
+            quartilemethod=None,
+            scalegroup=None,
+            scalemode=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            side=None,
+            span=None,
+            spanmode=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            width=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            yhoverformat=None,
+            ysrc=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Violin trace
 
@@ -20336,140 +20178,138 @@ def add_violin(
         Figure
         """
         from plotly.graph_objs import Violin
-
         new_trace = Violin(
-            alignmentgroup=alignmentgroup,
-            bandwidth=bandwidth,
-            box=box,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoveron=hoveron,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            jitter=jitter,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meanline=meanline,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            offsetgroup=offsetgroup,
-            opacity=opacity,
-            orientation=orientation,
-            pointpos=pointpos,
-            points=points,
-            quartilemethod=quartilemethod,
-            scalegroup=scalegroup,
-            scalemode=scalemode,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            side=side,
-            span=span,
-            spanmode=spanmode,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            width=width,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_volume(
-        self,
-        autocolorscale=None,
-        caps=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        contour=None,
-        customdata=None,
-        customdatasrc=None,
-        flatshading=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        isomax=None,
-        isomin=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        opacityscale=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        slices=None,
-        spaceframe=None,
-        stream=None,
-        surface=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        value=None,
-        valuehoverformat=None,
-        valuesrc=None,
-        visible=None,
-        x=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zhoverformat=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                alignmentgroup=alignmentgroup,
+                bandwidth=bandwidth,
+                box=box,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoveron=hoveron,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                jitter=jitter,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meanline=meanline,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                offsetgroup=offsetgroup,
+                opacity=opacity,
+                orientation=orientation,
+                pointpos=pointpos,
+                points=points,
+                quartilemethod=quartilemethod,
+                scalegroup=scalegroup,
+                scalemode=scalemode,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                side=side,
+                span=span,
+                spanmode=spanmode,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                width=width,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_volume(self,
+            autocolorscale=None,
+            caps=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            contour=None,
+            customdata=None,
+            customdatasrc=None,
+            flatshading=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            isomax=None,
+            isomin=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            opacityscale=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            slices=None,
+            spaceframe=None,
+            stream=None,
+            surface=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            value=None,
+            valuehoverformat=None,
+            valuesrc=None,
+            visible=None,
+            x=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zhoverformat=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Volume trace
 
@@ -20820,153 +20660,151 @@ def add_volume(
         Figure
         """
         from plotly.graph_objs import Volume
-
         new_trace = Volume(
-            autocolorscale=autocolorscale,
-            caps=caps,
-            cauto=cauto,
-            cmax=cmax,
-            cmid=cmid,
-            cmin=cmin,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            contour=contour,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            flatshading=flatshading,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            isomax=isomax,
-            isomin=isomin,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            lighting=lighting,
-            lightposition=lightposition,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            opacityscale=opacityscale,
-            reversescale=reversescale,
-            scene=scene,
-            showlegend=showlegend,
-            showscale=showscale,
-            slices=slices,
-            spaceframe=spaceframe,
-            stream=stream,
-            surface=surface,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            value=value,
-            valuehoverformat=valuehoverformat,
-            valuesrc=valuesrc,
-            visible=visible,
-            x=x,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zhoverformat=zhoverformat,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_waterfall(
-        self,
-        alignmentgroup=None,
-        base=None,
-        cliponaxis=None,
-        connector=None,
-        constraintext=None,
-        customdata=None,
-        customdatasrc=None,
-        decreasing=None,
-        dx=None,
-        dy=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        increasing=None,
-        insidetextanchor=None,
-        insidetextfont=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        measure=None,
-        measuresrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        offset=None,
-        offsetgroup=None,
-        offsetsrc=None,
-        opacity=None,
-        orientation=None,
-        outsidetextfont=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textangle=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        totals=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        width=None,
-        widthsrc=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+        
+                autocolorscale=autocolorscale,
+                caps=caps,
+                cauto=cauto,
+                cmax=cmax,
+                cmid=cmid,
+                cmin=cmin,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                contour=contour,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                flatshading=flatshading,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                isomax=isomax,
+                isomin=isomin,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                lighting=lighting,
+                lightposition=lightposition,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                opacityscale=opacityscale,
+                reversescale=reversescale,
+                scene=scene,
+                showlegend=showlegend,
+                showscale=showscale,
+                slices=slices,
+                spaceframe=spaceframe,
+                stream=stream,
+                surface=surface,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                value=value,
+                valuehoverformat=valuehoverformat,
+                valuesrc=valuesrc,
+                visible=visible,
+                x=x,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zhoverformat=zhoverformat,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_waterfall(self,
+            alignmentgroup=None,
+            base=None,
+            cliponaxis=None,
+            connector=None,
+            constraintext=None,
+            customdata=None,
+            customdatasrc=None,
+            decreasing=None,
+            dx=None,
+            dy=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            increasing=None,
+            insidetextanchor=None,
+            insidetextfont=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            measure=None,
+            measuresrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            offset=None,
+            offsetgroup=None,
+            offsetsrc=None,
+            opacity=None,
+            orientation=None,
+            outsidetextfont=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textangle=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            totals=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            width=None,
+            widthsrc=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'Figure':
         """
         Add a new Waterfall trace
 
@@ -21378,86 +21216,87 @@ def add_waterfall(
         Figure
         """
         from plotly.graph_objs import Waterfall
-
         new_trace = Waterfall(
-            alignmentgroup=alignmentgroup,
-            base=base,
-            cliponaxis=cliponaxis,
-            connector=connector,
-            constraintext=constraintext,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            decreasing=decreasing,
-            dx=dx,
-            dy=dy,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            increasing=increasing,
-            insidetextanchor=insidetextanchor,
-            insidetextfont=insidetextfont,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            measure=measure,
-            measuresrc=measuresrc,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            offset=offset,
-            offsetgroup=offsetgroup,
-            offsetsrc=offsetsrc,
-            opacity=opacity,
-            orientation=orientation,
-            outsidetextfont=outsidetextfont,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textangle=textangle,
-            textfont=textfont,
-            textinfo=textinfo,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            totals=totals,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            width=width,
-            widthsrc=widthsrc,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            yhoverformat=yhoverformat,
-            yperiod=yperiod,
-            yperiod0=yperiod0,
-            yperiodalignment=yperiodalignment,
-            ysrc=ysrc,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def select_coloraxes(self, selector=None, row=None, col=None):
+        
+                alignmentgroup=alignmentgroup,
+                base=base,
+                cliponaxis=cliponaxis,
+                connector=connector,
+                constraintext=constraintext,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                decreasing=decreasing,
+                dx=dx,
+                dy=dy,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                increasing=increasing,
+                insidetextanchor=insidetextanchor,
+                insidetextfont=insidetextfont,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                measure=measure,
+                measuresrc=measuresrc,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                offset=offset,
+                offsetgroup=offsetgroup,
+                offsetsrc=offsetsrc,
+                opacity=opacity,
+                orientation=orientation,
+                outsidetextfont=outsidetextfont,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textangle=textangle,
+                textfont=textfont,
+                textinfo=textinfo,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                totals=totals,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                width=width,
+                widthsrc=widthsrc,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                yhoverformat=yhoverformat,
+                yperiod=yperiod,
+                yperiod0=yperiod0,
+                yperiodalignment=yperiodalignment,
+                ysrc=ysrc,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+
+    def select_coloraxes(
+            self, selector=None, row=None, col=None):
         """
         Select coloraxis subplot objects from a particular subplot cell
         and/or coloraxis subplot objects that satisfy custom selection
@@ -21487,9 +21326,11 @@ def select_coloraxes(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("coloraxis", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'coloraxis', selector, row, col)
 
-    def for_each_coloraxis(self, fn, selector=None, row=None, col=None) -> "Figure":
+    def for_each_coloraxis(
+            self, fn, selector=None, row=None, col=None) -> 'Figure':
         """
         Apply a function to all coloraxis objects that satisfy the
         specified selection criteria
@@ -21518,14 +21359,19 @@ def for_each_coloraxis(self, fn, selector=None, row=None, col=None) -> "Figure":
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_coloraxes(selector=selector, row=row, col=col):
+        for obj in self.select_coloraxes(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_coloraxes(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "Figure":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'Figure':
         """
         Perform a property update operation on all coloraxis objects
         that satisfy the specified selection criteria
@@ -21564,12 +21410,14 @@ def update_coloraxes(
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_coloraxes(selector=selector, row=row, col=col):
+        for obj in self.select_coloraxes(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_geos(self, selector=None, row=None, col=None):
+    def select_geos(
+            self, selector=None, row=None, col=None):
         """
         Select geo subplot objects from a particular subplot cell
         and/or geo subplot objects that satisfy custom selection
@@ -21599,9 +21447,11 @@ def select_geos(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("geo", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'geo', selector, row, col)
 
-    def for_each_geo(self, fn, selector=None, row=None, col=None) -> "Figure":
+    def for_each_geo(
+            self, fn, selector=None, row=None, col=None) -> 'Figure':
         """
         Apply a function to all geo objects that satisfy the
         specified selection criteria
@@ -21630,14 +21480,19 @@ def for_each_geo(self, fn, selector=None, row=None, col=None) -> "Figure":
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_geos(selector=selector, row=row, col=col):
+        for obj in self.select_geos(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_geos(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "Figure":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'Figure':
         """
         Perform a property update operation on all geo objects
         that satisfy the specified selection criteria
@@ -21676,12 +21531,14 @@ def update_geos(
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_geos(selector=selector, row=row, col=col):
+        for obj in self.select_geos(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_legends(self, selector=None, row=None, col=None):
+    def select_legends(
+            self, selector=None, row=None, col=None):
         """
         Select legend subplot objects from a particular subplot cell
         and/or legend subplot objects that satisfy custom selection
@@ -21711,9 +21568,11 @@ def select_legends(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("legend", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'legend', selector, row, col)
 
-    def for_each_legend(self, fn, selector=None, row=None, col=None) -> "Figure":
+    def for_each_legend(
+            self, fn, selector=None, row=None, col=None) -> 'Figure':
         """
         Apply a function to all legend objects that satisfy the
         specified selection criteria
@@ -21742,14 +21601,19 @@ def for_each_legend(self, fn, selector=None, row=None, col=None) -> "Figure":
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_legends(selector=selector, row=row, col=col):
+        for obj in self.select_legends(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_legends(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "Figure":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'Figure':
         """
         Perform a property update operation on all legend objects
         that satisfy the specified selection criteria
@@ -21788,12 +21652,14 @@ def update_legends(
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_legends(selector=selector, row=row, col=col):
+        for obj in self.select_legends(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_maps(self, selector=None, row=None, col=None):
+    def select_maps(
+            self, selector=None, row=None, col=None):
         """
         Select map subplot objects from a particular subplot cell
         and/or map subplot objects that satisfy custom selection
@@ -21823,9 +21689,11 @@ def select_maps(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("map", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'map', selector, row, col)
 
-    def for_each_map(self, fn, selector=None, row=None, col=None) -> "Figure":
+    def for_each_map(
+            self, fn, selector=None, row=None, col=None) -> 'Figure':
         """
         Apply a function to all map objects that satisfy the
         specified selection criteria
@@ -21854,14 +21722,19 @@ def for_each_map(self, fn, selector=None, row=None, col=None) -> "Figure":
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_maps(selector=selector, row=row, col=col):
+        for obj in self.select_maps(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_maps(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "Figure":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'Figure':
         """
         Perform a property update operation on all map objects
         that satisfy the specified selection criteria
@@ -21900,12 +21773,14 @@ def update_maps(
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_maps(selector=selector, row=row, col=col):
+        for obj in self.select_maps(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_mapboxes(self, selector=None, row=None, col=None):
+    def select_mapboxes(
+            self, selector=None, row=None, col=None):
         """
         Select mapbox subplot objects from a particular subplot cell
         and/or mapbox subplot objects that satisfy custom selection
@@ -21935,9 +21810,11 @@ def select_mapboxes(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("mapbox", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'mapbox', selector, row, col)
 
-    def for_each_mapbox(self, fn, selector=None, row=None, col=None) -> "Figure":
+    def for_each_mapbox(
+            self, fn, selector=None, row=None, col=None) -> 'Figure':
         """
         Apply a function to all mapbox objects that satisfy the
         specified selection criteria
@@ -21966,14 +21843,19 @@ def for_each_mapbox(self, fn, selector=None, row=None, col=None) -> "Figure":
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_mapboxes(selector=selector, row=row, col=col):
+        for obj in self.select_mapboxes(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_mapboxes(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "Figure":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'Figure':
         """
         Perform a property update operation on all mapbox objects
         that satisfy the specified selection criteria
@@ -22012,12 +21894,14 @@ def update_mapboxes(
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_mapboxes(selector=selector, row=row, col=col):
+        for obj in self.select_mapboxes(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_polars(self, selector=None, row=None, col=None):
+    def select_polars(
+            self, selector=None, row=None, col=None):
         """
         Select polar subplot objects from a particular subplot cell
         and/or polar subplot objects that satisfy custom selection
@@ -22047,9 +21931,11 @@ def select_polars(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("polar", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'polar', selector, row, col)
 
-    def for_each_polar(self, fn, selector=None, row=None, col=None) -> "Figure":
+    def for_each_polar(
+            self, fn, selector=None, row=None, col=None) -> 'Figure':
         """
         Apply a function to all polar objects that satisfy the
         specified selection criteria
@@ -22078,14 +21964,19 @@ def for_each_polar(self, fn, selector=None, row=None, col=None) -> "Figure":
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_polars(selector=selector, row=row, col=col):
+        for obj in self.select_polars(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_polars(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "Figure":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'Figure':
         """
         Perform a property update operation on all polar objects
         that satisfy the specified selection criteria
@@ -22124,12 +22015,14 @@ def update_polars(
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_polars(selector=selector, row=row, col=col):
+        for obj in self.select_polars(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_scenes(self, selector=None, row=None, col=None):
+    def select_scenes(
+            self, selector=None, row=None, col=None):
         """
         Select scene subplot objects from a particular subplot cell
         and/or scene subplot objects that satisfy custom selection
@@ -22159,9 +22052,11 @@ def select_scenes(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("scene", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'scene', selector, row, col)
 
-    def for_each_scene(self, fn, selector=None, row=None, col=None) -> "Figure":
+    def for_each_scene(
+            self, fn, selector=None, row=None, col=None) -> 'Figure':
         """
         Apply a function to all scene objects that satisfy the
         specified selection criteria
@@ -22190,14 +22085,19 @@ def for_each_scene(self, fn, selector=None, row=None, col=None) -> "Figure":
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_scenes(selector=selector, row=row, col=col):
+        for obj in self.select_scenes(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_scenes(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "Figure":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'Figure':
         """
         Perform a property update operation on all scene objects
         that satisfy the specified selection criteria
@@ -22236,12 +22136,14 @@ def update_scenes(
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_scenes(selector=selector, row=row, col=col):
+        for obj in self.select_scenes(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_smiths(self, selector=None, row=None, col=None):
+    def select_smiths(
+            self, selector=None, row=None, col=None):
         """
         Select smith subplot objects from a particular subplot cell
         and/or smith subplot objects that satisfy custom selection
@@ -22271,9 +22173,11 @@ def select_smiths(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("smith", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'smith', selector, row, col)
 
-    def for_each_smith(self, fn, selector=None, row=None, col=None) -> "Figure":
+    def for_each_smith(
+            self, fn, selector=None, row=None, col=None) -> 'Figure':
         """
         Apply a function to all smith objects that satisfy the
         specified selection criteria
@@ -22302,14 +22206,19 @@ def for_each_smith(self, fn, selector=None, row=None, col=None) -> "Figure":
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_smiths(selector=selector, row=row, col=col):
+        for obj in self.select_smiths(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_smiths(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "Figure":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'Figure':
         """
         Perform a property update operation on all smith objects
         that satisfy the specified selection criteria
@@ -22348,12 +22257,14 @@ def update_smiths(
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_smiths(selector=selector, row=row, col=col):
+        for obj in self.select_smiths(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_ternaries(self, selector=None, row=None, col=None):
+    def select_ternaries(
+            self, selector=None, row=None, col=None):
         """
         Select ternary subplot objects from a particular subplot cell
         and/or ternary subplot objects that satisfy custom selection
@@ -22383,9 +22294,11 @@ def select_ternaries(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("ternary", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'ternary', selector, row, col)
 
-    def for_each_ternary(self, fn, selector=None, row=None, col=None) -> "Figure":
+    def for_each_ternary(
+            self, fn, selector=None, row=None, col=None) -> 'Figure':
         """
         Apply a function to all ternary objects that satisfy the
         specified selection criteria
@@ -22414,14 +22327,19 @@ def for_each_ternary(self, fn, selector=None, row=None, col=None) -> "Figure":
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_ternaries(selector=selector, row=row, col=col):
+        for obj in self.select_ternaries(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_ternaries(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "Figure":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'Figure':
         """
         Perform a property update operation on all ternary objects
         that satisfy the specified selection criteria
@@ -22460,12 +22378,14 @@ def update_ternaries(
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_ternaries(selector=selector, row=row, col=col):
+        for obj in self.select_ternaries(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_xaxes(self, selector=None, row=None, col=None):
+    def select_xaxes(
+            self, selector=None, row=None, col=None):
         """
         Select xaxis subplot objects from a particular subplot cell
         and/or xaxis subplot objects that satisfy custom selection
@@ -22495,9 +22415,11 @@ def select_xaxes(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("xaxis", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'xaxis', selector, row, col)
 
-    def for_each_xaxis(self, fn, selector=None, row=None, col=None) -> "Figure":
+    def for_each_xaxis(
+            self, fn, selector=None, row=None, col=None) -> 'Figure':
         """
         Apply a function to all xaxis objects that satisfy the
         specified selection criteria
@@ -22526,14 +22448,19 @@ def for_each_xaxis(self, fn, selector=None, row=None, col=None) -> "Figure":
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_xaxes(selector=selector, row=row, col=col):
+        for obj in self.select_xaxes(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_xaxes(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "Figure":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'Figure':
         """
         Perform a property update operation on all xaxis objects
         that satisfy the specified selection criteria
@@ -22572,12 +22499,14 @@ def update_xaxes(
         self
             Returns the Figure object that the method was called on
         """
-        for obj in self.select_xaxes(selector=selector, row=row, col=col):
+        for obj in self.select_xaxes(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_yaxes(self, selector=None, row=None, col=None, secondary_y=None):
+    def select_yaxes(
+            self, selector=None, row=None, col=None, secondary_y=None):
         """
         Select yaxis subplot objects from a particular subplot cell
         and/or yaxis subplot objects that satisfy custom selection
@@ -22620,12 +22549,10 @@ def select_yaxes(self, selector=None, row=None, col=None, secondary_y=None):
         """
 
         return self._select_layout_subplots_by_prefix(
-            "yaxis", selector, row, col, secondary_y=secondary_y
-        )
+            'yaxis', selector, row, col, secondary_y=secondary_y)
 
     def for_each_yaxis(
-        self, fn, selector=None, row=None, col=None, secondary_y=None
-    ) -> "Figure":
+            self, fn, selector=None, row=None, col=None, secondary_y=None) -> 'Figure':
         """
         Apply a function to all yaxis objects that satisfy the
         specified selection criteria
@@ -22667,22 +22594,18 @@ def for_each_yaxis(
             Returns the Figure object that the method was called on
         """
         for obj in self.select_yaxes(
-            selector=selector, row=row, col=col, secondary_y=secondary_y
-        ):
+                selector=selector, row=row, col=col, secondary_y=secondary_y):
             fn(obj)
 
         return self
 
     def update_yaxes(
-        self,
-        patch=None,
-        selector=None,
-        overwrite=False,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "Figure":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None, secondary_y=None,
+            **kwargs) -> 'Figure':
         """
         Perform a property update operation on all yaxis objects
         that satisfy the specified selection criteria
@@ -22734,13 +22657,13 @@ def update_yaxes(
             Returns the Figure object that the method was called on
         """
         for obj in self.select_yaxes(
-            selector=selector, row=row, col=col, secondary_y=secondary_y
-        ):
+                selector=selector, row=row, col=col, secondary_y=secondary_y):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
-
-    def select_annotations(self, selector=None, row=None, col=None, secondary_y=None):
+    def select_annotations(
+        self, selector=None, row=None, col=None, secondary_y=None
+    ):
         """
         Select annotations from a particular subplot cell and/or annotations
         that satisfy custom selection criteria.
@@ -22832,7 +22755,7 @@ def for_each_annotation(
             Returns the Figure object that the method was called on
         """
         for obj in self._select_annotations_like(
-            prop="annotations",
+            prop='annotations',
             selector=selector,
             row=row,
             col=col,
@@ -22843,8 +22766,14 @@ def for_each_annotation(
         return self
 
     def update_annotations(
-        self, patch=None, selector=None, row=None, col=None, secondary_y=None, **kwargs
-    ) -> "Figure":
+        self,
+        patch=None,
+        selector=None,
+        row=None,
+        col=None,
+        secondary_y=None,
+        **kwargs
+    ) -> 'Figure':
         """
         Perform a property update operation on all annotations that satisfy the
         specified selection criteria
@@ -22894,7 +22823,7 @@ def update_annotations(
             Returns the Figure object that the method was called on
         """
         for obj in self._select_annotations_like(
-            prop="annotations",
+            prop='annotations',
             selector=selector,
             row=row,
             col=col,
@@ -22904,58 +22833,57 @@ def update_annotations(
 
         return self
 
-    def add_annotation(
-        self,
-        arg=None,
-        align=None,
-        arrowcolor=None,
-        arrowhead=None,
-        arrowside=None,
-        arrowsize=None,
-        arrowwidth=None,
-        ax=None,
-        axref=None,
-        ay=None,
-        ayref=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderpad=None,
-        borderwidth=None,
-        captureevents=None,
-        clicktoshow=None,
-        font=None,
-        height=None,
-        hoverlabel=None,
-        hovertext=None,
-        name=None,
-        opacity=None,
-        showarrow=None,
-        standoff=None,
-        startarrowhead=None,
-        startarrowsize=None,
-        startstandoff=None,
-        templateitemname=None,
-        text=None,
-        textangle=None,
-        valign=None,
-        visible=None,
-        width=None,
-        x=None,
-        xanchor=None,
-        xclick=None,
-        xref=None,
-        xshift=None,
-        y=None,
-        yanchor=None,
-        yclick=None,
-        yref=None,
-        yshift=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        exclude_empty_subplots=None,
-        **kwargs,
-    ) -> "Figure":
+    def add_annotation(self,
+            arg=None,
+            align=None,
+            arrowcolor=None,
+            arrowhead=None,
+            arrowside=None,
+            arrowsize=None,
+            arrowwidth=None,
+            ax=None,
+            axref=None,
+            ay=None,
+            ayref=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderpad=None,
+            borderwidth=None,
+            captureevents=None,
+            clicktoshow=None,
+            font=None,
+            height=None,
+            hoverlabel=None,
+            hovertext=None,
+            name=None,
+            opacity=None,
+            showarrow=None,
+            standoff=None,
+            startarrowhead=None,
+            startarrowsize=None,
+            startstandoff=None,
+            templateitemname=None,
+            text=None,
+            textangle=None,
+            valign=None,
+            visible=None,
+            width=None,
+            x=None,
+            xanchor=None,
+            xclick=None,
+            xref=None,
+            xshift=None,
+            y=None,
+            yanchor=None,
+            yclick=None,
+            yref=None,
+            yshift=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            exclude_empty_subplots=None,
+            **kwargs
+        )-> 'Figure':
         """
         Create and add a new annotation to the figure's layout
 
@@ -23259,65 +23187,63 @@ def add_annotation(
         Figure
         """
         from plotly.graph_objs import layout as _layout
-
-        new_obj = _layout.Annotation(
-            arg,
-            align=align,
-            arrowcolor=arrowcolor,
-            arrowhead=arrowhead,
-            arrowside=arrowside,
-            arrowsize=arrowsize,
-            arrowwidth=arrowwidth,
-            ax=ax,
-            axref=axref,
-            ay=ay,
-            ayref=ayref,
-            bgcolor=bgcolor,
-            bordercolor=bordercolor,
-            borderpad=borderpad,
-            borderwidth=borderwidth,
-            captureevents=captureevents,
-            clicktoshow=clicktoshow,
-            font=font,
-            height=height,
-            hoverlabel=hoverlabel,
-            hovertext=hovertext,
-            name=name,
-            opacity=opacity,
-            showarrow=showarrow,
-            standoff=standoff,
-            startarrowhead=startarrowhead,
-            startarrowsize=startarrowsize,
-            startstandoff=startstandoff,
-            templateitemname=templateitemname,
-            text=text,
-            textangle=textangle,
-            valign=valign,
-            visible=visible,
-            width=width,
-            x=x,
-            xanchor=xanchor,
-            xclick=xclick,
-            xref=xref,
-            xshift=xshift,
-            y=y,
-            yanchor=yanchor,
-            yclick=yclick,
-            yref=yref,
-            yshift=yshift,
-            **kwargs,
-        )
+        new_obj = _layout.Annotation(arg,
+            
+                align=align,
+                arrowcolor=arrowcolor,
+                arrowhead=arrowhead,
+                arrowside=arrowside,
+                arrowsize=arrowsize,
+                arrowwidth=arrowwidth,
+                ax=ax,
+                axref=axref,
+                ay=ay,
+                ayref=ayref,
+                bgcolor=bgcolor,
+                bordercolor=bordercolor,
+                borderpad=borderpad,
+                borderwidth=borderwidth,
+                captureevents=captureevents,
+                clicktoshow=clicktoshow,
+                font=font,
+                height=height,
+                hoverlabel=hoverlabel,
+                hovertext=hovertext,
+                name=name,
+                opacity=opacity,
+                showarrow=showarrow,
+                standoff=standoff,
+                startarrowhead=startarrowhead,
+                startarrowsize=startarrowsize,
+                startstandoff=startstandoff,
+                templateitemname=templateitemname,
+                text=text,
+                textangle=textangle,
+                valign=valign,
+                visible=visible,
+                width=width,
+                x=x,
+                xanchor=xanchor,
+                xclick=xclick,
+                xref=xref,
+                xshift=xshift,
+                y=y,
+                yanchor=yanchor,
+                yclick=yclick,
+                yref=yref,
+                yshift=yshift,**kwargs)
         return self._add_annotation_like(
-            "annotation",
-            "annotations",
+            'annotation',
+            'annotations',
             new_obj,
             row=row,
             col=col,
             secondary_y=secondary_y,
             exclude_empty_subplots=exclude_empty_subplots,
         )
-
-    def select_layout_images(self, selector=None, row=None, col=None, secondary_y=None):
+    def select_layout_images(
+        self, selector=None, row=None, col=None, secondary_y=None
+    ):
         """
         Select images from a particular subplot cell and/or images
         that satisfy custom selection criteria.
@@ -23409,7 +23335,7 @@ def for_each_layout_image(
             Returns the Figure object that the method was called on
         """
         for obj in self._select_annotations_like(
-            prop="images",
+            prop='images',
             selector=selector,
             row=row,
             col=col,
@@ -23420,8 +23346,14 @@ def for_each_layout_image(
         return self
 
     def update_layout_images(
-        self, patch=None, selector=None, row=None, col=None, secondary_y=None, **kwargs
-    ) -> "Figure":
+        self,
+        patch=None,
+        selector=None,
+        row=None,
+        col=None,
+        secondary_y=None,
+        **kwargs
+    ) -> 'Figure':
         """
         Perform a property update operation on all images that satisfy the
         specified selection criteria
@@ -23471,7 +23403,7 @@ def update_layout_images(
             Returns the Figure object that the method was called on
         """
         for obj in self._select_annotations_like(
-            prop="images",
+            prop='images',
             selector=selector,
             row=row,
             col=col,
@@ -23481,30 +23413,29 @@ def update_layout_images(
 
         return self
 
-    def add_layout_image(
-        self,
-        arg=None,
-        layer=None,
-        name=None,
-        opacity=None,
-        sizex=None,
-        sizey=None,
-        sizing=None,
-        source=None,
-        templateitemname=None,
-        visible=None,
-        x=None,
-        xanchor=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        yref=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        exclude_empty_subplots=None,
-        **kwargs,
-    ) -> "Figure":
+    def add_layout_image(self,
+            arg=None,
+            layer=None,
+            name=None,
+            opacity=None,
+            sizex=None,
+            sizey=None,
+            sizing=None,
+            source=None,
+            templateitemname=None,
+            visible=None,
+            x=None,
+            xanchor=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            yref=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            exclude_empty_subplots=None,
+            **kwargs
+        )-> 'Figure':
         """
         Create and add a new image to the figure's layout
 
@@ -23614,37 +23545,35 @@ def add_layout_image(
         Figure
         """
         from plotly.graph_objs import layout as _layout
-
-        new_obj = _layout.Image(
-            arg,
-            layer=layer,
-            name=name,
-            opacity=opacity,
-            sizex=sizex,
-            sizey=sizey,
-            sizing=sizing,
-            source=source,
-            templateitemname=templateitemname,
-            visible=visible,
-            x=x,
-            xanchor=xanchor,
-            xref=xref,
-            y=y,
-            yanchor=yanchor,
-            yref=yref,
-            **kwargs,
-        )
+        new_obj = _layout.Image(arg,
+            
+                layer=layer,
+                name=name,
+                opacity=opacity,
+                sizex=sizex,
+                sizey=sizey,
+                sizing=sizing,
+                source=source,
+                templateitemname=templateitemname,
+                visible=visible,
+                x=x,
+                xanchor=xanchor,
+                xref=xref,
+                y=y,
+                yanchor=yanchor,
+                yref=yref,**kwargs)
         return self._add_annotation_like(
-            "image",
-            "images",
+            'image',
+            'images',
             new_obj,
             row=row,
             col=col,
             secondary_y=secondary_y,
             exclude_empty_subplots=exclude_empty_subplots,
         )
-
-    def select_selections(self, selector=None, row=None, col=None, secondary_y=None):
+    def select_selections(
+        self, selector=None, row=None, col=None, secondary_y=None
+    ):
         """
         Select selections from a particular subplot cell and/or selections
         that satisfy custom selection criteria.
@@ -23736,7 +23665,7 @@ def for_each_selection(
             Returns the Figure object that the method was called on
         """
         for obj in self._select_annotations_like(
-            prop="selections",
+            prop='selections',
             selector=selector,
             row=row,
             col=col,
@@ -23747,8 +23676,14 @@ def for_each_selection(
         return self
 
     def update_selections(
-        self, patch=None, selector=None, row=None, col=None, secondary_y=None, **kwargs
-    ) -> "Figure":
+        self,
+        patch=None,
+        selector=None,
+        row=None,
+        col=None,
+        secondary_y=None,
+        **kwargs
+    ) -> 'Figure':
         """
         Perform a property update operation on all selections that satisfy the
         specified selection criteria
@@ -23798,7 +23733,7 @@ def update_selections(
             Returns the Figure object that the method was called on
         """
         for obj in self._select_annotations_like(
-            prop="selections",
+            prop='selections',
             selector=selector,
             row=row,
             col=col,
@@ -23808,27 +23743,26 @@ def update_selections(
 
         return self
 
-    def add_selection(
-        self,
-        arg=None,
-        line=None,
-        name=None,
-        opacity=None,
-        path=None,
-        templateitemname=None,
-        type=None,
-        x0=None,
-        x1=None,
-        xref=None,
-        y0=None,
-        y1=None,
-        yref=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        exclude_empty_subplots=None,
-        **kwargs,
-    ) -> "Figure":
+    def add_selection(self,
+            arg=None,
+            line=None,
+            name=None,
+            opacity=None,
+            path=None,
+            templateitemname=None,
+            type=None,
+            x0=None,
+            x1=None,
+            xref=None,
+            y0=None,
+            y1=None,
+            yref=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            exclude_empty_subplots=None,
+            **kwargs
+        )-> 'Figure':
         """
         Create and add a new selection to the figure's layout
 
@@ -23923,34 +23857,32 @@ def add_selection(
         Figure
         """
         from plotly.graph_objs import layout as _layout
-
-        new_obj = _layout.Selection(
-            arg,
-            line=line,
-            name=name,
-            opacity=opacity,
-            path=path,
-            templateitemname=templateitemname,
-            type=type,
-            x0=x0,
-            x1=x1,
-            xref=xref,
-            y0=y0,
-            y1=y1,
-            yref=yref,
-            **kwargs,
-        )
+        new_obj = _layout.Selection(arg,
+            
+                line=line,
+                name=name,
+                opacity=opacity,
+                path=path,
+                templateitemname=templateitemname,
+                type=type,
+                x0=x0,
+                x1=x1,
+                xref=xref,
+                y0=y0,
+                y1=y1,
+                yref=yref,**kwargs)
         return self._add_annotation_like(
-            "selection",
-            "selections",
+            'selection',
+            'selections',
             new_obj,
             row=row,
             col=col,
             secondary_y=secondary_y,
             exclude_empty_subplots=exclude_empty_subplots,
         )
-
-    def select_shapes(self, selector=None, row=None, col=None, secondary_y=None):
+    def select_shapes(
+        self, selector=None, row=None, col=None, secondary_y=None
+    ):
         """
         Select shapes from a particular subplot cell and/or shapes
         that satisfy custom selection criteria.
@@ -23996,7 +23928,9 @@ def select_shapes(self, selector=None, row=None, col=None, secondary_y=None):
             "shapes", selector=selector, row=row, col=col, secondary_y=secondary_y
         )
 
-    def for_each_shape(self, fn, selector=None, row=None, col=None, secondary_y=None):
+    def for_each_shape(
+        self, fn, selector=None, row=None, col=None, secondary_y=None
+    ):
         """
         Apply a function to all shapes that satisfy the specified selection
         criteria
@@ -24040,7 +23974,7 @@ def for_each_shape(self, fn, selector=None, row=None, col=None, secondary_y=None
             Returns the Figure object that the method was called on
         """
         for obj in self._select_annotations_like(
-            prop="shapes",
+            prop='shapes',
             selector=selector,
             row=row,
             col=col,
@@ -24051,8 +23985,14 @@ def for_each_shape(self, fn, selector=None, row=None, col=None, secondary_y=None
         return self
 
     def update_shapes(
-        self, patch=None, selector=None, row=None, col=None, secondary_y=None, **kwargs
-    ) -> "Figure":
+        self,
+        patch=None,
+        selector=None,
+        row=None,
+        col=None,
+        secondary_y=None,
+        **kwargs
+    ) -> 'Figure':
         """
         Perform a property update operation on all shapes that satisfy the
         specified selection criteria
@@ -24102,7 +24042,7 @@ def update_shapes(
             Returns the Figure object that the method was called on
         """
         for obj in self._select_annotations_like(
-            prop="shapes",
+            prop='shapes',
             selector=selector,
             row=row,
             col=col,
@@ -24112,47 +24052,46 @@ def update_shapes(
 
         return self
 
-    def add_shape(
-        self,
-        arg=None,
-        editable=None,
-        fillcolor=None,
-        fillrule=None,
-        label=None,
-        layer=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        name=None,
-        opacity=None,
-        path=None,
-        showlegend=None,
-        templateitemname=None,
-        type=None,
-        visible=None,
-        x0=None,
-        x0shift=None,
-        x1=None,
-        x1shift=None,
-        xanchor=None,
-        xref=None,
-        xsizemode=None,
-        y0=None,
-        y0shift=None,
-        y1=None,
-        y1shift=None,
-        yanchor=None,
-        yref=None,
-        ysizemode=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        exclude_empty_subplots=None,
-        **kwargs,
-    ) -> "Figure":
+    def add_shape(self,
+            arg=None,
+            editable=None,
+            fillcolor=None,
+            fillrule=None,
+            label=None,
+            layer=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            name=None,
+            opacity=None,
+            path=None,
+            showlegend=None,
+            templateitemname=None,
+            type=None,
+            visible=None,
+            x0=None,
+            x0shift=None,
+            x1=None,
+            x1shift=None,
+            xanchor=None,
+            xref=None,
+            xsizemode=None,
+            y0=None,
+            y0shift=None,
+            y1=None,
+            y1shift=None,
+            yanchor=None,
+            yref=None,
+            ysizemode=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            exclude_empty_subplots=None,
+            **kwargs
+        )-> 'Figure':
         """
         Create and add a new shape to the figure's layout
 
@@ -24386,46 +24325,43 @@ def add_shape(
         Figure
         """
         from plotly.graph_objs import layout as _layout
-
-        new_obj = _layout.Shape(
-            arg,
-            editable=editable,
-            fillcolor=fillcolor,
-            fillrule=fillrule,
-            label=label,
-            layer=layer,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            name=name,
-            opacity=opacity,
-            path=path,
-            showlegend=showlegend,
-            templateitemname=templateitemname,
-            type=type,
-            visible=visible,
-            x0=x0,
-            x0shift=x0shift,
-            x1=x1,
-            x1shift=x1shift,
-            xanchor=xanchor,
-            xref=xref,
-            xsizemode=xsizemode,
-            y0=y0,
-            y0shift=y0shift,
-            y1=y1,
-            y1shift=y1shift,
-            yanchor=yanchor,
-            yref=yref,
-            ysizemode=ysizemode,
-            **kwargs,
-        )
+        new_obj = _layout.Shape(arg,
+            
+                editable=editable,
+                fillcolor=fillcolor,
+                fillrule=fillrule,
+                label=label,
+                layer=layer,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                name=name,
+                opacity=opacity,
+                path=path,
+                showlegend=showlegend,
+                templateitemname=templateitemname,
+                type=type,
+                visible=visible,
+                x0=x0,
+                x0shift=x0shift,
+                x1=x1,
+                x1shift=x1shift,
+                xanchor=xanchor,
+                xref=xref,
+                xsizemode=xsizemode,
+                y0=y0,
+                y0shift=y0shift,
+                y1=y1,
+                y1shift=y1shift,
+                yanchor=yanchor,
+                yref=yref,
+                ysizemode=ysizemode,**kwargs)
         return self._add_annotation_like(
-            "shape",
-            "shapes",
+            'shape',
+            'shapes',
             new_obj,
             row=row,
             col=col,
diff --git a/plotly/graph_objs/_figurewidget.py b/plotly/graph_objs/_figurewidget.py
index 5955507022b..7c17fce78e7 100644
--- a/plotly/graph_objs/_figurewidget.py
+++ b/plotly/graph_objs/_figurewidget.py
@@ -1,3 +1,5 @@
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -6,9 +8,8 @@
 
 class FigureWidget(BaseFigureWidget):
 
-    def __init__(
-        self, data=None, layout=None, frames=None, skip_invalid=False, **kwargs
-    ):
+    def __init__(self, data=None, layout=None,
+                 frames=None, skip_invalid=False, **kwargs):
         """
         Create a new :class:FigureWidget instance
 
@@ -39,10 +40,10 @@ def __init__(
                              'scatterternary', 'splom', 'streamtube',
                              'sunburst', 'surface', 'table', 'treemap',
                              'violin', 'volume', 'waterfall']
-
+        
                 - All remaining properties are passed to the constructor of
                   the specified trace type
-
+        
                 (e.g. [{'type': 'scatter', ...}, {'type': 'bar, ...}])
 
         layout
@@ -71,10 +72,10 @@ def __init__(
             is invalid AND skip_invalid is False
         """
         super().__init__(data, layout, frames, skip_invalid, **kwargs)
-
+    
     def update(self, dict1=None, overwrite=False, **kwargs) -> "FigureWidget":
-        """
-
+        '''
+        
         Update the properties of the figure with a dict and/or with
         keyword arguments.
 
@@ -119,22 +120,13 @@ def update(self, dict1=None, overwrite=False, **kwargs) -> "FigureWidget":
         -------
         BaseFigure
             Updated figure
-
-        """
+        
+        '''
         return super().update(dict1, overwrite, **kwargs)
-
-    def update_traces(
-        self,
-        patch=None,
-        selector=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        overwrite=False,
-        **kwargs,
-    ) -> "FigureWidget":
-        """
-
+    
+    def update_traces(self, patch=None, selector=None, row=None, col=None, secondary_y=None, overwrite=False, **kwargs) -> "FigureWidget":
+        '''
+        
         Perform a property update operation on all traces that satisfy the
         specified selection criteria
 
@@ -184,15 +176,13 @@ def update_traces(
         -------
         self
             Returns the Figure object that the method was called on
-
-        """
-        return super().update_traces(
-            patch, selector, row, col, secondary_y, overwrite, **kwargs
-        )
-
+        
+        '''
+        return super().update_traces(patch, selector, row, col, secondary_y, overwrite, **kwargs)
+    
     def update_layout(self, dict1=None, overwrite=False, **kwargs) -> "FigureWidget":
-        """
-
+        '''
+        
         Update the properties of the figure's layout with a dict and/or with
         keyword arguments.
 
@@ -214,15 +204,13 @@ def update_layout(self, dict1=None, overwrite=False, **kwargs) -> "FigureWidget"
         -------
         BaseFigure
             The Figure object that the update_layout method was called on
-
-        """
+        
+        '''
         return super().update_layout(dict1, overwrite, **kwargs)
-
-    def for_each_trace(
-        self, fn, selector=None, row=None, col=None, secondary_y=None
-    ) -> "FigureWidget":
-        """
-
+    
+    def for_each_trace(self, fn, selector=None, row=None, col=None, secondary_y=None) -> "FigureWidget":
+        '''
+        
         Apply a function to all traces that satisfy the specified selection
         criteria
 
@@ -262,15 +250,13 @@ def for_each_trace(
         -------
         self
             Returns the Figure object that the method was called on
-
-        """
+        
+        '''
         return super().for_each_trace(fn, selector, row, col, secondary_y)
-
-    def add_trace(
-        self, trace, row=None, col=None, secondary_y=None, exclude_empty_subplots=False
-    ) -> "FigureWidget":
-        """
-
+    
+    def add_trace(self, trace, row=None, col=None, secondary_y=None, exclude_empty_subplots=False) -> "FigureWidget":
+        '''
+        
         Add a trace to the figure
 
         Parameters
@@ -339,20 +325,13 @@ def add_trace(
         Figure(...)
         >>> fig.add_trace(go.Scatter(x=[1,2,3], y=[2,1,2]), row=2, col=1) # doctest: +ELLIPSIS
         Figure(...)
-
-        """
+        
+        '''
         return super().add_trace(trace, row, col, secondary_y, exclude_empty_subplots)
-
-    def add_traces(
-        self,
-        data,
-        rows=None,
-        cols=None,
-        secondary_ys=None,
-        exclude_empty_subplots=False,
-    ) -> "FigureWidget":
-        """
-
+    
+    def add_traces(self, data,rows=None,cols=None,secondary_ys=None,exclude_empty_subplots=False) -> "FigureWidget":
+        '''
+        
         Add traces to the figure
 
         Parameters
@@ -417,321 +396,274 @@ def add_traces(
         ...                 go.Scatter(x=[1,2,3], y=[2,1,2])],
         ...                 rows=[1, 2], cols=[1, 1]) # doctest: +ELLIPSIS
         Figure(...)
-
-        """
-        return super().add_traces(
-            data, rows, cols, secondary_ys, exclude_empty_subplots
-        )
-
-    def add_vline(
-        self,
-        x,
-        row="all",
-        col="all",
-        exclude_empty_subplots=True,
-        annotation=None,
-        **kwargs,
-    ) -> "FigureWidget":
-        """
-
-        Add a vertical line to a plot or subplot that extends infinitely in the
-        y-dimension.
-
-        Parameters
-        ----------
-        x: float or int
-            A number representing the x coordinate of the vertical line.
-        exclude_empty_subplots: Boolean
-            If True (default) do not place the shape on subplots that have no data
-            plotted on them.
-        row: None, int or 'all'
-            Subplot row for shape indexed starting at 1. If 'all', addresses all rows in
-            the specified column(s). If both row and col are None, addresses the
-            first subplot if subplots exist, or the only plot. By default is "all".
-        col: None, int or 'all'
-            Subplot column for shape indexed starting at 1. If 'all', addresses all rows in
-            the specified column(s). If both row and col are None, addresses the
-            first subplot if subplots exist, or the only plot. By default is "all".
-        annotation: dict or plotly.graph_objects.layout.Annotation. If dict(),
-            it is interpreted as describing an annotation. The annotation is
-            placed relative to the shape based on annotation_position (see
-            below) unless its x or y value has been specified for the annotation
-            passed here. xref and yref are always the same as for the added
-            shape and cannot be overridden.
-        annotation_position: a string containing optionally ["top", "bottom"]
-            and ["left", "right"] specifying where the text should be anchored
-            to on the line. Example positions are "bottom left", "right top",
-            "right", "bottom". If an annotation is added but annotation_position is
-            not specified, this defaults to "top right".
-        annotation_*: any parameters to go.layout.Annotation can be passed as
-            keywords by prefixing them with "annotation_". For example, to specify the
-            annotation text "example" you can pass annotation_text="example" as a
-            keyword argument.
-        **kwargs:
-            Any named function parameters that can be passed to 'add_shape',
-            except for x0, x1, y0, y1 or type.
-        """
-        return super().add_vline(
-            x, row, col, exclude_empty_subplots, annotation, **kwargs
-        )
-
-    def add_hline(
-        self,
-        y,
-        row="all",
-        col="all",
-        exclude_empty_subplots=True,
-        annotation=None,
-        **kwargs,
-    ) -> "FigureWidget":
-        """
-
-        Add a horizontal line to a plot or subplot that extends infinitely in the
-        x-dimension.
-
-        Parameters
-        ----------
-        y: float or int
-            A number representing the y coordinate of the horizontal line.
-        exclude_empty_subplots: Boolean
-            If True (default) do not place the shape on subplots that have no data
-            plotted on them.
-        row: None, int or 'all'
-            Subplot row for shape indexed starting at 1. If 'all', addresses all rows in
-            the specified column(s). If both row and col are None, addresses the
-            first subplot if subplots exist, or the only plot. By default is "all".
-        col: None, int or 'all'
-            Subplot column for shape indexed starting at 1. If 'all', addresses all rows in
-            the specified column(s). If both row and col are None, addresses the
-            first subplot if subplots exist, or the only plot. By default is "all".
-        annotation: dict or plotly.graph_objects.layout.Annotation. If dict(),
-            it is interpreted as describing an annotation. The annotation is
-            placed relative to the shape based on annotation_position (see
-            below) unless its x or y value has been specified for the annotation
-            passed here. xref and yref are always the same as for the added
-            shape and cannot be overridden.
-        annotation_position: a string containing optionally ["top", "bottom"]
-            and ["left", "right"] specifying where the text should be anchored
-            to on the line. Example positions are "bottom left", "right top",
-            "right", "bottom". If an annotation is added but annotation_position is
-            not specified, this defaults to "top right".
-        annotation_*: any parameters to go.layout.Annotation can be passed as
-            keywords by prefixing them with "annotation_". For example, to specify the
-            annotation text "example" you can pass annotation_text="example" as a
-            keyword argument.
-        **kwargs:
-            Any named function parameters that can be passed to 'add_shape',
-            except for x0, x1, y0, y1 or type.
-        """
-        return super().add_hline(
-            y, row, col, exclude_empty_subplots, annotation, **kwargs
-        )
-
-    def add_vrect(
-        self,
-        x0,
-        x1,
-        row="all",
-        col="all",
-        exclude_empty_subplots=True,
-        annotation=None,
-        **kwargs,
-    ) -> "FigureWidget":
-        """
-
-        Add a rectangle to a plot or subplot that extends infinitely in the
-        y-dimension.
-
-        Parameters
-        ----------
-        x0: float or int
-            A number representing the x coordinate of one side of the rectangle.
-        x1: float or int
-            A number representing the x coordinate of the other side of the rectangle.
-        exclude_empty_subplots: Boolean
-            If True (default) do not place the shape on subplots that have no data
-            plotted on them.
-        row: None, int or 'all'
-            Subplot row for shape indexed starting at 1. If 'all', addresses all rows in
-            the specified column(s). If both row and col are None, addresses the
-            first subplot if subplots exist, or the only plot. By default is "all".
-        col: None, int or 'all'
-            Subplot column for shape indexed starting at 1. If 'all', addresses all rows in
-            the specified column(s). If both row and col are None, addresses the
-            first subplot if subplots exist, or the only plot. By default is "all".
-        annotation: dict or plotly.graph_objects.layout.Annotation. If dict(),
-            it is interpreted as describing an annotation. The annotation is
-            placed relative to the shape based on annotation_position (see
-            below) unless its x or y value has been specified for the annotation
-            passed here. xref and yref are always the same as for the added
-            shape and cannot be overridden.
-        annotation_position: a string containing optionally ["inside", "outside"], ["top", "bottom"]
-            and ["left", "right"] specifying where the text should be anchored
-            to on the rectangle. Example positions are "outside top left", "inside
-            bottom", "right", "inside left", "inside" ("outside" is not supported). If
-            an annotation is added but annotation_position is not specified this
-            defaults to "inside top right".
-        annotation_*: any parameters to go.layout.Annotation can be passed as
-            keywords by prefixing them with "annotation_". For example, to specify the
-            annotation text "example" you can pass annotation_text="example" as a
-            keyword argument.
-        **kwargs:
-            Any named function parameters that can be passed to 'add_shape',
-            except for x0, x1, y0, y1 or type.
-        """
-        return super().add_vrect(
-            x0, x1, row, col, exclude_empty_subplots, annotation, **kwargs
-        )
-
-    def add_hrect(
-        self,
-        y0,
-        y1,
-        row="all",
-        col="all",
-        exclude_empty_subplots=True,
-        annotation=None,
-        **kwargs,
-    ) -> "FigureWidget":
-        """
-
-        Add a rectangle to a plot or subplot that extends infinitely in the
-        x-dimension.
-
-        Parameters
-        ----------
-        y0: float or int
-            A number representing the y coordinate of one side of the rectangle.
-        y1: float or int
-            A number representing the y coordinate of the other side of the rectangle.
-        exclude_empty_subplots: Boolean
-            If True (default) do not place the shape on subplots that have no data
-            plotted on them.
-        row: None, int or 'all'
-            Subplot row for shape indexed starting at 1. If 'all', addresses all rows in
-            the specified column(s). If both row and col are None, addresses the
-            first subplot if subplots exist, or the only plot. By default is "all".
-        col: None, int or 'all'
-            Subplot column for shape indexed starting at 1. If 'all', addresses all rows in
-            the specified column(s). If both row and col are None, addresses the
-            first subplot if subplots exist, or the only plot. By default is "all".
-        annotation: dict or plotly.graph_objects.layout.Annotation. If dict(),
-            it is interpreted as describing an annotation. The annotation is
-            placed relative to the shape based on annotation_position (see
-            below) unless its x or y value has been specified for the annotation
-            passed here. xref and yref are always the same as for the added
-            shape and cannot be overridden.
-        annotation_position: a string containing optionally ["inside", "outside"], ["top", "bottom"]
-            and ["left", "right"] specifying where the text should be anchored
-            to on the rectangle. Example positions are "outside top left", "inside
-            bottom", "right", "inside left", "inside" ("outside" is not supported). If
-            an annotation is added but annotation_position is not specified this
-            defaults to "inside top right".
-        annotation_*: any parameters to go.layout.Annotation can be passed as
-            keywords by prefixing them with "annotation_". For example, to specify the
-            annotation text "example" you can pass annotation_text="example" as a
-            keyword argument.
-        **kwargs:
-            Any named function parameters that can be passed to 'add_shape',
-            except for x0, x1, y0, y1 or type.
-        """
-        return super().add_hrect(
-            y0, y1, row, col, exclude_empty_subplots, annotation, **kwargs
-        )
-
-    def set_subplots(
-        self, rows=None, cols=None, **make_subplots_args
-    ) -> "FigureWidget":
-        """
-
+        
+        '''
+        return super().add_traces(data,rows,cols,secondary_ys,exclude_empty_subplots)
+    
+    def add_vline(self, x,row="all",col="all",exclude_empty_subplots=True,annotation=None,**kwargs) -> "FigureWidget":
+        '''
+        
+Add a vertical line to a plot or subplot that extends infinitely in the
+y-dimension.
+
+Parameters
+----------
+x: float or int
+    A number representing the x coordinate of the vertical line.
+exclude_empty_subplots: Boolean
+    If True (default) do not place the shape on subplots that have no data
+    plotted on them.
+row: None, int or 'all'
+    Subplot row for shape indexed starting at 1. If 'all', addresses all rows in
+    the specified column(s). If both row and col are None, addresses the
+    first subplot if subplots exist, or the only plot. By default is "all".
+col: None, int or 'all'
+    Subplot column for shape indexed starting at 1. If 'all', addresses all rows in
+    the specified column(s). If both row and col are None, addresses the
+    first subplot if subplots exist, or the only plot. By default is "all".
+annotation: dict or plotly.graph_objects.layout.Annotation. If dict(),
+    it is interpreted as describing an annotation. The annotation is
+    placed relative to the shape based on annotation_position (see
+    below) unless its x or y value has been specified for the annotation
+    passed here. xref and yref are always the same as for the added
+    shape and cannot be overridden.
+annotation_position: a string containing optionally ["top", "bottom"]
+    and ["left", "right"] specifying where the text should be anchored
+    to on the line. Example positions are "bottom left", "right top",
+    "right", "bottom". If an annotation is added but annotation_position is
+    not specified, this defaults to "top right".
+annotation_*: any parameters to go.layout.Annotation can be passed as
+    keywords by prefixing them with "annotation_". For example, to specify the
+    annotation text "example" you can pass annotation_text="example" as a
+    keyword argument.
+**kwargs:
+    Any named function parameters that can be passed to 'add_shape',
+    except for x0, x1, y0, y1 or type.
+        '''
+        return super().add_vline(x,row,col,exclude_empty_subplots,annotation,**kwargs)
+    
+    def add_hline(self, y,row="all",col="all",exclude_empty_subplots=True,annotation=None,**kwargs) -> "FigureWidget":
+        '''
+        
+Add a horizontal line to a plot or subplot that extends infinitely in the
+x-dimension.
+
+Parameters
+----------
+y: float or int
+    A number representing the y coordinate of the horizontal line.
+exclude_empty_subplots: Boolean
+    If True (default) do not place the shape on subplots that have no data
+    plotted on them.
+row: None, int or 'all'
+    Subplot row for shape indexed starting at 1. If 'all', addresses all rows in
+    the specified column(s). If both row and col are None, addresses the
+    first subplot if subplots exist, or the only plot. By default is "all".
+col: None, int or 'all'
+    Subplot column for shape indexed starting at 1. If 'all', addresses all rows in
+    the specified column(s). If both row and col are None, addresses the
+    first subplot if subplots exist, or the only plot. By default is "all".
+annotation: dict or plotly.graph_objects.layout.Annotation. If dict(),
+    it is interpreted as describing an annotation. The annotation is
+    placed relative to the shape based on annotation_position (see
+    below) unless its x or y value has been specified for the annotation
+    passed here. xref and yref are always the same as for the added
+    shape and cannot be overridden.
+annotation_position: a string containing optionally ["top", "bottom"]
+    and ["left", "right"] specifying where the text should be anchored
+    to on the line. Example positions are "bottom left", "right top",
+    "right", "bottom". If an annotation is added but annotation_position is
+    not specified, this defaults to "top right".
+annotation_*: any parameters to go.layout.Annotation can be passed as
+    keywords by prefixing them with "annotation_". For example, to specify the
+    annotation text "example" you can pass annotation_text="example" as a
+    keyword argument.
+**kwargs:
+    Any named function parameters that can be passed to 'add_shape',
+    except for x0, x1, y0, y1 or type.
+        '''
+        return super().add_hline(y,row,col,exclude_empty_subplots,annotation,**kwargs)
+    
+    def add_vrect(self, x0,x1,row="all",col="all",exclude_empty_subplots=True,annotation=None,**kwargs) -> "FigureWidget":
+        '''
+        
+Add a rectangle to a plot or subplot that extends infinitely in the
+y-dimension.
+
+Parameters
+----------
+x0: float or int
+    A number representing the x coordinate of one side of the rectangle.
+x1: float or int
+    A number representing the x coordinate of the other side of the rectangle.
+exclude_empty_subplots: Boolean
+    If True (default) do not place the shape on subplots that have no data
+    plotted on them.
+row: None, int or 'all'
+    Subplot row for shape indexed starting at 1. If 'all', addresses all rows in
+    the specified column(s). If both row and col are None, addresses the
+    first subplot if subplots exist, or the only plot. By default is "all".
+col: None, int or 'all'
+    Subplot column for shape indexed starting at 1. If 'all', addresses all rows in
+    the specified column(s). If both row and col are None, addresses the
+    first subplot if subplots exist, or the only plot. By default is "all".
+annotation: dict or plotly.graph_objects.layout.Annotation. If dict(),
+    it is interpreted as describing an annotation. The annotation is
+    placed relative to the shape based on annotation_position (see
+    below) unless its x or y value has been specified for the annotation
+    passed here. xref and yref are always the same as for the added
+    shape and cannot be overridden.
+annotation_position: a string containing optionally ["inside", "outside"], ["top", "bottom"]
+    and ["left", "right"] specifying where the text should be anchored
+    to on the rectangle. Example positions are "outside top left", "inside
+    bottom", "right", "inside left", "inside" ("outside" is not supported). If
+    an annotation is added but annotation_position is not specified this
+    defaults to "inside top right".
+annotation_*: any parameters to go.layout.Annotation can be passed as
+    keywords by prefixing them with "annotation_". For example, to specify the
+    annotation text "example" you can pass annotation_text="example" as a
+    keyword argument.
+**kwargs:
+    Any named function parameters that can be passed to 'add_shape',
+    except for x0, x1, y0, y1 or type.
+        '''
+        return super().add_vrect(x0,x1,row,col,exclude_empty_subplots,annotation,**kwargs)
+    
+    def add_hrect(self, y0,y1,row="all",col="all",exclude_empty_subplots=True,annotation=None,**kwargs) -> "FigureWidget":
+        '''
+        
+Add a rectangle to a plot or subplot that extends infinitely in the
+x-dimension.
+
+Parameters
+----------
+y0: float or int
+    A number representing the y coordinate of one side of the rectangle.
+y1: float or int
+    A number representing the y coordinate of the other side of the rectangle.
+exclude_empty_subplots: Boolean
+    If True (default) do not place the shape on subplots that have no data
+    plotted on them.
+row: None, int or 'all'
+    Subplot row for shape indexed starting at 1. If 'all', addresses all rows in
+    the specified column(s). If both row and col are None, addresses the
+    first subplot if subplots exist, or the only plot. By default is "all".
+col: None, int or 'all'
+    Subplot column for shape indexed starting at 1. If 'all', addresses all rows in
+    the specified column(s). If both row and col are None, addresses the
+    first subplot if subplots exist, or the only plot. By default is "all".
+annotation: dict or plotly.graph_objects.layout.Annotation. If dict(),
+    it is interpreted as describing an annotation. The annotation is
+    placed relative to the shape based on annotation_position (see
+    below) unless its x or y value has been specified for the annotation
+    passed here. xref and yref are always the same as for the added
+    shape and cannot be overridden.
+annotation_position: a string containing optionally ["inside", "outside"], ["top", "bottom"]
+    and ["left", "right"] specifying where the text should be anchored
+    to on the rectangle. Example positions are "outside top left", "inside
+    bottom", "right", "inside left", "inside" ("outside" is not supported). If
+    an annotation is added but annotation_position is not specified this
+    defaults to "inside top right".
+annotation_*: any parameters to go.layout.Annotation can be passed as
+    keywords by prefixing them with "annotation_". For example, to specify the
+    annotation text "example" you can pass annotation_text="example" as a
+    keyword argument.
+**kwargs:
+    Any named function parameters that can be passed to 'add_shape',
+    except for x0, x1, y0, y1 or type.
+        '''
+        return super().add_hrect(y0,y1,row,col,exclude_empty_subplots,annotation,**kwargs)
+    
+    def set_subplots(self, rows=None, cols=None, **make_subplots_args) -> "FigureWidget":
+        '''
+        
         Add subplots to this figure. If the figure already contains subplots,
         then this throws an error. Accepts any keyword arguments that
         plotly.subplots.make_subplots accepts.
-
-        """
+        
+        '''
         return super().set_subplots(rows, cols, **make_subplots_args)
-
-    def add_bar(
-        self,
-        alignmentgroup=None,
-        base=None,
-        basesrc=None,
-        cliponaxis=None,
-        constraintext=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        error_x=None,
-        error_y=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextanchor=None,
-        insidetextfont=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        offset=None,
-        offsetgroup=None,
-        offsetsrc=None,
-        opacity=None,
-        orientation=None,
-        outsidetextfont=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textangle=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        width=None,
-        widthsrc=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+    
+    def add_bar(self,
+            alignmentgroup=None,
+            base=None,
+            basesrc=None,
+            cliponaxis=None,
+            constraintext=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            error_x=None,
+            error_y=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextanchor=None,
+            insidetextfont=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            offset=None,
+            offsetgroup=None,
+            offsetsrc=None,
+            opacity=None,
+            orientation=None,
+            outsidetextfont=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textangle=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            width=None,
+            widthsrc=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Bar trace
 
@@ -1140,139 +1072,137 @@ def add_bar(
         FigureWidget
         """
         from plotly.graph_objs import Bar
-
         new_trace = Bar(
-            alignmentgroup=alignmentgroup,
-            base=base,
-            basesrc=basesrc,
-            cliponaxis=cliponaxis,
-            constraintext=constraintext,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dx=dx,
-            dy=dy,
-            error_x=error_x,
-            error_y=error_y,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            insidetextanchor=insidetextanchor,
-            insidetextfont=insidetextfont,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            offset=offset,
-            offsetgroup=offsetgroup,
-            offsetsrc=offsetsrc,
-            opacity=opacity,
-            orientation=orientation,
-            outsidetextfont=outsidetextfont,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textangle=textangle,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            width=width,
-            widthsrc=widthsrc,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            yperiod=yperiod,
-            yperiod0=yperiod0,
-            yperiodalignment=yperiodalignment,
-            ysrc=ysrc,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_barpolar(
-        self,
-        base=None,
-        basesrc=None,
-        customdata=None,
-        customdatasrc=None,
-        dr=None,
-        dtheta=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        offset=None,
-        offsetsrc=None,
-        opacity=None,
-        r=None,
-        r0=None,
-        rsrc=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textsrc=None,
-        theta=None,
-        theta0=None,
-        thetasrc=None,
-        thetaunit=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        width=None,
-        widthsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                alignmentgroup=alignmentgroup,
+                base=base,
+                basesrc=basesrc,
+                cliponaxis=cliponaxis,
+                constraintext=constraintext,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dx=dx,
+                dy=dy,
+                error_x=error_x,
+                error_y=error_y,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                insidetextanchor=insidetextanchor,
+                insidetextfont=insidetextfont,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                offset=offset,
+                offsetgroup=offsetgroup,
+                offsetsrc=offsetsrc,
+                opacity=opacity,
+                orientation=orientation,
+                outsidetextfont=outsidetextfont,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textangle=textangle,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                width=width,
+                widthsrc=widthsrc,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                yperiod=yperiod,
+                yperiod0=yperiod0,
+                yperiodalignment=yperiodalignment,
+                ysrc=ysrc,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_barpolar(self,
+            base=None,
+            basesrc=None,
+            customdata=None,
+            customdatasrc=None,
+            dr=None,
+            dtheta=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            offset=None,
+            offsetsrc=None,
+            opacity=None,
+            r=None,
+            r0=None,
+            rsrc=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textsrc=None,
+            theta=None,
+            theta0=None,
+            thetasrc=None,
+            thetaunit=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            width=None,
+            widthsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Barpolar trace
 
@@ -1514,152 +1444,150 @@ def add_barpolar(
         FigureWidget
         """
         from plotly.graph_objs import Barpolar
-
         new_trace = Barpolar(
-            base=base,
-            basesrc=basesrc,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dr=dr,
-            dtheta=dtheta,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            offset=offset,
-            offsetsrc=offsetsrc,
-            opacity=opacity,
-            r=r,
-            r0=r0,
-            rsrc=rsrc,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textsrc=textsrc,
-            theta=theta,
-            theta0=theta0,
-            thetasrc=thetasrc,
-            thetaunit=thetaunit,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            width=width,
-            widthsrc=widthsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_box(
-        self,
-        alignmentgroup=None,
-        boxmean=None,
-        boxpoints=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        jitter=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        lowerfence=None,
-        lowerfencesrc=None,
-        marker=None,
-        mean=None,
-        meansrc=None,
-        median=None,
-        mediansrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        notched=None,
-        notchspan=None,
-        notchspansrc=None,
-        notchwidth=None,
-        offsetgroup=None,
-        opacity=None,
-        orientation=None,
-        pointpos=None,
-        q1=None,
-        q1src=None,
-        q3=None,
-        q3src=None,
-        quartilemethod=None,
-        sd=None,
-        sdmultiple=None,
-        sdsrc=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        showwhiskers=None,
-        sizemode=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        upperfence=None,
-        upperfencesrc=None,
-        visible=None,
-        whiskerwidth=None,
-        width=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                base=base,
+                basesrc=basesrc,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dr=dr,
+                dtheta=dtheta,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                offset=offset,
+                offsetsrc=offsetsrc,
+                opacity=opacity,
+                r=r,
+                r0=r0,
+                rsrc=rsrc,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textsrc=textsrc,
+                theta=theta,
+                theta0=theta0,
+                thetasrc=thetasrc,
+                thetaunit=thetaunit,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                width=width,
+                widthsrc=widthsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_box(self,
+            alignmentgroup=None,
+            boxmean=None,
+            boxpoints=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            jitter=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            lowerfence=None,
+            lowerfencesrc=None,
+            marker=None,
+            mean=None,
+            meansrc=None,
+            median=None,
+            mediansrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            notched=None,
+            notchspan=None,
+            notchspansrc=None,
+            notchwidth=None,
+            offsetgroup=None,
+            opacity=None,
+            orientation=None,
+            pointpos=None,
+            q1=None,
+            q1src=None,
+            q3=None,
+            q3src=None,
+            quartilemethod=None,
+            sd=None,
+            sdmultiple=None,
+            sdsrc=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            showwhiskers=None,
+            sizemode=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            upperfence=None,
+            upperfencesrc=None,
+            visible=None,
+            whiskerwidth=None,
+            width=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Box trace
 
@@ -2161,154 +2089,152 @@ def add_box(
         FigureWidget
         """
         from plotly.graph_objs import Box
-
         new_trace = Box(
-            alignmentgroup=alignmentgroup,
-            boxmean=boxmean,
-            boxpoints=boxpoints,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dx=dx,
-            dy=dy,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoveron=hoveron,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            jitter=jitter,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            lowerfence=lowerfence,
-            lowerfencesrc=lowerfencesrc,
-            marker=marker,
-            mean=mean,
-            meansrc=meansrc,
-            median=median,
-            mediansrc=mediansrc,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            notched=notched,
-            notchspan=notchspan,
-            notchspansrc=notchspansrc,
-            notchwidth=notchwidth,
-            offsetgroup=offsetgroup,
-            opacity=opacity,
-            orientation=orientation,
-            pointpos=pointpos,
-            q1=q1,
-            q1src=q1src,
-            q3=q3,
-            q3src=q3src,
-            quartilemethod=quartilemethod,
-            sd=sd,
-            sdmultiple=sdmultiple,
-            sdsrc=sdsrc,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            showwhiskers=showwhiskers,
-            sizemode=sizemode,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            upperfence=upperfence,
-            upperfencesrc=upperfencesrc,
-            visible=visible,
-            whiskerwidth=whiskerwidth,
-            width=width,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            yperiod=yperiod,
-            yperiod0=yperiod0,
-            yperiodalignment=yperiodalignment,
-            ysrc=ysrc,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_candlestick(
-        self,
-        close=None,
-        closesrc=None,
-        customdata=None,
-        customdatasrc=None,
-        decreasing=None,
-        high=None,
-        highsrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        increasing=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        low=None,
-        lowsrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        open=None,
-        opensrc=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        whiskerwidth=None,
-        x=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        yaxis=None,
-        yhoverformat=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                alignmentgroup=alignmentgroup,
+                boxmean=boxmean,
+                boxpoints=boxpoints,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dx=dx,
+                dy=dy,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoveron=hoveron,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                jitter=jitter,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                lowerfence=lowerfence,
+                lowerfencesrc=lowerfencesrc,
+                marker=marker,
+                mean=mean,
+                meansrc=meansrc,
+                median=median,
+                mediansrc=mediansrc,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                notched=notched,
+                notchspan=notchspan,
+                notchspansrc=notchspansrc,
+                notchwidth=notchwidth,
+                offsetgroup=offsetgroup,
+                opacity=opacity,
+                orientation=orientation,
+                pointpos=pointpos,
+                q1=q1,
+                q1src=q1src,
+                q3=q3,
+                q3src=q3src,
+                quartilemethod=quartilemethod,
+                sd=sd,
+                sdmultiple=sdmultiple,
+                sdsrc=sdsrc,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                showwhiskers=showwhiskers,
+                sizemode=sizemode,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                upperfence=upperfence,
+                upperfencesrc=upperfencesrc,
+                visible=visible,
+                whiskerwidth=whiskerwidth,
+                width=width,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                yperiod=yperiod,
+                yperiod0=yperiod0,
+                yperiodalignment=yperiodalignment,
+                ysrc=ysrc,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_candlestick(self,
+            close=None,
+            closesrc=None,
+            customdata=None,
+            customdatasrc=None,
+            decreasing=None,
+            high=None,
+            highsrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            increasing=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            low=None,
+            lowsrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            open=None,
+            opensrc=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            whiskerwidth=None,
+            x=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            yaxis=None,
+            yhoverformat=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Candlestick trace
 
@@ -2574,105 +2500,103 @@ def add_candlestick(
         FigureWidget
         """
         from plotly.graph_objs import Candlestick
-
         new_trace = Candlestick(
-            close=close,
-            closesrc=closesrc,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            decreasing=decreasing,
-            high=high,
-            highsrc=highsrc,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            increasing=increasing,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            low=low,
-            lowsrc=lowsrc,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            open=open,
-            opensrc=opensrc,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            whiskerwidth=whiskerwidth,
-            x=x,
-            xaxis=xaxis,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            yaxis=yaxis,
-            yhoverformat=yhoverformat,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_carpet(
-        self,
-        a=None,
-        a0=None,
-        aaxis=None,
-        asrc=None,
-        b=None,
-        b0=None,
-        baxis=None,
-        bsrc=None,
-        carpet=None,
-        cheaterslope=None,
-        color=None,
-        customdata=None,
-        customdatasrc=None,
-        da=None,
-        db=None,
-        font=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        stream=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xaxis=None,
-        xsrc=None,
-        y=None,
-        yaxis=None,
-        ysrc=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                close=close,
+                closesrc=closesrc,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                decreasing=decreasing,
+                high=high,
+                highsrc=highsrc,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                increasing=increasing,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                low=low,
+                lowsrc=lowsrc,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                open=open,
+                opensrc=opensrc,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                whiskerwidth=whiskerwidth,
+                x=x,
+                xaxis=xaxis,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                yaxis=yaxis,
+                yhoverformat=yhoverformat,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_carpet(self,
+            a=None,
+            a0=None,
+            aaxis=None,
+            asrc=None,
+            b=None,
+            b0=None,
+            baxis=None,
+            bsrc=None,
+            carpet=None,
+            cheaterslope=None,
+            color=None,
+            customdata=None,
+            customdatasrc=None,
+            da=None,
+            db=None,
+            font=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            stream=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xaxis=None,
+            xsrc=None,
+            y=None,
+            yaxis=None,
+            ysrc=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Carpet trace
 
@@ -2873,103 +2797,101 @@ def add_carpet(
         FigureWidget
         """
         from plotly.graph_objs import Carpet
-
         new_trace = Carpet(
-            a=a,
-            a0=a0,
-            aaxis=aaxis,
-            asrc=asrc,
-            b=b,
-            b0=b0,
-            baxis=baxis,
-            bsrc=bsrc,
-            carpet=carpet,
-            cheaterslope=cheaterslope,
-            color=color,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            da=da,
-            db=db,
-            font=font,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            stream=stream,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x=x,
-            xaxis=xaxis,
-            xsrc=xsrc,
-            y=y,
-            yaxis=yaxis,
-            ysrc=ysrc,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_choropleth(
-        self,
-        autocolorscale=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        featureidkey=None,
-        geo=None,
-        geojson=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        locationmode=None,
-        locations=None,
-        locationssrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        reversescale=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                a=a,
+                a0=a0,
+                aaxis=aaxis,
+                asrc=asrc,
+                b=b,
+                b0=b0,
+                baxis=baxis,
+                bsrc=bsrc,
+                carpet=carpet,
+                cheaterslope=cheaterslope,
+                color=color,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                da=da,
+                db=db,
+                font=font,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                stream=stream,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x=x,
+                xaxis=xaxis,
+                xsrc=xsrc,
+                y=y,
+                yaxis=yaxis,
+                ysrc=ysrc,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_choropleth(self,
+            autocolorscale=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            featureidkey=None,
+            geo=None,
+            geojson=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            locationmode=None,
+            locations=None,
+            locationssrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            reversescale=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Choropleth trace
 
@@ -3247,114 +3169,112 @@ def add_choropleth(
         FigureWidget
         """
         from plotly.graph_objs import Choropleth
-
         new_trace = Choropleth(
-            autocolorscale=autocolorscale,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            featureidkey=featureidkey,
-            geo=geo,
-            geojson=geojson,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            locationmode=locationmode,
-            locations=locations,
-            locationssrc=locationssrc,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            reversescale=reversescale,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            z=z,
-            zauto=zauto,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_choroplethmap(
-        self,
-        autocolorscale=None,
-        below=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        featureidkey=None,
-        geojson=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        locations=None,
-        locationssrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        reversescale=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                autocolorscale=autocolorscale,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                featureidkey=featureidkey,
+                geo=geo,
+                geojson=geojson,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                locationmode=locationmode,
+                locations=locations,
+                locationssrc=locationssrc,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                reversescale=reversescale,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                z=z,
+                zauto=zauto,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_choroplethmap(self,
+            autocolorscale=None,
+            below=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            featureidkey=None,
+            geojson=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            locations=None,
+            locationssrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            reversescale=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Choroplethmap trace
 
@@ -3630,114 +3550,112 @@ def add_choroplethmap(
         FigureWidget
         """
         from plotly.graph_objs import Choroplethmap
-
         new_trace = Choroplethmap(
-            autocolorscale=autocolorscale,
-            below=below,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            featureidkey=featureidkey,
-            geojson=geojson,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            locations=locations,
-            locationssrc=locationssrc,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            reversescale=reversescale,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            z=z,
-            zauto=zauto,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_choroplethmapbox(
-        self,
-        autocolorscale=None,
-        below=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        featureidkey=None,
-        geojson=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        locations=None,
-        locationssrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        reversescale=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                autocolorscale=autocolorscale,
+                below=below,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                featureidkey=featureidkey,
+                geojson=geojson,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                locations=locations,
+                locationssrc=locationssrc,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                reversescale=reversescale,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                z=z,
+                zauto=zauto,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_choroplethmapbox(self,
+            autocolorscale=None,
+            below=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            featureidkey=None,
+            geojson=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            locations=None,
+            locationssrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            reversescale=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Choroplethmapbox trace
 
@@ -4022,127 +3940,125 @@ def add_choroplethmapbox(
         FigureWidget
         """
         from plotly.graph_objs import Choroplethmapbox
-
         new_trace = Choroplethmapbox(
-            autocolorscale=autocolorscale,
-            below=below,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            featureidkey=featureidkey,
-            geojson=geojson,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            locations=locations,
-            locationssrc=locationssrc,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            reversescale=reversescale,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            z=z,
-            zauto=zauto,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_cone(
-        self,
-        anchor=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        sizemode=None,
-        sizeref=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        u=None,
-        uhoverformat=None,
-        uid=None,
-        uirevision=None,
-        usrc=None,
-        v=None,
-        vhoverformat=None,
-        visible=None,
-        vsrc=None,
-        w=None,
-        whoverformat=None,
-        wsrc=None,
-        x=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zhoverformat=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                autocolorscale=autocolorscale,
+                below=below,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                featureidkey=featureidkey,
+                geojson=geojson,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                locations=locations,
+                locationssrc=locationssrc,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                reversescale=reversescale,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                z=z,
+                zauto=zauto,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_cone(self,
+            anchor=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            sizemode=None,
+            sizeref=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            u=None,
+            uhoverformat=None,
+            uid=None,
+            uirevision=None,
+            usrc=None,
+            v=None,
+            vhoverformat=None,
+            visible=None,
+            vsrc=None,
+            w=None,
+            whoverformat=None,
+            wsrc=None,
+            x=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zhoverformat=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Cone trace
 
@@ -4506,153 +4422,151 @@ def add_cone(
         FigureWidget
         """
         from plotly.graph_objs import Cone
-
         new_trace = Cone(
-            anchor=anchor,
-            autocolorscale=autocolorscale,
-            cauto=cauto,
-            cmax=cmax,
-            cmid=cmid,
-            cmin=cmin,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            lighting=lighting,
-            lightposition=lightposition,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            reversescale=reversescale,
-            scene=scene,
-            showlegend=showlegend,
-            showscale=showscale,
-            sizemode=sizemode,
-            sizeref=sizeref,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            u=u,
-            uhoverformat=uhoverformat,
-            uid=uid,
-            uirevision=uirevision,
-            usrc=usrc,
-            v=v,
-            vhoverformat=vhoverformat,
-            visible=visible,
-            vsrc=vsrc,
-            w=w,
-            whoverformat=whoverformat,
-            wsrc=wsrc,
-            x=x,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zhoverformat=zhoverformat,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_contour(
-        self,
-        autocolorscale=None,
-        autocontour=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        connectgaps=None,
-        contours=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoverongaps=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        ncontours=None,
-        opacity=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textsrc=None,
-        texttemplate=None,
-        transpose=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        xtype=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        ytype=None,
-        z=None,
-        zauto=None,
-        zhoverformat=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zorder=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                anchor=anchor,
+                autocolorscale=autocolorscale,
+                cauto=cauto,
+                cmax=cmax,
+                cmid=cmid,
+                cmin=cmin,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                lighting=lighting,
+                lightposition=lightposition,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                reversescale=reversescale,
+                scene=scene,
+                showlegend=showlegend,
+                showscale=showscale,
+                sizemode=sizemode,
+                sizeref=sizeref,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                u=u,
+                uhoverformat=uhoverformat,
+                uid=uid,
+                uirevision=uirevision,
+                usrc=usrc,
+                v=v,
+                vhoverformat=vhoverformat,
+                visible=visible,
+                vsrc=vsrc,
+                w=w,
+                whoverformat=whoverformat,
+                wsrc=wsrc,
+                x=x,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zhoverformat=zhoverformat,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_contour(self,
+            autocolorscale=None,
+            autocontour=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            connectgaps=None,
+            contours=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoverongaps=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            ncontours=None,
+            opacity=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textsrc=None,
+            texttemplate=None,
+            transpose=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            xtype=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            ytype=None,
+            z=None,
+            zauto=None,
+            zhoverformat=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zorder=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Contour trace
 
@@ -5070,146 +4984,144 @@ def add_contour(
         FigureWidget
         """
         from plotly.graph_objs import Contour
-
         new_trace = Contour(
-            autocolorscale=autocolorscale,
-            autocontour=autocontour,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            connectgaps=connectgaps,
-            contours=contours,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dx=dx,
-            dy=dy,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoverongaps=hoverongaps,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            ncontours=ncontours,
-            opacity=opacity,
-            reversescale=reversescale,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            transpose=transpose,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            xtype=xtype,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            yperiod=yperiod,
-            yperiod0=yperiod0,
-            yperiodalignment=yperiodalignment,
-            ysrc=ysrc,
-            ytype=ytype,
-            z=z,
-            zauto=zauto,
-            zhoverformat=zhoverformat,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zorder=zorder,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_contourcarpet(
-        self,
-        a=None,
-        a0=None,
-        asrc=None,
-        atype=None,
-        autocolorscale=None,
-        autocontour=None,
-        b=None,
-        b0=None,
-        bsrc=None,
-        btype=None,
-        carpet=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        contours=None,
-        customdata=None,
-        customdatasrc=None,
-        da=None,
-        db=None,
-        fillcolor=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        ncontours=None,
-        opacity=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        transpose=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        xaxis=None,
-        yaxis=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zorder=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                autocolorscale=autocolorscale,
+                autocontour=autocontour,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                connectgaps=connectgaps,
+                contours=contours,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dx=dx,
+                dy=dy,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoverongaps=hoverongaps,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                ncontours=ncontours,
+                opacity=opacity,
+                reversescale=reversescale,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                transpose=transpose,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                xtype=xtype,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                yperiod=yperiod,
+                yperiod0=yperiod0,
+                yperiodalignment=yperiodalignment,
+                ysrc=ysrc,
+                ytype=ytype,
+                z=z,
+                zauto=zauto,
+                zhoverformat=zhoverformat,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zorder=zorder,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_contourcarpet(self,
+            a=None,
+            a0=None,
+            asrc=None,
+            atype=None,
+            autocolorscale=None,
+            autocontour=None,
+            b=None,
+            b0=None,
+            bsrc=None,
+            btype=None,
+            carpet=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            contours=None,
+            customdata=None,
+            customdatasrc=None,
+            da=None,
+            db=None,
+            fillcolor=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            ncontours=None,
+            opacity=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            transpose=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            xaxis=None,
+            yaxis=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zorder=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Contourcarpet trace
 
@@ -5486,119 +5398,117 @@ def add_contourcarpet(
         FigureWidget
         """
         from plotly.graph_objs import Contourcarpet
-
         new_trace = Contourcarpet(
-            a=a,
-            a0=a0,
-            asrc=asrc,
-            atype=atype,
-            autocolorscale=autocolorscale,
-            autocontour=autocontour,
-            b=b,
-            b0=b0,
-            bsrc=bsrc,
-            btype=btype,
-            carpet=carpet,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            contours=contours,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            da=da,
-            db=db,
-            fillcolor=fillcolor,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            ncontours=ncontours,
-            opacity=opacity,
-            reversescale=reversescale,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            transpose=transpose,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            xaxis=xaxis,
-            yaxis=yaxis,
-            z=z,
-            zauto=zauto,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zorder=zorder,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_densitymap(
-        self,
-        autocolorscale=None,
-        below=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        lat=None,
-        latsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lon=None,
-        lonsrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        radius=None,
-        radiussrc=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                a=a,
+                a0=a0,
+                asrc=asrc,
+                atype=atype,
+                autocolorscale=autocolorscale,
+                autocontour=autocontour,
+                b=b,
+                b0=b0,
+                bsrc=bsrc,
+                btype=btype,
+                carpet=carpet,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                contours=contours,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                da=da,
+                db=db,
+                fillcolor=fillcolor,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                ncontours=ncontours,
+                opacity=opacity,
+                reversescale=reversescale,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                transpose=transpose,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                xaxis=xaxis,
+                yaxis=yaxis,
+                z=z,
+                zauto=zauto,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zorder=zorder,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_densitymap(self,
+            autocolorscale=None,
+            below=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            lat=None,
+            latsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lon=None,
+            lonsrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            radius=None,
+            radiussrc=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Densitymap trace
 
@@ -5872,112 +5782,110 @@ def add_densitymap(
         FigureWidget
         """
         from plotly.graph_objs import Densitymap
-
         new_trace = Densitymap(
-            autocolorscale=autocolorscale,
-            below=below,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            lat=lat,
-            latsrc=latsrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            lon=lon,
-            lonsrc=lonsrc,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            radius=radius,
-            radiussrc=radiussrc,
-            reversescale=reversescale,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            z=z,
-            zauto=zauto,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_densitymapbox(
-        self,
-        autocolorscale=None,
-        below=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        lat=None,
-        latsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lon=None,
-        lonsrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        radius=None,
-        radiussrc=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        z=None,
-        zauto=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                autocolorscale=autocolorscale,
+                below=below,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                lat=lat,
+                latsrc=latsrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                lon=lon,
+                lonsrc=lonsrc,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                radius=radius,
+                radiussrc=radiussrc,
+                reversescale=reversescale,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                z=z,
+                zauto=zauto,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_densitymapbox(self,
+            autocolorscale=None,
+            below=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            lat=None,
+            latsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lon=None,
+            lonsrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            radius=None,
+            radiussrc=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            z=None,
+            zauto=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Densitymapbox trace
 
@@ -6260,132 +6168,130 @@ def add_densitymapbox(
         FigureWidget
         """
         from plotly.graph_objs import Densitymapbox
-
         new_trace = Densitymapbox(
-            autocolorscale=autocolorscale,
-            below=below,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            lat=lat,
-            latsrc=latsrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            lon=lon,
-            lonsrc=lonsrc,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            radius=radius,
-            radiussrc=radiussrc,
-            reversescale=reversescale,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            z=z,
-            zauto=zauto,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_funnel(
-        self,
-        alignmentgroup=None,
-        cliponaxis=None,
-        connector=None,
-        constraintext=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextanchor=None,
-        insidetextfont=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        offset=None,
-        offsetgroup=None,
-        opacity=None,
-        orientation=None,
-        outsidetextfont=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textangle=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        width=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                autocolorscale=autocolorscale,
+                below=below,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                lat=lat,
+                latsrc=latsrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                lon=lon,
+                lonsrc=lonsrc,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                radius=radius,
+                radiussrc=radiussrc,
+                reversescale=reversescale,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                z=z,
+                zauto=zauto,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_funnel(self,
+            alignmentgroup=None,
+            cliponaxis=None,
+            connector=None,
+            constraintext=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextanchor=None,
+            insidetextfont=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            offset=None,
+            offsetgroup=None,
+            opacity=None,
+            orientation=None,
+            outsidetextfont=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textangle=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            width=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Funnel trace
 
@@ -6778,130 +6684,128 @@ def add_funnel(
         FigureWidget
         """
         from plotly.graph_objs import Funnel
-
         new_trace = Funnel(
-            alignmentgroup=alignmentgroup,
-            cliponaxis=cliponaxis,
-            connector=connector,
-            constraintext=constraintext,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dx=dx,
-            dy=dy,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            insidetextanchor=insidetextanchor,
-            insidetextfont=insidetextfont,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            offset=offset,
-            offsetgroup=offsetgroup,
-            opacity=opacity,
-            orientation=orientation,
-            outsidetextfont=outsidetextfont,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textangle=textangle,
-            textfont=textfont,
-            textinfo=textinfo,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            width=width,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            yhoverformat=yhoverformat,
-            yperiod=yperiod,
-            yperiod0=yperiod0,
-            yperiodalignment=yperiodalignment,
-            ysrc=ysrc,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_funnelarea(
-        self,
-        aspectratio=None,
-        baseratio=None,
-        customdata=None,
-        customdatasrc=None,
-        dlabel=None,
-        domain=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextfont=None,
-        label0=None,
-        labels=None,
-        labelssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        scalegroup=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        title=None,
-        uid=None,
-        uirevision=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                alignmentgroup=alignmentgroup,
+                cliponaxis=cliponaxis,
+                connector=connector,
+                constraintext=constraintext,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dx=dx,
+                dy=dy,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                insidetextanchor=insidetextanchor,
+                insidetextfont=insidetextfont,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                offset=offset,
+                offsetgroup=offsetgroup,
+                opacity=opacity,
+                orientation=orientation,
+                outsidetextfont=outsidetextfont,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textangle=textangle,
+                textfont=textfont,
+                textinfo=textinfo,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                width=width,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                yhoverformat=yhoverformat,
+                yperiod=yperiod,
+                yperiod0=yperiod0,
+                yperiodalignment=yperiodalignment,
+                ysrc=ysrc,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_funnelarea(self,
+            aspectratio=None,
+            baseratio=None,
+            customdata=None,
+            customdatasrc=None,
+            dlabel=None,
+            domain=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextfont=None,
+            label0=None,
+            labels=None,
+            labelssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            scalegroup=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            title=None,
+            uid=None,
+            uirevision=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Funnelarea trace
 
@@ -7160,136 +7064,134 @@ def add_funnelarea(
         FigureWidget
         """
         from plotly.graph_objs import Funnelarea
-
         new_trace = Funnelarea(
-            aspectratio=aspectratio,
-            baseratio=baseratio,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dlabel=dlabel,
-            domain=domain,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            insidetextfont=insidetextfont,
-            label0=label0,
-            labels=labels,
-            labelssrc=labelssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            scalegroup=scalegroup,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textinfo=textinfo,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            title=title,
-            uid=uid,
-            uirevision=uirevision,
-            values=values,
-            valuessrc=valuessrc,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_heatmap(
-        self,
-        autocolorscale=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoverongaps=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textsrc=None,
-        texttemplate=None,
-        transpose=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xgap=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        xtype=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        ygap=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        ytype=None,
-        z=None,
-        zauto=None,
-        zhoverformat=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zorder=None,
-        zsmooth=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                aspectratio=aspectratio,
+                baseratio=baseratio,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dlabel=dlabel,
+                domain=domain,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                insidetextfont=insidetextfont,
+                label0=label0,
+                labels=labels,
+                labelssrc=labelssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                scalegroup=scalegroup,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textinfo=textinfo,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                title=title,
+                uid=uid,
+                uirevision=uirevision,
+                values=values,
+                valuessrc=valuessrc,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_heatmap(self,
+            autocolorscale=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoverongaps=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textsrc=None,
+            texttemplate=None,
+            transpose=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xgap=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            xtype=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            ygap=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            ytype=None,
+            z=None,
+            zauto=None,
+            zhoverformat=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zorder=None,
+            zsmooth=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Heatmap trace
 
@@ -7699,156 +7601,154 @@ def add_heatmap(
         FigureWidget
         """
         from plotly.graph_objs import Heatmap
-
         new_trace = Heatmap(
-            autocolorscale=autocolorscale,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dx=dx,
-            dy=dy,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoverongaps=hoverongaps,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            reversescale=reversescale,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            transpose=transpose,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xcalendar=xcalendar,
-            xgap=xgap,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            xtype=xtype,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            ycalendar=ycalendar,
-            ygap=ygap,
-            yhoverformat=yhoverformat,
-            yperiod=yperiod,
-            yperiod0=yperiod0,
-            yperiodalignment=yperiodalignment,
-            ysrc=ysrc,
-            ytype=ytype,
-            z=z,
-            zauto=zauto,
-            zhoverformat=zhoverformat,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zorder=zorder,
-            zsmooth=zsmooth,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_histogram(
-        self,
-        alignmentgroup=None,
-        autobinx=None,
-        autobiny=None,
-        bingroup=None,
-        cliponaxis=None,
-        constraintext=None,
-        cumulative=None,
-        customdata=None,
-        customdatasrc=None,
-        error_x=None,
-        error_y=None,
-        histfunc=None,
-        histnorm=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextanchor=None,
-        insidetextfont=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        nbinsx=None,
-        nbinsy=None,
-        offsetgroup=None,
-        opacity=None,
-        orientation=None,
-        outsidetextfont=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textangle=None,
-        textfont=None,
-        textposition=None,
-        textsrc=None,
-        texttemplate=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        x=None,
-        xaxis=None,
-        xbins=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yaxis=None,
-        ybins=None,
-        ycalendar=None,
-        yhoverformat=None,
-        ysrc=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                autocolorscale=autocolorscale,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dx=dx,
+                dy=dy,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoverongaps=hoverongaps,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                reversescale=reversescale,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                transpose=transpose,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xcalendar=xcalendar,
+                xgap=xgap,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                xtype=xtype,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                ycalendar=ycalendar,
+                ygap=ygap,
+                yhoverformat=yhoverformat,
+                yperiod=yperiod,
+                yperiod0=yperiod0,
+                yperiodalignment=yperiodalignment,
+                ysrc=ysrc,
+                ytype=ytype,
+                z=z,
+                zauto=zauto,
+                zhoverformat=zhoverformat,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zorder=zorder,
+                zsmooth=zsmooth,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_histogram(self,
+            alignmentgroup=None,
+            autobinx=None,
+            autobiny=None,
+            bingroup=None,
+            cliponaxis=None,
+            constraintext=None,
+            cumulative=None,
+            customdata=None,
+            customdatasrc=None,
+            error_x=None,
+            error_y=None,
+            histfunc=None,
+            histnorm=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextanchor=None,
+            insidetextfont=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            nbinsx=None,
+            nbinsy=None,
+            offsetgroup=None,
+            opacity=None,
+            orientation=None,
+            outsidetextfont=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textangle=None,
+            textfont=None,
+            textposition=None,
+            textsrc=None,
+            texttemplate=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            x=None,
+            xaxis=None,
+            xbins=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yaxis=None,
+            ybins=None,
+            ycalendar=None,
+            yhoverformat=None,
+            ysrc=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Histogram trace
 
@@ -8246,148 +8146,146 @@ def add_histogram(
         FigureWidget
         """
         from plotly.graph_objs import Histogram
-
         new_trace = Histogram(
-            alignmentgroup=alignmentgroup,
-            autobinx=autobinx,
-            autobiny=autobiny,
-            bingroup=bingroup,
-            cliponaxis=cliponaxis,
-            constraintext=constraintext,
-            cumulative=cumulative,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            error_x=error_x,
-            error_y=error_y,
-            histfunc=histfunc,
-            histnorm=histnorm,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            insidetextanchor=insidetextanchor,
-            insidetextfont=insidetextfont,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            nbinsx=nbinsx,
-            nbinsy=nbinsy,
-            offsetgroup=offsetgroup,
-            opacity=opacity,
-            orientation=orientation,
-            outsidetextfont=outsidetextfont,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textangle=textangle,
-            textfont=textfont,
-            textposition=textposition,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            x=x,
-            xaxis=xaxis,
-            xbins=xbins,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            yaxis=yaxis,
-            ybins=ybins,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_histogram2d(
-        self,
-        autobinx=None,
-        autobiny=None,
-        autocolorscale=None,
-        bingroup=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        histfunc=None,
-        histnorm=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        nbinsx=None,
-        nbinsy=None,
-        opacity=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        textfont=None,
-        texttemplate=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xaxis=None,
-        xbingroup=None,
-        xbins=None,
-        xcalendar=None,
-        xgap=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yaxis=None,
-        ybingroup=None,
-        ybins=None,
-        ycalendar=None,
-        ygap=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zauto=None,
-        zhoverformat=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsmooth=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                alignmentgroup=alignmentgroup,
+                autobinx=autobinx,
+                autobiny=autobiny,
+                bingroup=bingroup,
+                cliponaxis=cliponaxis,
+                constraintext=constraintext,
+                cumulative=cumulative,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                error_x=error_x,
+                error_y=error_y,
+                histfunc=histfunc,
+                histnorm=histnorm,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                insidetextanchor=insidetextanchor,
+                insidetextfont=insidetextfont,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                nbinsx=nbinsx,
+                nbinsy=nbinsy,
+                offsetgroup=offsetgroup,
+                opacity=opacity,
+                orientation=orientation,
+                outsidetextfont=outsidetextfont,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textangle=textangle,
+                textfont=textfont,
+                textposition=textposition,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                x=x,
+                xaxis=xaxis,
+                xbins=xbins,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                yaxis=yaxis,
+                ybins=ybins,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_histogram2d(self,
+            autobinx=None,
+            autobiny=None,
+            autocolorscale=None,
+            bingroup=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            histfunc=None,
+            histnorm=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            nbinsx=None,
+            nbinsy=None,
+            opacity=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            textfont=None,
+            texttemplate=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xaxis=None,
+            xbingroup=None,
+            xbins=None,
+            xcalendar=None,
+            xgap=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yaxis=None,
+            ybingroup=None,
+            ybins=None,
+            ycalendar=None,
+            ygap=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zauto=None,
+            zhoverformat=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsmooth=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Histogram2d trace
 
@@ -8782,146 +8680,144 @@ def add_histogram2d(
         FigureWidget
         """
         from plotly.graph_objs import Histogram2d
-
         new_trace = Histogram2d(
-            autobinx=autobinx,
-            autobiny=autobiny,
-            autocolorscale=autocolorscale,
-            bingroup=bingroup,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            histfunc=histfunc,
-            histnorm=histnorm,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            nbinsx=nbinsx,
-            nbinsy=nbinsy,
-            opacity=opacity,
-            reversescale=reversescale,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            textfont=textfont,
-            texttemplate=texttemplate,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x=x,
-            xaxis=xaxis,
-            xbingroup=xbingroup,
-            xbins=xbins,
-            xcalendar=xcalendar,
-            xgap=xgap,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            yaxis=yaxis,
-            ybingroup=ybingroup,
-            ybins=ybins,
-            ycalendar=ycalendar,
-            ygap=ygap,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zauto=zauto,
-            zhoverformat=zhoverformat,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zsmooth=zsmooth,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_histogram2dcontour(
-        self,
-        autobinx=None,
-        autobiny=None,
-        autocolorscale=None,
-        autocontour=None,
-        bingroup=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        contours=None,
-        customdata=None,
-        customdatasrc=None,
-        histfunc=None,
-        histnorm=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        nbinsx=None,
-        nbinsy=None,
-        ncontours=None,
-        opacity=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        textfont=None,
-        texttemplate=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xaxis=None,
-        xbingroup=None,
-        xbins=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yaxis=None,
-        ybingroup=None,
-        ybins=None,
-        ycalendar=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zauto=None,
-        zhoverformat=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                autobinx=autobinx,
+                autobiny=autobiny,
+                autocolorscale=autocolorscale,
+                bingroup=bingroup,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                histfunc=histfunc,
+                histnorm=histnorm,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                nbinsx=nbinsx,
+                nbinsy=nbinsy,
+                opacity=opacity,
+                reversescale=reversescale,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                textfont=textfont,
+                texttemplate=texttemplate,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x=x,
+                xaxis=xaxis,
+                xbingroup=xbingroup,
+                xbins=xbins,
+                xcalendar=xcalendar,
+                xgap=xgap,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                yaxis=yaxis,
+                ybingroup=ybingroup,
+                ybins=ybins,
+                ycalendar=ycalendar,
+                ygap=ygap,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zauto=zauto,
+                zhoverformat=zhoverformat,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zsmooth=zsmooth,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_histogram2dcontour(self,
+            autobinx=None,
+            autobiny=None,
+            autocolorscale=None,
+            autocontour=None,
+            bingroup=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            contours=None,
+            customdata=None,
+            customdatasrc=None,
+            histfunc=None,
+            histnorm=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            nbinsx=None,
+            nbinsy=None,
+            ncontours=None,
+            opacity=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            textfont=None,
+            texttemplate=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xaxis=None,
+            xbingroup=None,
+            xbins=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yaxis=None,
+            ybingroup=None,
+            ybins=None,
+            ycalendar=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zauto=None,
+            zhoverformat=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Histogram2dContour trace
 
@@ -9329,131 +9225,129 @@ def add_histogram2dcontour(
         FigureWidget
         """
         from plotly.graph_objs import Histogram2dContour
-
         new_trace = Histogram2dContour(
-            autobinx=autobinx,
-            autobiny=autobiny,
-            autocolorscale=autocolorscale,
-            autocontour=autocontour,
-            bingroup=bingroup,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            contours=contours,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            histfunc=histfunc,
-            histnorm=histnorm,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            nbinsx=nbinsx,
-            nbinsy=nbinsy,
-            ncontours=ncontours,
-            opacity=opacity,
-            reversescale=reversescale,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            textfont=textfont,
-            texttemplate=texttemplate,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x=x,
-            xaxis=xaxis,
-            xbingroup=xbingroup,
-            xbins=xbins,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            yaxis=yaxis,
-            ybingroup=ybingroup,
-            ybins=ybins,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zauto=zauto,
-            zhoverformat=zhoverformat,
-            zmax=zmax,
-            zmid=zmid,
-            zmin=zmin,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_icicle(
-        self,
-        branchvalues=None,
-        count=None,
-        customdata=None,
-        customdatasrc=None,
-        domain=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextfont=None,
-        labels=None,
-        labelssrc=None,
-        leaf=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        level=None,
-        marker=None,
-        maxdepth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        outsidetextfont=None,
-        parents=None,
-        parentssrc=None,
-        pathbar=None,
-        root=None,
-        sort=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        tiling=None,
-        uid=None,
-        uirevision=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                autobinx=autobinx,
+                autobiny=autobiny,
+                autocolorscale=autocolorscale,
+                autocontour=autocontour,
+                bingroup=bingroup,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                contours=contours,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                histfunc=histfunc,
+                histnorm=histnorm,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                nbinsx=nbinsx,
+                nbinsy=nbinsy,
+                ncontours=ncontours,
+                opacity=opacity,
+                reversescale=reversescale,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                textfont=textfont,
+                texttemplate=texttemplate,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x=x,
+                xaxis=xaxis,
+                xbingroup=xbingroup,
+                xbins=xbins,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                yaxis=yaxis,
+                ybingroup=ybingroup,
+                ybins=ybins,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zauto=zauto,
+                zhoverformat=zhoverformat,
+                zmax=zmax,
+                zmid=zmid,
+                zmin=zmin,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_icicle(self,
+            branchvalues=None,
+            count=None,
+            customdata=None,
+            customdatasrc=None,
+            domain=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextfont=None,
+            labels=None,
+            labelssrc=None,
+            leaf=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            level=None,
+            marker=None,
+            maxdepth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            outsidetextfont=None,
+            parents=None,
+            parentssrc=None,
+            pathbar=None,
+            root=None,
+            sort=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            tiling=None,
+            uid=None,
+            uirevision=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Icicle trace
 
@@ -9733,107 +9627,105 @@ def add_icicle(
         FigureWidget
         """
         from plotly.graph_objs import Icicle
-
         new_trace = Icicle(
-            branchvalues=branchvalues,
-            count=count,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            domain=domain,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            insidetextfont=insidetextfont,
-            labels=labels,
-            labelssrc=labelssrc,
-            leaf=leaf,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            level=level,
-            marker=marker,
-            maxdepth=maxdepth,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            outsidetextfont=outsidetextfont,
-            parents=parents,
-            parentssrc=parentssrc,
-            pathbar=pathbar,
-            root=root,
-            sort=sort,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textinfo=textinfo,
-            textposition=textposition,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            tiling=tiling,
-            uid=uid,
-            uirevision=uirevision,
-            values=values,
-            valuessrc=valuessrc,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_image(
-        self,
-        colormodel=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        source=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x0=None,
-        xaxis=None,
-        y0=None,
-        yaxis=None,
-        z=None,
-        zmax=None,
-        zmin=None,
-        zorder=None,
-        zsmooth=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                branchvalues=branchvalues,
+                count=count,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                domain=domain,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                insidetextfont=insidetextfont,
+                labels=labels,
+                labelssrc=labelssrc,
+                leaf=leaf,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                level=level,
+                marker=marker,
+                maxdepth=maxdepth,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                outsidetextfont=outsidetextfont,
+                parents=parents,
+                parentssrc=parentssrc,
+                pathbar=pathbar,
+                root=root,
+                sort=sort,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textinfo=textinfo,
+                textposition=textposition,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                tiling=tiling,
+                uid=uid,
+                uirevision=uirevision,
+                values=values,
+                valuessrc=valuessrc,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_image(self,
+            colormodel=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            source=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x0=None,
+            xaxis=None,
+            y0=None,
+            yaxis=None,
+            z=None,
+            zmax=None,
+            zmin=None,
+            zorder=None,
+            zsmooth=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Image trace
 
@@ -10083,80 +9975,78 @@ def add_image(
         FigureWidget
         """
         from plotly.graph_objs import Image
-
         new_trace = Image(
-            colormodel=colormodel,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dx=dx,
-            dy=dy,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            source=source,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x0=x0,
-            xaxis=xaxis,
-            y0=y0,
-            yaxis=yaxis,
-            z=z,
-            zmax=zmax,
-            zmin=zmin,
-            zorder=zorder,
-            zsmooth=zsmooth,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_indicator(
-        self,
-        align=None,
-        customdata=None,
-        customdatasrc=None,
-        delta=None,
-        domain=None,
-        gauge=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        number=None,
-        stream=None,
-        title=None,
-        uid=None,
-        uirevision=None,
-        value=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                colormodel=colormodel,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dx=dx,
+                dy=dy,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                source=source,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x0=x0,
+                xaxis=xaxis,
+                y0=y0,
+                yaxis=yaxis,
+                z=z,
+                zmax=zmax,
+                zmin=zmin,
+                zorder=zorder,
+                zsmooth=zsmooth,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_indicator(self,
+            align=None,
+            customdata=None,
+            customdatasrc=None,
+            delta=None,
+            domain=None,
+            gauge=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            number=None,
+            stream=None,
+            title=None,
+            uid=None,
+            uirevision=None,
+            value=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Indicator trace
 
@@ -10299,101 +10189,99 @@ def add_indicator(
         FigureWidget
         """
         from plotly.graph_objs import Indicator
-
         new_trace = Indicator(
-            align=align,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            delta=delta,
-            domain=domain,
-            gauge=gauge,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            number=number,
-            stream=stream,
-            title=title,
-            uid=uid,
-            uirevision=uirevision,
-            value=value,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_isosurface(
-        self,
-        autocolorscale=None,
-        caps=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        contour=None,
-        customdata=None,
-        customdatasrc=None,
-        flatshading=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        isomax=None,
-        isomin=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        slices=None,
-        spaceframe=None,
-        stream=None,
-        surface=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        value=None,
-        valuehoverformat=None,
-        valuesrc=None,
-        visible=None,
-        x=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zhoverformat=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                align=align,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                delta=delta,
+                domain=domain,
+                gauge=gauge,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                number=number,
+                stream=stream,
+                title=title,
+                uid=uid,
+                uirevision=uirevision,
+                value=value,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_isosurface(self,
+            autocolorscale=None,
+            caps=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            contour=None,
+            customdata=None,
+            customdatasrc=None,
+            flatshading=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            isomax=None,
+            isomin=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            slices=None,
+            spaceframe=None,
+            stream=None,
+            surface=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            value=None,
+            valuehoverformat=None,
+            valuesrc=None,
+            visible=None,
+            x=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zhoverformat=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Isosurface trace
 
@@ -10733,148 +10621,146 @@ def add_isosurface(
         FigureWidget
         """
         from plotly.graph_objs import Isosurface
-
         new_trace = Isosurface(
-            autocolorscale=autocolorscale,
-            caps=caps,
-            cauto=cauto,
-            cmax=cmax,
-            cmid=cmid,
-            cmin=cmin,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            contour=contour,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            flatshading=flatshading,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            isomax=isomax,
-            isomin=isomin,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            lighting=lighting,
-            lightposition=lightposition,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            reversescale=reversescale,
-            scene=scene,
-            showlegend=showlegend,
-            showscale=showscale,
-            slices=slices,
-            spaceframe=spaceframe,
-            stream=stream,
-            surface=surface,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            value=value,
-            valuehoverformat=valuehoverformat,
-            valuesrc=valuesrc,
-            visible=visible,
-            x=x,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zhoverformat=zhoverformat,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_mesh3d(
-        self,
-        alphahull=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        contour=None,
-        customdata=None,
-        customdatasrc=None,
-        delaunayaxis=None,
-        facecolor=None,
-        facecolorsrc=None,
-        flatshading=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        i=None,
-        ids=None,
-        idssrc=None,
-        intensity=None,
-        intensitymode=None,
-        intensitysrc=None,
-        isrc=None,
-        j=None,
-        jsrc=None,
-        k=None,
-        ksrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        vertexcolor=None,
-        vertexcolorsrc=None,
-        visible=None,
-        x=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        ycalendar=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zcalendar=None,
-        zhoverformat=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                autocolorscale=autocolorscale,
+                caps=caps,
+                cauto=cauto,
+                cmax=cmax,
+                cmid=cmid,
+                cmin=cmin,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                contour=contour,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                flatshading=flatshading,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                isomax=isomax,
+                isomin=isomin,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                lighting=lighting,
+                lightposition=lightposition,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                reversescale=reversescale,
+                scene=scene,
+                showlegend=showlegend,
+                showscale=showscale,
+                slices=slices,
+                spaceframe=spaceframe,
+                stream=stream,
+                surface=surface,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                value=value,
+                valuehoverformat=valuehoverformat,
+                valuesrc=valuesrc,
+                visible=visible,
+                x=x,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zhoverformat=zhoverformat,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_mesh3d(self,
+            alphahull=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            contour=None,
+            customdata=None,
+            customdatasrc=None,
+            delaunayaxis=None,
+            facecolor=None,
+            facecolorsrc=None,
+            flatshading=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            i=None,
+            ids=None,
+            idssrc=None,
+            intensity=None,
+            intensitymode=None,
+            intensitysrc=None,
+            isrc=None,
+            j=None,
+            jsrc=None,
+            k=None,
+            ksrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            vertexcolor=None,
+            vertexcolorsrc=None,
+            visible=None,
+            x=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            ycalendar=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zcalendar=None,
+            zhoverformat=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Mesh3d trace
 
@@ -11284,138 +11170,136 @@ def add_mesh3d(
         FigureWidget
         """
         from plotly.graph_objs import Mesh3d
-
         new_trace = Mesh3d(
-            alphahull=alphahull,
-            autocolorscale=autocolorscale,
-            cauto=cauto,
-            cmax=cmax,
-            cmid=cmid,
-            cmin=cmin,
-            color=color,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            contour=contour,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            delaunayaxis=delaunayaxis,
-            facecolor=facecolor,
-            facecolorsrc=facecolorsrc,
-            flatshading=flatshading,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            i=i,
-            ids=ids,
-            idssrc=idssrc,
-            intensity=intensity,
-            intensitymode=intensitymode,
-            intensitysrc=intensitysrc,
-            isrc=isrc,
-            j=j,
-            jsrc=jsrc,
-            k=k,
-            ksrc=ksrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            lighting=lighting,
-            lightposition=lightposition,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            reversescale=reversescale,
-            scene=scene,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            vertexcolor=vertexcolor,
-            vertexcolorsrc=vertexcolorsrc,
-            visible=visible,
-            x=x,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zcalendar=zcalendar,
-            zhoverformat=zhoverformat,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_ohlc(
-        self,
-        close=None,
-        closesrc=None,
-        customdata=None,
-        customdatasrc=None,
-        decreasing=None,
-        high=None,
-        highsrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        increasing=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        low=None,
-        lowsrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        open=None,
-        opensrc=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        tickwidth=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        yaxis=None,
-        yhoverformat=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                alphahull=alphahull,
+                autocolorscale=autocolorscale,
+                cauto=cauto,
+                cmax=cmax,
+                cmid=cmid,
+                cmin=cmin,
+                color=color,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                contour=contour,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                delaunayaxis=delaunayaxis,
+                facecolor=facecolor,
+                facecolorsrc=facecolorsrc,
+                flatshading=flatshading,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                i=i,
+                ids=ids,
+                idssrc=idssrc,
+                intensity=intensity,
+                intensitymode=intensitymode,
+                intensitysrc=intensitysrc,
+                isrc=isrc,
+                j=j,
+                jsrc=jsrc,
+                k=k,
+                ksrc=ksrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                lighting=lighting,
+                lightposition=lightposition,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                reversescale=reversescale,
+                scene=scene,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                vertexcolor=vertexcolor,
+                vertexcolorsrc=vertexcolorsrc,
+                visible=visible,
+                x=x,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zcalendar=zcalendar,
+                zhoverformat=zhoverformat,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_ohlc(self,
+            close=None,
+            closesrc=None,
+            customdata=None,
+            customdatasrc=None,
+            decreasing=None,
+            high=None,
+            highsrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            increasing=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            low=None,
+            lowsrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            open=None,
+            opensrc=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            tickwidth=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            yaxis=None,
+            yhoverformat=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Ohlc trace
 
@@ -11680,90 +11564,88 @@ def add_ohlc(
         FigureWidget
         """
         from plotly.graph_objs import Ohlc
-
         new_trace = Ohlc(
-            close=close,
-            closesrc=closesrc,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            decreasing=decreasing,
-            high=high,
-            highsrc=highsrc,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            increasing=increasing,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            low=low,
-            lowsrc=lowsrc,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            open=open,
-            opensrc=opensrc,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            tickwidth=tickwidth,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x=x,
-            xaxis=xaxis,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            yaxis=yaxis,
-            yhoverformat=yhoverformat,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_parcats(
-        self,
-        arrangement=None,
-        bundlecolors=None,
-        counts=None,
-        countssrc=None,
-        dimensions=None,
-        dimensiondefaults=None,
-        domain=None,
-        hoverinfo=None,
-        hoveron=None,
-        hovertemplate=None,
-        labelfont=None,
-        legendgrouptitle=None,
-        legendwidth=None,
-        line=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        sortpaths=None,
-        stream=None,
-        tickfont=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                close=close,
+                closesrc=closesrc,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                decreasing=decreasing,
+                high=high,
+                highsrc=highsrc,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                increasing=increasing,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                low=low,
+                lowsrc=lowsrc,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                open=open,
+                opensrc=opensrc,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                tickwidth=tickwidth,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x=x,
+                xaxis=xaxis,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                yaxis=yaxis,
+                yhoverformat=yhoverformat,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_parcats(self,
+            arrangement=None,
+            bundlecolors=None,
+            counts=None,
+            countssrc=None,
+            dimensions=None,
+            dimensiondefaults=None,
+            domain=None,
+            hoverinfo=None,
+            hoveron=None,
+            hovertemplate=None,
+            labelfont=None,
+            legendgrouptitle=None,
+            legendwidth=None,
+            line=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            sortpaths=None,
+            stream=None,
+            tickfont=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Parcats trace
 
@@ -11930,66 +11812,64 @@ def add_parcats(
         FigureWidget
         """
         from plotly.graph_objs import Parcats
-
         new_trace = Parcats(
-            arrangement=arrangement,
-            bundlecolors=bundlecolors,
-            counts=counts,
-            countssrc=countssrc,
-            dimensions=dimensions,
-            dimensiondefaults=dimensiondefaults,
-            domain=domain,
-            hoverinfo=hoverinfo,
-            hoveron=hoveron,
-            hovertemplate=hovertemplate,
-            labelfont=labelfont,
-            legendgrouptitle=legendgrouptitle,
-            legendwidth=legendwidth,
-            line=line,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            sortpaths=sortpaths,
-            stream=stream,
-            tickfont=tickfont,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_parcoords(
-        self,
-        customdata=None,
-        customdatasrc=None,
-        dimensions=None,
-        dimensiondefaults=None,
-        domain=None,
-        ids=None,
-        idssrc=None,
-        labelangle=None,
-        labelfont=None,
-        labelside=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        rangefont=None,
-        stream=None,
-        tickfont=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                arrangement=arrangement,
+                bundlecolors=bundlecolors,
+                counts=counts,
+                countssrc=countssrc,
+                dimensions=dimensions,
+                dimensiondefaults=dimensiondefaults,
+                domain=domain,
+                hoverinfo=hoverinfo,
+                hoveron=hoveron,
+                hovertemplate=hovertemplate,
+                labelfont=labelfont,
+                legendgrouptitle=legendgrouptitle,
+                legendwidth=legendwidth,
+                line=line,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                sortpaths=sortpaths,
+                stream=stream,
+                tickfont=tickfont,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_parcoords(self,
+            customdata=None,
+            customdatasrc=None,
+            dimensions=None,
+            dimensiondefaults=None,
+            domain=None,
+            ids=None,
+            idssrc=None,
+            labelangle=None,
+            labelfont=None,
+            labelside=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            rangefont=None,
+            stream=None,
+            tickfont=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Parcoords trace
 
@@ -12137,96 +12017,94 @@ def add_parcoords(
         FigureWidget
         """
         from plotly.graph_objs import Parcoords
-
         new_trace = Parcoords(
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dimensions=dimensions,
-            dimensiondefaults=dimensiondefaults,
-            domain=domain,
-            ids=ids,
-            idssrc=idssrc,
-            labelangle=labelangle,
-            labelfont=labelfont,
-            labelside=labelside,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            rangefont=rangefont,
-            stream=stream,
-            tickfont=tickfont,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_pie(
-        self,
-        automargin=None,
-        customdata=None,
-        customdatasrc=None,
-        direction=None,
-        dlabel=None,
-        domain=None,
-        hole=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextfont=None,
-        insidetextorientation=None,
-        label0=None,
-        labels=None,
-        labelssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        outsidetextfont=None,
-        pull=None,
-        pullsrc=None,
-        rotation=None,
-        scalegroup=None,
-        showlegend=None,
-        sort=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        title=None,
-        uid=None,
-        uirevision=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dimensions=dimensions,
+                dimensiondefaults=dimensiondefaults,
+                domain=domain,
+                ids=ids,
+                idssrc=idssrc,
+                labelangle=labelangle,
+                labelfont=labelfont,
+                labelside=labelside,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                rangefont=rangefont,
+                stream=stream,
+                tickfont=tickfont,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_pie(self,
+            automargin=None,
+            customdata=None,
+            customdatasrc=None,
+            direction=None,
+            dlabel=None,
+            domain=None,
+            hole=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextfont=None,
+            insidetextorientation=None,
+            label0=None,
+            labels=None,
+            labelssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            outsidetextfont=None,
+            pull=None,
+            pullsrc=None,
+            rotation=None,
+            scalegroup=None,
+            showlegend=None,
+            sort=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            title=None,
+            uid=None,
+            uirevision=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Pie trace
 
@@ -12514,97 +12392,95 @@ def add_pie(
         FigureWidget
         """
         from plotly.graph_objs import Pie
-
         new_trace = Pie(
-            automargin=automargin,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            direction=direction,
-            dlabel=dlabel,
-            domain=domain,
-            hole=hole,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            insidetextfont=insidetextfont,
-            insidetextorientation=insidetextorientation,
-            label0=label0,
-            labels=labels,
-            labelssrc=labelssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            outsidetextfont=outsidetextfont,
-            pull=pull,
-            pullsrc=pullsrc,
-            rotation=rotation,
-            scalegroup=scalegroup,
-            showlegend=showlegend,
-            sort=sort,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textinfo=textinfo,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            title=title,
-            uid=uid,
-            uirevision=uirevision,
-            values=values,
-            valuessrc=valuessrc,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_sankey(
-        self,
-        arrangement=None,
-        customdata=None,
-        customdatasrc=None,
-        domain=None,
-        hoverinfo=None,
-        hoverlabel=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        link=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        node=None,
-        orientation=None,
-        selectedpoints=None,
-        stream=None,
-        textfont=None,
-        uid=None,
-        uirevision=None,
-        valueformat=None,
-        valuesuffix=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                automargin=automargin,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                direction=direction,
+                dlabel=dlabel,
+                domain=domain,
+                hole=hole,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                insidetextfont=insidetextfont,
+                insidetextorientation=insidetextorientation,
+                label0=label0,
+                labels=labels,
+                labelssrc=labelssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                outsidetextfont=outsidetextfont,
+                pull=pull,
+                pullsrc=pullsrc,
+                rotation=rotation,
+                scalegroup=scalegroup,
+                showlegend=showlegend,
+                sort=sort,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textinfo=textinfo,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                title=title,
+                uid=uid,
+                uirevision=uirevision,
+                values=values,
+                valuessrc=valuessrc,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_sankey(self,
+            arrangement=None,
+            customdata=None,
+            customdatasrc=None,
+            domain=None,
+            hoverinfo=None,
+            hoverlabel=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            link=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            node=None,
+            orientation=None,
+            selectedpoints=None,
+            stream=None,
+            textfont=None,
+            uid=None,
+            uirevision=None,
+            valueformat=None,
+            valuesuffix=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Sankey trace
 
@@ -12763,119 +12639,117 @@ def add_sankey(
         FigureWidget
         """
         from plotly.graph_objs import Sankey
-
         new_trace = Sankey(
-            arrangement=arrangement,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            domain=domain,
-            hoverinfo=hoverinfo,
-            hoverlabel=hoverlabel,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            link=link,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            node=node,
-            orientation=orientation,
-            selectedpoints=selectedpoints,
-            stream=stream,
-            textfont=textfont,
-            uid=uid,
-            uirevision=uirevision,
-            valueformat=valueformat,
-            valuesuffix=valuesuffix,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_scatter(
-        self,
-        alignmentgroup=None,
-        cliponaxis=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        error_x=None,
-        error_y=None,
-        fill=None,
-        fillcolor=None,
-        fillgradient=None,
-        fillpattern=None,
-        groupnorm=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        offsetgroup=None,
-        opacity=None,
-        orientation=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stackgaps=None,
-        stackgroup=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                arrangement=arrangement,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                domain=domain,
+                hoverinfo=hoverinfo,
+                hoverlabel=hoverlabel,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                link=link,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                node=node,
+                orientation=orientation,
+                selectedpoints=selectedpoints,
+                stream=stream,
+                textfont=textfont,
+                uid=uid,
+                uirevision=uirevision,
+                valueformat=valueformat,
+                valuesuffix=valuesuffix,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_scatter(self,
+            alignmentgroup=None,
+            cliponaxis=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            error_x=None,
+            error_y=None,
+            fill=None,
+            fillcolor=None,
+            fillgradient=None,
+            fillpattern=None,
+            groupnorm=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            offsetgroup=None,
+            opacity=None,
+            orientation=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stackgaps=None,
+            stackgroup=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Scatter trace
 
@@ -13333,147 +13207,145 @@ def add_scatter(
         FigureWidget
         """
         from plotly.graph_objs import Scatter
-
         new_trace = Scatter(
-            alignmentgroup=alignmentgroup,
-            cliponaxis=cliponaxis,
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dx=dx,
-            dy=dy,
-            error_x=error_x,
-            error_y=error_y,
-            fill=fill,
-            fillcolor=fillcolor,
-            fillgradient=fillgradient,
-            fillpattern=fillpattern,
-            groupnorm=groupnorm,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoveron=hoveron,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            offsetgroup=offsetgroup,
-            opacity=opacity,
-            orientation=orientation,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stackgaps=stackgaps,
-            stackgroup=stackgroup,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            yperiod=yperiod,
-            yperiod0=yperiod0,
-            yperiodalignment=yperiodalignment,
-            ysrc=ysrc,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_scatter3d(
-        self,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        error_x=None,
-        error_y=None,
-        error_z=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        projection=None,
-        scene=None,
-        showlegend=None,
-        stream=None,
-        surfaceaxis=None,
-        surfacecolor=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        ycalendar=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zcalendar=None,
-        zhoverformat=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                alignmentgroup=alignmentgroup,
+                cliponaxis=cliponaxis,
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dx=dx,
+                dy=dy,
+                error_x=error_x,
+                error_y=error_y,
+                fill=fill,
+                fillcolor=fillcolor,
+                fillgradient=fillgradient,
+                fillpattern=fillpattern,
+                groupnorm=groupnorm,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoveron=hoveron,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                offsetgroup=offsetgroup,
+                opacity=opacity,
+                orientation=orientation,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stackgaps=stackgaps,
+                stackgroup=stackgroup,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                yperiod=yperiod,
+                yperiod0=yperiod0,
+                yperiodalignment=yperiodalignment,
+                ysrc=ysrc,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_scatter3d(self,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            error_x=None,
+            error_y=None,
+            error_z=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            projection=None,
+            scene=None,
+            showlegend=None,
+            stream=None,
+            surfaceaxis=None,
+            surfacecolor=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            ycalendar=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zcalendar=None,
+            zhoverformat=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Scatter3d trace
 
@@ -13788,124 +13660,122 @@ def add_scatter3d(
         FigureWidget
         """
         from plotly.graph_objs import Scatter3d
-
         new_trace = Scatter3d(
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            error_x=error_x,
-            error_y=error_y,
-            error_z=error_z,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            projection=projection,
-            scene=scene,
-            showlegend=showlegend,
-            stream=stream,
-            surfaceaxis=surfaceaxis,
-            surfacecolor=surfacecolor,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x=x,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zcalendar=zcalendar,
-            zhoverformat=zhoverformat,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_scattercarpet(
-        self,
-        a=None,
-        asrc=None,
-        b=None,
-        bsrc=None,
-        carpet=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        xaxis=None,
-        yaxis=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                error_x=error_x,
+                error_y=error_y,
+                error_z=error_z,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                projection=projection,
+                scene=scene,
+                showlegend=showlegend,
+                stream=stream,
+                surfaceaxis=surfaceaxis,
+                surfacecolor=surfacecolor,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x=x,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zcalendar=zcalendar,
+                zhoverformat=zhoverformat,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_scattercarpet(self,
+            a=None,
+            asrc=None,
+            b=None,
+            bsrc=None,
+            carpet=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            xaxis=None,
+            yaxis=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Scattercarpet trace
 
@@ -14205,119 +14075,117 @@ def add_scattercarpet(
         FigureWidget
         """
         from plotly.graph_objs import Scattercarpet
-
         new_trace = Scattercarpet(
-            a=a,
-            asrc=asrc,
-            b=b,
-            bsrc=bsrc,
-            carpet=carpet,
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            fill=fill,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoveron=hoveron,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            xaxis=xaxis,
-            yaxis=yaxis,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_scattergeo(
-        self,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        featureidkey=None,
-        fill=None,
-        fillcolor=None,
-        geo=None,
-        geojson=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        lat=None,
-        latsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        locationmode=None,
-        locations=None,
-        locationssrc=None,
-        lon=None,
-        lonsrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                a=a,
+                asrc=asrc,
+                b=b,
+                bsrc=bsrc,
+                carpet=carpet,
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                fill=fill,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoveron=hoveron,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                xaxis=xaxis,
+                yaxis=yaxis,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_scattergeo(self,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            featureidkey=None,
+            fill=None,
+            fillcolor=None,
+            geo=None,
+            geojson=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            lat=None,
+            latsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            locationmode=None,
+            locations=None,
+            locationssrc=None,
+            lon=None,
+            lonsrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Scattergeo trace
 
@@ -14613,133 +14481,131 @@ def add_scattergeo(
         FigureWidget
         """
         from plotly.graph_objs import Scattergeo
-
         new_trace = Scattergeo(
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            featureidkey=featureidkey,
-            fill=fill,
-            fillcolor=fillcolor,
-            geo=geo,
-            geojson=geojson,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            lat=lat,
-            latsrc=latsrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            locationmode=locationmode,
-            locations=locations,
-            locationssrc=locationssrc,
-            lon=lon,
-            lonsrc=lonsrc,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_scattergl(
-        self,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        error_x=None,
-        error_y=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                featureidkey=featureidkey,
+                fill=fill,
+                fillcolor=fillcolor,
+                geo=geo,
+                geojson=geojson,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                lat=lat,
+                latsrc=latsrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                locationmode=locationmode,
+                locations=locations,
+                locationssrc=locationssrc,
+                lon=lon,
+                lonsrc=lonsrc,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_scattergl(self,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            error_x=None,
+            error_y=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Scattergl trace
 
@@ -15113,128 +14979,126 @@ def add_scattergl(
         FigureWidget
         """
         from plotly.graph_objs import Scattergl
-
         new_trace = Scattergl(
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dx=dx,
-            dy=dy,
-            error_x=error_x,
-            error_y=error_y,
-            fill=fill,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            yperiod=yperiod,
-            yperiod0=yperiod0,
-            yperiodalignment=yperiodalignment,
-            ysrc=ysrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_scattermap(
-        self,
-        below=None,
-        cluster=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        lat=None,
-        latsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        lon=None,
-        lonsrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dx=dx,
+                dy=dy,
+                error_x=error_x,
+                error_y=error_y,
+                fill=fill,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                yperiod=yperiod,
+                yperiod0=yperiod0,
+                yperiodalignment=yperiodalignment,
+                ysrc=ysrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_scattermap(self,
+            below=None,
+            cluster=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            lat=None,
+            latsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            lon=None,
+            lonsrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Scattermap trace
 
@@ -15506,112 +15370,110 @@ def add_scattermap(
         FigureWidget
         """
         from plotly.graph_objs import Scattermap
-
         new_trace = Scattermap(
-            below=below,
-            cluster=cluster,
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            fill=fill,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            lat=lat,
-            latsrc=latsrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            lon=lon,
-            lonsrc=lonsrc,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_scattermapbox(
-        self,
-        below=None,
-        cluster=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        lat=None,
-        latsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        lon=None,
-        lonsrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                below=below,
+                cluster=cluster,
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                fill=fill,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                lat=lat,
+                latsrc=latsrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                lon=lon,
+                lonsrc=lonsrc,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_scattermapbox(self,
+            below=None,
+            cluster=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            lat=None,
+            latsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            lon=None,
+            lonsrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Scattermapbox trace
 
@@ -15892,118 +15754,116 @@ def add_scattermapbox(
         FigureWidget
         """
         from plotly.graph_objs import Scattermapbox
-
         new_trace = Scattermapbox(
-            below=below,
-            cluster=cluster,
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            fill=fill,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            lat=lat,
-            latsrc=latsrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            lon=lon,
-            lonsrc=lonsrc,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_scatterpolar(
-        self,
-        cliponaxis=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        dr=None,
-        dtheta=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        r=None,
-        r0=None,
-        rsrc=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        theta=None,
-        theta0=None,
-        thetasrc=None,
-        thetaunit=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                below=below,
+                cluster=cluster,
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                fill=fill,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                lat=lat,
+                latsrc=latsrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                lon=lon,
+                lonsrc=lonsrc,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_scatterpolar(self,
+            cliponaxis=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            dr=None,
+            dtheta=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            r=None,
+            r0=None,
+            rsrc=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            theta=None,
+            theta0=None,
+            thetasrc=None,
+            thetaunit=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Scatterpolar trace
 
@@ -16308,122 +16168,120 @@ def add_scatterpolar(
         FigureWidget
         """
         from plotly.graph_objs import Scatterpolar
-
         new_trace = Scatterpolar(
-            cliponaxis=cliponaxis,
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dr=dr,
-            dtheta=dtheta,
-            fill=fill,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoveron=hoveron,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            r=r,
-            r0=r0,
-            rsrc=rsrc,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            theta=theta,
-            theta0=theta0,
-            thetasrc=thetasrc,
-            thetaunit=thetaunit,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_scatterpolargl(
-        self,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        dr=None,
-        dtheta=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        r=None,
-        r0=None,
-        rsrc=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        theta=None,
-        theta0=None,
-        thetasrc=None,
-        thetaunit=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                cliponaxis=cliponaxis,
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dr=dr,
+                dtheta=dtheta,
+                fill=fill,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoveron=hoveron,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                r=r,
+                r0=r0,
+                rsrc=rsrc,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                theta=theta,
+                theta0=theta0,
+                thetasrc=thetasrc,
+                thetaunit=thetaunit,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_scatterpolargl(self,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            dr=None,
+            dtheta=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            r=None,
+            r0=None,
+            rsrc=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            theta=None,
+            theta0=None,
+            thetasrc=None,
+            thetaunit=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Scatterpolargl trace
 
@@ -16727,117 +16585,115 @@ def add_scatterpolargl(
         FigureWidget
         """
         from plotly.graph_objs import Scatterpolargl
-
         new_trace = Scatterpolargl(
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            dr=dr,
-            dtheta=dtheta,
-            fill=fill,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            r=r,
-            r0=r0,
-            rsrc=rsrc,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            theta=theta,
-            theta0=theta0,
-            thetasrc=thetasrc,
-            thetaunit=thetaunit,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_scattersmith(
-        self,
-        cliponaxis=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        imag=None,
-        imagsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        real=None,
-        realsrc=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                dr=dr,
+                dtheta=dtheta,
+                fill=fill,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                r=r,
+                r0=r0,
+                rsrc=rsrc,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                theta=theta,
+                theta0=theta0,
+                thetasrc=thetasrc,
+                thetaunit=thetaunit,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_scattersmith(self,
+            cliponaxis=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            imag=None,
+            imagsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            real=None,
+            realsrc=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Scattersmith trace
 
@@ -17129,117 +16985,115 @@ def add_scattersmith(
         FigureWidget
         """
         from plotly.graph_objs import Scattersmith
-
         new_trace = Scattersmith(
-            cliponaxis=cliponaxis,
-            connectgaps=connectgaps,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            fill=fill,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoveron=hoveron,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            imag=imag,
-            imagsrc=imagsrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            real=real,
-            realsrc=realsrc,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            subplot=subplot,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_scatterternary(
-        self,
-        a=None,
-        asrc=None,
-        b=None,
-        bsrc=None,
-        c=None,
-        cliponaxis=None,
-        connectgaps=None,
-        csrc=None,
-        customdata=None,
-        customdatasrc=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        sum=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                cliponaxis=cliponaxis,
+                connectgaps=connectgaps,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                fill=fill,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoveron=hoveron,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                imag=imag,
+                imagsrc=imagsrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                real=real,
+                realsrc=realsrc,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                subplot=subplot,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_scatterternary(self,
+            a=None,
+            asrc=None,
+            b=None,
+            bsrc=None,
+            c=None,
+            cliponaxis=None,
+            connectgaps=None,
+            csrc=None,
+            customdata=None,
+            customdatasrc=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            sum=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Scatterternary trace
 
@@ -17547,109 +17401,107 @@ def add_scatterternary(
         FigureWidget
         """
         from plotly.graph_objs import Scatterternary
-
         new_trace = Scatterternary(
-            a=a,
-            asrc=asrc,
-            b=b,
-            bsrc=bsrc,
-            c=c,
-            cliponaxis=cliponaxis,
-            connectgaps=connectgaps,
-            csrc=csrc,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            fill=fill,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoveron=hoveron,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            mode=mode,
-            name=name,
-            opacity=opacity,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            subplot=subplot,
-            sum=sum,
-            text=text,
-            textfont=textfont,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_splom(
-        self,
-        customdata=None,
-        customdatasrc=None,
-        diagonal=None,
-        dimensions=None,
-        dimensiondefaults=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        showlowerhalf=None,
-        showupperhalf=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        xaxes=None,
-        xhoverformat=None,
-        yaxes=None,
-        yhoverformat=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                a=a,
+                asrc=asrc,
+                b=b,
+                bsrc=bsrc,
+                c=c,
+                cliponaxis=cliponaxis,
+                connectgaps=connectgaps,
+                csrc=csrc,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                fill=fill,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoveron=hoveron,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                mode=mode,
+                name=name,
+                opacity=opacity,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                subplot=subplot,
+                sum=sum,
+                text=text,
+                textfont=textfont,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_splom(self,
+            customdata=None,
+            customdatasrc=None,
+            diagonal=None,
+            dimensions=None,
+            dimensiondefaults=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            showlowerhalf=None,
+            showupperhalf=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            xaxes=None,
+            xhoverformat=None,
+            yaxes=None,
+            yhoverformat=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Splom trace
 
@@ -17907,117 +17759,115 @@ def add_splom(
         FigureWidget
         """
         from plotly.graph_objs import Splom
-
         new_trace = Splom(
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            diagonal=diagonal,
-            dimensions=dimensions,
-            dimensiondefaults=dimensiondefaults,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            marker=marker,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            showlowerhalf=showlowerhalf,
-            showupperhalf=showupperhalf,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            xaxes=xaxes,
-            xhoverformat=xhoverformat,
-            yaxes=yaxes,
-            yhoverformat=yhoverformat,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_streamtube(
-        self,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        maxdisplayed=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        sizeref=None,
-        starts=None,
-        stream=None,
-        text=None,
-        u=None,
-        uhoverformat=None,
-        uid=None,
-        uirevision=None,
-        usrc=None,
-        v=None,
-        vhoverformat=None,
-        visible=None,
-        vsrc=None,
-        w=None,
-        whoverformat=None,
-        wsrc=None,
-        x=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zhoverformat=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                diagonal=diagonal,
+                dimensions=dimensions,
+                dimensiondefaults=dimensiondefaults,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                marker=marker,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                showlowerhalf=showlowerhalf,
+                showupperhalf=showupperhalf,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                xaxes=xaxes,
+                xhoverformat=xhoverformat,
+                yaxes=yaxes,
+                yhoverformat=yhoverformat,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_streamtube(self,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            maxdisplayed=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            sizeref=None,
+            starts=None,
+            stream=None,
+            text=None,
+            u=None,
+            uhoverformat=None,
+            uid=None,
+            uirevision=None,
+            usrc=None,
+            v=None,
+            vhoverformat=None,
+            visible=None,
+            vsrc=None,
+            w=None,
+            whoverformat=None,
+            wsrc=None,
+            x=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zhoverformat=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Streamtube trace
 
@@ -18366,125 +18216,123 @@ def add_streamtube(
         FigureWidget
         """
         from plotly.graph_objs import Streamtube
-
         new_trace = Streamtube(
-            autocolorscale=autocolorscale,
-            cauto=cauto,
-            cmax=cmax,
-            cmid=cmid,
-            cmin=cmin,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            lighting=lighting,
-            lightposition=lightposition,
-            maxdisplayed=maxdisplayed,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            reversescale=reversescale,
-            scene=scene,
-            showlegend=showlegend,
-            showscale=showscale,
-            sizeref=sizeref,
-            starts=starts,
-            stream=stream,
-            text=text,
-            u=u,
-            uhoverformat=uhoverformat,
-            uid=uid,
-            uirevision=uirevision,
-            usrc=usrc,
-            v=v,
-            vhoverformat=vhoverformat,
-            visible=visible,
-            vsrc=vsrc,
-            w=w,
-            whoverformat=whoverformat,
-            wsrc=wsrc,
-            x=x,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zhoverformat=zhoverformat,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_sunburst(
-        self,
-        branchvalues=None,
-        count=None,
-        customdata=None,
-        customdatasrc=None,
-        domain=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextfont=None,
-        insidetextorientation=None,
-        labels=None,
-        labelssrc=None,
-        leaf=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        level=None,
-        marker=None,
-        maxdepth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        outsidetextfont=None,
-        parents=None,
-        parentssrc=None,
-        root=None,
-        rotation=None,
-        sort=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textinfo=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                autocolorscale=autocolorscale,
+                cauto=cauto,
+                cmax=cmax,
+                cmid=cmid,
+                cmin=cmin,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                lighting=lighting,
+                lightposition=lightposition,
+                maxdisplayed=maxdisplayed,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                reversescale=reversescale,
+                scene=scene,
+                showlegend=showlegend,
+                showscale=showscale,
+                sizeref=sizeref,
+                starts=starts,
+                stream=stream,
+                text=text,
+                u=u,
+                uhoverformat=uhoverformat,
+                uid=uid,
+                uirevision=uirevision,
+                usrc=usrc,
+                v=v,
+                vhoverformat=vhoverformat,
+                visible=visible,
+                vsrc=vsrc,
+                w=w,
+                whoverformat=whoverformat,
+                wsrc=wsrc,
+                x=x,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zhoverformat=zhoverformat,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_sunburst(self,
+            branchvalues=None,
+            count=None,
+            customdata=None,
+            customdatasrc=None,
+            domain=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextfont=None,
+            insidetextorientation=None,
+            labels=None,
+            labelssrc=None,
+            leaf=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            level=None,
+            marker=None,
+            maxdepth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            outsidetextfont=None,
+            parents=None,
+            parentssrc=None,
+            root=None,
+            rotation=None,
+            sort=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textinfo=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Sunburst trace
 
@@ -18769,124 +18617,122 @@ def add_sunburst(
         FigureWidget
         """
         from plotly.graph_objs import Sunburst
-
         new_trace = Sunburst(
-            branchvalues=branchvalues,
-            count=count,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            domain=domain,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            insidetextfont=insidetextfont,
-            insidetextorientation=insidetextorientation,
-            labels=labels,
-            labelssrc=labelssrc,
-            leaf=leaf,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            level=level,
-            marker=marker,
-            maxdepth=maxdepth,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            outsidetextfont=outsidetextfont,
-            parents=parents,
-            parentssrc=parentssrc,
-            root=root,
-            rotation=rotation,
-            sort=sort,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textinfo=textinfo,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            uid=uid,
-            uirevision=uirevision,
-            values=values,
-            valuessrc=valuessrc,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_surface(
-        self,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        connectgaps=None,
-        contours=None,
-        customdata=None,
-        customdatasrc=None,
-        hidesurface=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        opacityscale=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        surfacecolor=None,
-        surfacecolorsrc=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        ycalendar=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zcalendar=None,
-        zhoverformat=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                branchvalues=branchvalues,
+                count=count,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                domain=domain,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                insidetextfont=insidetextfont,
+                insidetextorientation=insidetextorientation,
+                labels=labels,
+                labelssrc=labelssrc,
+                leaf=leaf,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                level=level,
+                marker=marker,
+                maxdepth=maxdepth,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                outsidetextfont=outsidetextfont,
+                parents=parents,
+                parentssrc=parentssrc,
+                root=root,
+                rotation=rotation,
+                sort=sort,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textinfo=textinfo,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                uid=uid,
+                uirevision=uirevision,
+                values=values,
+                valuessrc=valuessrc,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_surface(self,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            connectgaps=None,
+            contours=None,
+            customdata=None,
+            customdatasrc=None,
+            hidesurface=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            opacityscale=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            surfacecolor=None,
+            surfacecolorsrc=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            ycalendar=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zcalendar=None,
+            zhoverformat=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Surface trace
 
@@ -19229,101 +19075,99 @@ def add_surface(
         FigureWidget
         """
         from plotly.graph_objs import Surface
-
         new_trace = Surface(
-            autocolorscale=autocolorscale,
-            cauto=cauto,
-            cmax=cmax,
-            cmid=cmid,
-            cmin=cmin,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            connectgaps=connectgaps,
-            contours=contours,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            hidesurface=hidesurface,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            lighting=lighting,
-            lightposition=lightposition,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            opacityscale=opacityscale,
-            reversescale=reversescale,
-            scene=scene,
-            showlegend=showlegend,
-            showscale=showscale,
-            stream=stream,
-            surfacecolor=surfacecolor,
-            surfacecolorsrc=surfacecolorsrc,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            x=x,
-            xcalendar=xcalendar,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            ycalendar=ycalendar,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zcalendar=zcalendar,
-            zhoverformat=zhoverformat,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_table(
-        self,
-        cells=None,
-        columnorder=None,
-        columnordersrc=None,
-        columnwidth=None,
-        columnwidthsrc=None,
-        customdata=None,
-        customdatasrc=None,
-        domain=None,
-        header=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        stream=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                autocolorscale=autocolorscale,
+                cauto=cauto,
+                cmax=cmax,
+                cmid=cmid,
+                cmin=cmin,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                connectgaps=connectgaps,
+                contours=contours,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                hidesurface=hidesurface,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                lighting=lighting,
+                lightposition=lightposition,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                opacityscale=opacityscale,
+                reversescale=reversescale,
+                scene=scene,
+                showlegend=showlegend,
+                showscale=showscale,
+                stream=stream,
+                surfacecolor=surfacecolor,
+                surfacecolorsrc=surfacecolorsrc,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                x=x,
+                xcalendar=xcalendar,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                ycalendar=ycalendar,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zcalendar=zcalendar,
+                zhoverformat=zhoverformat,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_table(self,
+            cells=None,
+            columnorder=None,
+            columnordersrc=None,
+            columnwidth=None,
+            columnwidthsrc=None,
+            customdata=None,
+            customdatasrc=None,
+            domain=None,
+            header=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            stream=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Table trace
 
@@ -19473,91 +19317,89 @@ def add_table(
         FigureWidget
         """
         from plotly.graph_objs import Table
-
         new_trace = Table(
-            cells=cells,
-            columnorder=columnorder,
-            columnordersrc=columnordersrc,
-            columnwidth=columnwidth,
-            columnwidthsrc=columnwidthsrc,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            domain=domain,
-            header=header,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            ids=ids,
-            idssrc=idssrc,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            stream=stream,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_treemap(
-        self,
-        branchvalues=None,
-        count=None,
-        customdata=None,
-        customdatasrc=None,
-        domain=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextfont=None,
-        labels=None,
-        labelssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        level=None,
-        marker=None,
-        maxdepth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        outsidetextfont=None,
-        parents=None,
-        parentssrc=None,
-        pathbar=None,
-        root=None,
-        sort=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        tiling=None,
-        uid=None,
-        uirevision=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                cells=cells,
+                columnorder=columnorder,
+                columnordersrc=columnordersrc,
+                columnwidth=columnwidth,
+                columnwidthsrc=columnwidthsrc,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                domain=domain,
+                header=header,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                ids=ids,
+                idssrc=idssrc,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                stream=stream,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_treemap(self,
+            branchvalues=None,
+            count=None,
+            customdata=None,
+            customdatasrc=None,
+            domain=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextfont=None,
+            labels=None,
+            labelssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            level=None,
+            marker=None,
+            maxdepth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            outsidetextfont=None,
+            parents=None,
+            parentssrc=None,
+            pathbar=None,
+            root=None,
+            sort=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            tiling=None,
+            uid=None,
+            uirevision=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Treemap trace
 
@@ -19835,128 +19677,126 @@ def add_treemap(
         FigureWidget
         """
         from plotly.graph_objs import Treemap
-
         new_trace = Treemap(
-            branchvalues=branchvalues,
-            count=count,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            domain=domain,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            insidetextfont=insidetextfont,
-            labels=labels,
-            labelssrc=labelssrc,
-            legend=legend,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            level=level,
-            marker=marker,
-            maxdepth=maxdepth,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            outsidetextfont=outsidetextfont,
-            parents=parents,
-            parentssrc=parentssrc,
-            pathbar=pathbar,
-            root=root,
-            sort=sort,
-            stream=stream,
-            text=text,
-            textfont=textfont,
-            textinfo=textinfo,
-            textposition=textposition,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            tiling=tiling,
-            uid=uid,
-            uirevision=uirevision,
-            values=values,
-            valuessrc=valuessrc,
-            visible=visible,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_violin(
-        self,
-        alignmentgroup=None,
-        bandwidth=None,
-        box=None,
-        customdata=None,
-        customdatasrc=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        jitter=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meanline=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        offsetgroup=None,
-        opacity=None,
-        orientation=None,
-        pointpos=None,
-        points=None,
-        quartilemethod=None,
-        scalegroup=None,
-        scalemode=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        side=None,
-        span=None,
-        spanmode=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        width=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        yhoverformat=None,
-        ysrc=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                branchvalues=branchvalues,
+                count=count,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                domain=domain,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                insidetextfont=insidetextfont,
+                labels=labels,
+                labelssrc=labelssrc,
+                legend=legend,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                level=level,
+                marker=marker,
+                maxdepth=maxdepth,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                outsidetextfont=outsidetextfont,
+                parents=parents,
+                parentssrc=parentssrc,
+                pathbar=pathbar,
+                root=root,
+                sort=sort,
+                stream=stream,
+                text=text,
+                textfont=textfont,
+                textinfo=textinfo,
+                textposition=textposition,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                tiling=tiling,
+                uid=uid,
+                uirevision=uirevision,
+                values=values,
+                valuessrc=valuessrc,
+                visible=visible,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_violin(self,
+            alignmentgroup=None,
+            bandwidth=None,
+            box=None,
+            customdata=None,
+            customdatasrc=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            jitter=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meanline=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            offsetgroup=None,
+            opacity=None,
+            orientation=None,
+            pointpos=None,
+            points=None,
+            quartilemethod=None,
+            scalegroup=None,
+            scalemode=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            side=None,
+            span=None,
+            spanmode=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            width=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            yhoverformat=None,
+            ysrc=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Violin trace
 
@@ -20338,140 +20178,138 @@ def add_violin(
         FigureWidget
         """
         from plotly.graph_objs import Violin
-
         new_trace = Violin(
-            alignmentgroup=alignmentgroup,
-            bandwidth=bandwidth,
-            box=box,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            fillcolor=fillcolor,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hoveron=hoveron,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            jitter=jitter,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            marker=marker,
-            meanline=meanline,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            offsetgroup=offsetgroup,
-            opacity=opacity,
-            orientation=orientation,
-            pointpos=pointpos,
-            points=points,
-            quartilemethod=quartilemethod,
-            scalegroup=scalegroup,
-            scalemode=scalemode,
-            selected=selected,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            side=side,
-            span=span,
-            spanmode=spanmode,
-            stream=stream,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            unselected=unselected,
-            visible=visible,
-            width=width,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def add_volume(
-        self,
-        autocolorscale=None,
-        caps=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        contour=None,
-        customdata=None,
-        customdatasrc=None,
-        flatshading=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        isomax=None,
-        isomin=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        opacityscale=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        slices=None,
-        spaceframe=None,
-        stream=None,
-        surface=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        value=None,
-        valuehoverformat=None,
-        valuesrc=None,
-        visible=None,
-        x=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zhoverformat=None,
-        zsrc=None,
-        row=None,
-        col=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                alignmentgroup=alignmentgroup,
+                bandwidth=bandwidth,
+                box=box,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                fillcolor=fillcolor,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hoveron=hoveron,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                jitter=jitter,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                marker=marker,
+                meanline=meanline,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                offsetgroup=offsetgroup,
+                opacity=opacity,
+                orientation=orientation,
+                pointpos=pointpos,
+                points=points,
+                quartilemethod=quartilemethod,
+                scalegroup=scalegroup,
+                scalemode=scalemode,
+                selected=selected,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                side=side,
+                span=span,
+                spanmode=spanmode,
+                stream=stream,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                unselected=unselected,
+                visible=visible,
+                width=width,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+    def add_volume(self,
+            autocolorscale=None,
+            caps=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            contour=None,
+            customdata=None,
+            customdatasrc=None,
+            flatshading=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            isomax=None,
+            isomin=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            opacityscale=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            slices=None,
+            spaceframe=None,
+            stream=None,
+            surface=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            value=None,
+            valuehoverformat=None,
+            valuesrc=None,
+            visible=None,
+            x=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zhoverformat=None,
+            zsrc=None,
+            row=None,
+            col=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Volume trace
 
@@ -20822,153 +20660,151 @@ def add_volume(
         FigureWidget
         """
         from plotly.graph_objs import Volume
-
         new_trace = Volume(
-            autocolorscale=autocolorscale,
-            caps=caps,
-            cauto=cauto,
-            cmax=cmax,
-            cmid=cmid,
-            cmin=cmin,
-            coloraxis=coloraxis,
-            colorbar=colorbar,
-            colorscale=colorscale,
-            contour=contour,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            flatshading=flatshading,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            isomax=isomax,
-            isomin=isomin,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            lighting=lighting,
-            lightposition=lightposition,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            opacity=opacity,
-            opacityscale=opacityscale,
-            reversescale=reversescale,
-            scene=scene,
-            showlegend=showlegend,
-            showscale=showscale,
-            slices=slices,
-            spaceframe=spaceframe,
-            stream=stream,
-            surface=surface,
-            text=text,
-            textsrc=textsrc,
-            uid=uid,
-            uirevision=uirevision,
-            value=value,
-            valuehoverformat=valuehoverformat,
-            valuesrc=valuesrc,
-            visible=visible,
-            x=x,
-            xhoverformat=xhoverformat,
-            xsrc=xsrc,
-            y=y,
-            yhoverformat=yhoverformat,
-            ysrc=ysrc,
-            z=z,
-            zhoverformat=zhoverformat,
-            zsrc=zsrc,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col)
-
-    def add_waterfall(
-        self,
-        alignmentgroup=None,
-        base=None,
-        cliponaxis=None,
-        connector=None,
-        constraintext=None,
-        customdata=None,
-        customdatasrc=None,
-        decreasing=None,
-        dx=None,
-        dy=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        increasing=None,
-        insidetextanchor=None,
-        insidetextfont=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        measure=None,
-        measuresrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        offset=None,
-        offsetgroup=None,
-        offsetsrc=None,
-        opacity=None,
-        orientation=None,
-        outsidetextfont=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textangle=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        totals=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        width=None,
-        widthsrc=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        zorder=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+        
+                autocolorscale=autocolorscale,
+                caps=caps,
+                cauto=cauto,
+                cmax=cmax,
+                cmid=cmid,
+                cmin=cmin,
+                coloraxis=coloraxis,
+                colorbar=colorbar,
+                colorscale=colorscale,
+                contour=contour,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                flatshading=flatshading,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                isomax=isomax,
+                isomin=isomin,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                lighting=lighting,
+                lightposition=lightposition,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                opacity=opacity,
+                opacityscale=opacityscale,
+                reversescale=reversescale,
+                scene=scene,
+                showlegend=showlegend,
+                showscale=showscale,
+                slices=slices,
+                spaceframe=spaceframe,
+                stream=stream,
+                surface=surface,
+                text=text,
+                textsrc=textsrc,
+                uid=uid,
+                uirevision=uirevision,
+                value=value,
+                valuehoverformat=valuehoverformat,
+                valuesrc=valuesrc,
+                visible=visible,
+                x=x,
+                xhoverformat=xhoverformat,
+                xsrc=xsrc,
+                y=y,
+                yhoverformat=yhoverformat,
+                ysrc=ysrc,
+                z=z,
+                zhoverformat=zhoverformat,
+                zsrc=zsrc,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col)
+    def add_waterfall(self,
+            alignmentgroup=None,
+            base=None,
+            cliponaxis=None,
+            connector=None,
+            constraintext=None,
+            customdata=None,
+            customdatasrc=None,
+            decreasing=None,
+            dx=None,
+            dy=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            increasing=None,
+            insidetextanchor=None,
+            insidetextfont=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            measure=None,
+            measuresrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            offset=None,
+            offsetgroup=None,
+            offsetsrc=None,
+            opacity=None,
+            orientation=None,
+            outsidetextfont=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textangle=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            totals=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            width=None,
+            widthsrc=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            zorder=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Add a new Waterfall trace
 
@@ -21380,86 +21216,87 @@ def add_waterfall(
         FigureWidget
         """
         from plotly.graph_objs import Waterfall
-
         new_trace = Waterfall(
-            alignmentgroup=alignmentgroup,
-            base=base,
-            cliponaxis=cliponaxis,
-            connector=connector,
-            constraintext=constraintext,
-            customdata=customdata,
-            customdatasrc=customdatasrc,
-            decreasing=decreasing,
-            dx=dx,
-            dy=dy,
-            hoverinfo=hoverinfo,
-            hoverinfosrc=hoverinfosrc,
-            hoverlabel=hoverlabel,
-            hovertemplate=hovertemplate,
-            hovertemplatesrc=hovertemplatesrc,
-            hovertext=hovertext,
-            hovertextsrc=hovertextsrc,
-            ids=ids,
-            idssrc=idssrc,
-            increasing=increasing,
-            insidetextanchor=insidetextanchor,
-            insidetextfont=insidetextfont,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            measure=measure,
-            measuresrc=measuresrc,
-            meta=meta,
-            metasrc=metasrc,
-            name=name,
-            offset=offset,
-            offsetgroup=offsetgroup,
-            offsetsrc=offsetsrc,
-            opacity=opacity,
-            orientation=orientation,
-            outsidetextfont=outsidetextfont,
-            selectedpoints=selectedpoints,
-            showlegend=showlegend,
-            stream=stream,
-            text=text,
-            textangle=textangle,
-            textfont=textfont,
-            textinfo=textinfo,
-            textposition=textposition,
-            textpositionsrc=textpositionsrc,
-            textsrc=textsrc,
-            texttemplate=texttemplate,
-            texttemplatesrc=texttemplatesrc,
-            totals=totals,
-            uid=uid,
-            uirevision=uirevision,
-            visible=visible,
-            width=width,
-            widthsrc=widthsrc,
-            x=x,
-            x0=x0,
-            xaxis=xaxis,
-            xhoverformat=xhoverformat,
-            xperiod=xperiod,
-            xperiod0=xperiod0,
-            xperiodalignment=xperiodalignment,
-            xsrc=xsrc,
-            y=y,
-            y0=y0,
-            yaxis=yaxis,
-            yhoverformat=yhoverformat,
-            yperiod=yperiod,
-            yperiod0=yperiod0,
-            yperiodalignment=yperiodalignment,
-            ysrc=ysrc,
-            zorder=zorder,
-            **kwargs,
-        )
-        return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y)
-
-    def select_coloraxes(self, selector=None, row=None, col=None):
+        
+                alignmentgroup=alignmentgroup,
+                base=base,
+                cliponaxis=cliponaxis,
+                connector=connector,
+                constraintext=constraintext,
+                customdata=customdata,
+                customdatasrc=customdatasrc,
+                decreasing=decreasing,
+                dx=dx,
+                dy=dy,
+                hoverinfo=hoverinfo,
+                hoverinfosrc=hoverinfosrc,
+                hoverlabel=hoverlabel,
+                hovertemplate=hovertemplate,
+                hovertemplatesrc=hovertemplatesrc,
+                hovertext=hovertext,
+                hovertextsrc=hovertextsrc,
+                ids=ids,
+                idssrc=idssrc,
+                increasing=increasing,
+                insidetextanchor=insidetextanchor,
+                insidetextfont=insidetextfont,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                measure=measure,
+                measuresrc=measuresrc,
+                meta=meta,
+                metasrc=metasrc,
+                name=name,
+                offset=offset,
+                offsetgroup=offsetgroup,
+                offsetsrc=offsetsrc,
+                opacity=opacity,
+                orientation=orientation,
+                outsidetextfont=outsidetextfont,
+                selectedpoints=selectedpoints,
+                showlegend=showlegend,
+                stream=stream,
+                text=text,
+                textangle=textangle,
+                textfont=textfont,
+                textinfo=textinfo,
+                textposition=textposition,
+                textpositionsrc=textpositionsrc,
+                textsrc=textsrc,
+                texttemplate=texttemplate,
+                texttemplatesrc=texttemplatesrc,
+                totals=totals,
+                uid=uid,
+                uirevision=uirevision,
+                visible=visible,
+                width=width,
+                widthsrc=widthsrc,
+                x=x,
+                x0=x0,
+                xaxis=xaxis,
+                xhoverformat=xhoverformat,
+                xperiod=xperiod,
+                xperiod0=xperiod0,
+                xperiodalignment=xperiodalignment,
+                xsrc=xsrc,
+                y=y,
+                y0=y0,
+                yaxis=yaxis,
+                yhoverformat=yhoverformat,
+                yperiod=yperiod,
+                yperiod0=yperiod0,
+                yperiodalignment=yperiodalignment,
+                ysrc=ysrc,
+                zorder=zorder,
+            **kwargs)
+        return self.add_trace(
+            new_trace, row=row, col=col, secondary_y=secondary_y)
+
+    def select_coloraxes(
+            self, selector=None, row=None, col=None):
         """
         Select coloraxis subplot objects from a particular subplot cell
         and/or coloraxis subplot objects that satisfy custom selection
@@ -21489,11 +21326,11 @@ def select_coloraxes(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("coloraxis", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'coloraxis', selector, row, col)
 
     def for_each_coloraxis(
-        self, fn, selector=None, row=None, col=None
-    ) -> "FigureWidget":
+            self, fn, selector=None, row=None, col=None) -> 'FigureWidget':
         """
         Apply a function to all coloraxis objects that satisfy the
         specified selection criteria
@@ -21522,14 +21359,19 @@ def for_each_coloraxis(
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_coloraxes(selector=selector, row=row, col=col):
+        for obj in self.select_coloraxes(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_coloraxes(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "FigureWidget":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'FigureWidget':
         """
         Perform a property update operation on all coloraxis objects
         that satisfy the specified selection criteria
@@ -21568,12 +21410,14 @@ def update_coloraxes(
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_coloraxes(selector=selector, row=row, col=col):
+        for obj in self.select_coloraxes(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_geos(self, selector=None, row=None, col=None):
+    def select_geos(
+            self, selector=None, row=None, col=None):
         """
         Select geo subplot objects from a particular subplot cell
         and/or geo subplot objects that satisfy custom selection
@@ -21603,9 +21447,11 @@ def select_geos(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("geo", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'geo', selector, row, col)
 
-    def for_each_geo(self, fn, selector=None, row=None, col=None) -> "FigureWidget":
+    def for_each_geo(
+            self, fn, selector=None, row=None, col=None) -> 'FigureWidget':
         """
         Apply a function to all geo objects that satisfy the
         specified selection criteria
@@ -21634,14 +21480,19 @@ def for_each_geo(self, fn, selector=None, row=None, col=None) -> "FigureWidget":
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_geos(selector=selector, row=row, col=col):
+        for obj in self.select_geos(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_geos(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "FigureWidget":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'FigureWidget':
         """
         Perform a property update operation on all geo objects
         that satisfy the specified selection criteria
@@ -21680,12 +21531,14 @@ def update_geos(
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_geos(selector=selector, row=row, col=col):
+        for obj in self.select_geos(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_legends(self, selector=None, row=None, col=None):
+    def select_legends(
+            self, selector=None, row=None, col=None):
         """
         Select legend subplot objects from a particular subplot cell
         and/or legend subplot objects that satisfy custom selection
@@ -21715,9 +21568,11 @@ def select_legends(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("legend", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'legend', selector, row, col)
 
-    def for_each_legend(self, fn, selector=None, row=None, col=None) -> "FigureWidget":
+    def for_each_legend(
+            self, fn, selector=None, row=None, col=None) -> 'FigureWidget':
         """
         Apply a function to all legend objects that satisfy the
         specified selection criteria
@@ -21746,14 +21601,19 @@ def for_each_legend(self, fn, selector=None, row=None, col=None) -> "FigureWidge
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_legends(selector=selector, row=row, col=col):
+        for obj in self.select_legends(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_legends(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "FigureWidget":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'FigureWidget':
         """
         Perform a property update operation on all legend objects
         that satisfy the specified selection criteria
@@ -21792,12 +21652,14 @@ def update_legends(
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_legends(selector=selector, row=row, col=col):
+        for obj in self.select_legends(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_maps(self, selector=None, row=None, col=None):
+    def select_maps(
+            self, selector=None, row=None, col=None):
         """
         Select map subplot objects from a particular subplot cell
         and/or map subplot objects that satisfy custom selection
@@ -21827,9 +21689,11 @@ def select_maps(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("map", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'map', selector, row, col)
 
-    def for_each_map(self, fn, selector=None, row=None, col=None) -> "FigureWidget":
+    def for_each_map(
+            self, fn, selector=None, row=None, col=None) -> 'FigureWidget':
         """
         Apply a function to all map objects that satisfy the
         specified selection criteria
@@ -21858,14 +21722,19 @@ def for_each_map(self, fn, selector=None, row=None, col=None) -> "FigureWidget":
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_maps(selector=selector, row=row, col=col):
+        for obj in self.select_maps(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_maps(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "FigureWidget":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'FigureWidget':
         """
         Perform a property update operation on all map objects
         that satisfy the specified selection criteria
@@ -21904,12 +21773,14 @@ def update_maps(
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_maps(selector=selector, row=row, col=col):
+        for obj in self.select_maps(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_mapboxes(self, selector=None, row=None, col=None):
+    def select_mapboxes(
+            self, selector=None, row=None, col=None):
         """
         Select mapbox subplot objects from a particular subplot cell
         and/or mapbox subplot objects that satisfy custom selection
@@ -21939,9 +21810,11 @@ def select_mapboxes(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("mapbox", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'mapbox', selector, row, col)
 
-    def for_each_mapbox(self, fn, selector=None, row=None, col=None) -> "FigureWidget":
+    def for_each_mapbox(
+            self, fn, selector=None, row=None, col=None) -> 'FigureWidget':
         """
         Apply a function to all mapbox objects that satisfy the
         specified selection criteria
@@ -21970,14 +21843,19 @@ def for_each_mapbox(self, fn, selector=None, row=None, col=None) -> "FigureWidge
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_mapboxes(selector=selector, row=row, col=col):
+        for obj in self.select_mapboxes(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_mapboxes(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "FigureWidget":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'FigureWidget':
         """
         Perform a property update operation on all mapbox objects
         that satisfy the specified selection criteria
@@ -22016,12 +21894,14 @@ def update_mapboxes(
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_mapboxes(selector=selector, row=row, col=col):
+        for obj in self.select_mapboxes(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_polars(self, selector=None, row=None, col=None):
+    def select_polars(
+            self, selector=None, row=None, col=None):
         """
         Select polar subplot objects from a particular subplot cell
         and/or polar subplot objects that satisfy custom selection
@@ -22051,9 +21931,11 @@ def select_polars(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("polar", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'polar', selector, row, col)
 
-    def for_each_polar(self, fn, selector=None, row=None, col=None) -> "FigureWidget":
+    def for_each_polar(
+            self, fn, selector=None, row=None, col=None) -> 'FigureWidget':
         """
         Apply a function to all polar objects that satisfy the
         specified selection criteria
@@ -22082,14 +21964,19 @@ def for_each_polar(self, fn, selector=None, row=None, col=None) -> "FigureWidget
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_polars(selector=selector, row=row, col=col):
+        for obj in self.select_polars(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_polars(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "FigureWidget":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'FigureWidget':
         """
         Perform a property update operation on all polar objects
         that satisfy the specified selection criteria
@@ -22128,12 +22015,14 @@ def update_polars(
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_polars(selector=selector, row=row, col=col):
+        for obj in self.select_polars(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_scenes(self, selector=None, row=None, col=None):
+    def select_scenes(
+            self, selector=None, row=None, col=None):
         """
         Select scene subplot objects from a particular subplot cell
         and/or scene subplot objects that satisfy custom selection
@@ -22163,9 +22052,11 @@ def select_scenes(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("scene", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'scene', selector, row, col)
 
-    def for_each_scene(self, fn, selector=None, row=None, col=None) -> "FigureWidget":
+    def for_each_scene(
+            self, fn, selector=None, row=None, col=None) -> 'FigureWidget':
         """
         Apply a function to all scene objects that satisfy the
         specified selection criteria
@@ -22194,14 +22085,19 @@ def for_each_scene(self, fn, selector=None, row=None, col=None) -> "FigureWidget
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_scenes(selector=selector, row=row, col=col):
+        for obj in self.select_scenes(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_scenes(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "FigureWidget":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'FigureWidget':
         """
         Perform a property update operation on all scene objects
         that satisfy the specified selection criteria
@@ -22240,12 +22136,14 @@ def update_scenes(
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_scenes(selector=selector, row=row, col=col):
+        for obj in self.select_scenes(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_smiths(self, selector=None, row=None, col=None):
+    def select_smiths(
+            self, selector=None, row=None, col=None):
         """
         Select smith subplot objects from a particular subplot cell
         and/or smith subplot objects that satisfy custom selection
@@ -22275,9 +22173,11 @@ def select_smiths(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("smith", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'smith', selector, row, col)
 
-    def for_each_smith(self, fn, selector=None, row=None, col=None) -> "FigureWidget":
+    def for_each_smith(
+            self, fn, selector=None, row=None, col=None) -> 'FigureWidget':
         """
         Apply a function to all smith objects that satisfy the
         specified selection criteria
@@ -22306,14 +22206,19 @@ def for_each_smith(self, fn, selector=None, row=None, col=None) -> "FigureWidget
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_smiths(selector=selector, row=row, col=col):
+        for obj in self.select_smiths(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_smiths(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "FigureWidget":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'FigureWidget':
         """
         Perform a property update operation on all smith objects
         that satisfy the specified selection criteria
@@ -22352,12 +22257,14 @@ def update_smiths(
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_smiths(selector=selector, row=row, col=col):
+        for obj in self.select_smiths(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_ternaries(self, selector=None, row=None, col=None):
+    def select_ternaries(
+            self, selector=None, row=None, col=None):
         """
         Select ternary subplot objects from a particular subplot cell
         and/or ternary subplot objects that satisfy custom selection
@@ -22387,9 +22294,11 @@ def select_ternaries(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("ternary", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'ternary', selector, row, col)
 
-    def for_each_ternary(self, fn, selector=None, row=None, col=None) -> "FigureWidget":
+    def for_each_ternary(
+            self, fn, selector=None, row=None, col=None) -> 'FigureWidget':
         """
         Apply a function to all ternary objects that satisfy the
         specified selection criteria
@@ -22418,14 +22327,19 @@ def for_each_ternary(self, fn, selector=None, row=None, col=None) -> "FigureWidg
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_ternaries(selector=selector, row=row, col=col):
+        for obj in self.select_ternaries(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_ternaries(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "FigureWidget":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'FigureWidget':
         """
         Perform a property update operation on all ternary objects
         that satisfy the specified selection criteria
@@ -22464,12 +22378,14 @@ def update_ternaries(
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_ternaries(selector=selector, row=row, col=col):
+        for obj in self.select_ternaries(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_xaxes(self, selector=None, row=None, col=None):
+    def select_xaxes(
+            self, selector=None, row=None, col=None):
         """
         Select xaxis subplot objects from a particular subplot cell
         and/or xaxis subplot objects that satisfy custom selection
@@ -22499,9 +22415,11 @@ def select_xaxes(self, selector=None, row=None, col=None):
             objects that satisfy all of the specified selection criteria
         """
 
-        return self._select_layout_subplots_by_prefix("xaxis", selector, row, col)
+        return self._select_layout_subplots_by_prefix(
+            'xaxis', selector, row, col)
 
-    def for_each_xaxis(self, fn, selector=None, row=None, col=None) -> "FigureWidget":
+    def for_each_xaxis(
+            self, fn, selector=None, row=None, col=None) -> 'FigureWidget':
         """
         Apply a function to all xaxis objects that satisfy the
         specified selection criteria
@@ -22530,14 +22448,19 @@ def for_each_xaxis(self, fn, selector=None, row=None, col=None) -> "FigureWidget
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_xaxes(selector=selector, row=row, col=col):
+        for obj in self.select_xaxes(
+                selector=selector, row=row, col=col):
             fn(obj)
 
         return self
 
     def update_xaxes(
-        self, patch=None, selector=None, overwrite=False, row=None, col=None, **kwargs
-    ) -> "FigureWidget":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None,
+            **kwargs) -> 'FigureWidget':
         """
         Perform a property update operation on all xaxis objects
         that satisfy the specified selection criteria
@@ -22576,12 +22499,14 @@ def update_xaxes(
         self
             Returns the FigureWidget object that the method was called on
         """
-        for obj in self.select_xaxes(selector=selector, row=row, col=col):
+        for obj in self.select_xaxes(
+                selector=selector, row=row, col=col):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
 
-    def select_yaxes(self, selector=None, row=None, col=None, secondary_y=None):
+    def select_yaxes(
+            self, selector=None, row=None, col=None, secondary_y=None):
         """
         Select yaxis subplot objects from a particular subplot cell
         and/or yaxis subplot objects that satisfy custom selection
@@ -22624,12 +22549,10 @@ def select_yaxes(self, selector=None, row=None, col=None, secondary_y=None):
         """
 
         return self._select_layout_subplots_by_prefix(
-            "yaxis", selector, row, col, secondary_y=secondary_y
-        )
+            'yaxis', selector, row, col, secondary_y=secondary_y)
 
     def for_each_yaxis(
-        self, fn, selector=None, row=None, col=None, secondary_y=None
-    ) -> "FigureWidget":
+            self, fn, selector=None, row=None, col=None, secondary_y=None) -> 'FigureWidget':
         """
         Apply a function to all yaxis objects that satisfy the
         specified selection criteria
@@ -22671,22 +22594,18 @@ def for_each_yaxis(
             Returns the FigureWidget object that the method was called on
         """
         for obj in self.select_yaxes(
-            selector=selector, row=row, col=col, secondary_y=secondary_y
-        ):
+                selector=selector, row=row, col=col, secondary_y=secondary_y):
             fn(obj)
 
         return self
 
     def update_yaxes(
-        self,
-        patch=None,
-        selector=None,
-        overwrite=False,
-        row=None,
-        col=None,
-        secondary_y=None,
-        **kwargs,
-    ) -> "FigureWidget":
+            self,
+            patch=None,
+            selector=None,
+            overwrite=False,
+            row=None, col=None, secondary_y=None,
+            **kwargs) -> 'FigureWidget':
         """
         Perform a property update operation on all yaxis objects
         that satisfy the specified selection criteria
@@ -22738,13 +22657,13 @@ def update_yaxes(
             Returns the FigureWidget object that the method was called on
         """
         for obj in self.select_yaxes(
-            selector=selector, row=row, col=col, secondary_y=secondary_y
-        ):
+                selector=selector, row=row, col=col, secondary_y=secondary_y):
             obj.update(patch, overwrite=overwrite, **kwargs)
 
         return self
-
-    def select_annotations(self, selector=None, row=None, col=None, secondary_y=None):
+    def select_annotations(
+        self, selector=None, row=None, col=None, secondary_y=None
+    ):
         """
         Select annotations from a particular subplot cell and/or annotations
         that satisfy custom selection criteria.
@@ -22836,7 +22755,7 @@ def for_each_annotation(
             Returns the FigureWidget object that the method was called on
         """
         for obj in self._select_annotations_like(
-            prop="annotations",
+            prop='annotations',
             selector=selector,
             row=row,
             col=col,
@@ -22847,8 +22766,14 @@ def for_each_annotation(
         return self
 
     def update_annotations(
-        self, patch=None, selector=None, row=None, col=None, secondary_y=None, **kwargs
-    ) -> "FigureWidget":
+        self,
+        patch=None,
+        selector=None,
+        row=None,
+        col=None,
+        secondary_y=None,
+        **kwargs
+    ) -> 'FigureWidget':
         """
         Perform a property update operation on all annotations that satisfy the
         specified selection criteria
@@ -22898,7 +22823,7 @@ def update_annotations(
             Returns the FigureWidget object that the method was called on
         """
         for obj in self._select_annotations_like(
-            prop="annotations",
+            prop='annotations',
             selector=selector,
             row=row,
             col=col,
@@ -22908,58 +22833,57 @@ def update_annotations(
 
         return self
 
-    def add_annotation(
-        self,
-        arg=None,
-        align=None,
-        arrowcolor=None,
-        arrowhead=None,
-        arrowside=None,
-        arrowsize=None,
-        arrowwidth=None,
-        ax=None,
-        axref=None,
-        ay=None,
-        ayref=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderpad=None,
-        borderwidth=None,
-        captureevents=None,
-        clicktoshow=None,
-        font=None,
-        height=None,
-        hoverlabel=None,
-        hovertext=None,
-        name=None,
-        opacity=None,
-        showarrow=None,
-        standoff=None,
-        startarrowhead=None,
-        startarrowsize=None,
-        startstandoff=None,
-        templateitemname=None,
-        text=None,
-        textangle=None,
-        valign=None,
-        visible=None,
-        width=None,
-        x=None,
-        xanchor=None,
-        xclick=None,
-        xref=None,
-        xshift=None,
-        y=None,
-        yanchor=None,
-        yclick=None,
-        yref=None,
-        yshift=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        exclude_empty_subplots=None,
-        **kwargs,
-    ) -> "FigureWidget":
+    def add_annotation(self,
+            arg=None,
+            align=None,
+            arrowcolor=None,
+            arrowhead=None,
+            arrowside=None,
+            arrowsize=None,
+            arrowwidth=None,
+            ax=None,
+            axref=None,
+            ay=None,
+            ayref=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderpad=None,
+            borderwidth=None,
+            captureevents=None,
+            clicktoshow=None,
+            font=None,
+            height=None,
+            hoverlabel=None,
+            hovertext=None,
+            name=None,
+            opacity=None,
+            showarrow=None,
+            standoff=None,
+            startarrowhead=None,
+            startarrowsize=None,
+            startstandoff=None,
+            templateitemname=None,
+            text=None,
+            textangle=None,
+            valign=None,
+            visible=None,
+            width=None,
+            x=None,
+            xanchor=None,
+            xclick=None,
+            xref=None,
+            xshift=None,
+            y=None,
+            yanchor=None,
+            yclick=None,
+            yref=None,
+            yshift=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            exclude_empty_subplots=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Create and add a new annotation to the figure's layout
 
@@ -23263,65 +23187,63 @@ def add_annotation(
         FigureWidget
         """
         from plotly.graph_objs import layout as _layout
-
-        new_obj = _layout.Annotation(
-            arg,
-            align=align,
-            arrowcolor=arrowcolor,
-            arrowhead=arrowhead,
-            arrowside=arrowside,
-            arrowsize=arrowsize,
-            arrowwidth=arrowwidth,
-            ax=ax,
-            axref=axref,
-            ay=ay,
-            ayref=ayref,
-            bgcolor=bgcolor,
-            bordercolor=bordercolor,
-            borderpad=borderpad,
-            borderwidth=borderwidth,
-            captureevents=captureevents,
-            clicktoshow=clicktoshow,
-            font=font,
-            height=height,
-            hoverlabel=hoverlabel,
-            hovertext=hovertext,
-            name=name,
-            opacity=opacity,
-            showarrow=showarrow,
-            standoff=standoff,
-            startarrowhead=startarrowhead,
-            startarrowsize=startarrowsize,
-            startstandoff=startstandoff,
-            templateitemname=templateitemname,
-            text=text,
-            textangle=textangle,
-            valign=valign,
-            visible=visible,
-            width=width,
-            x=x,
-            xanchor=xanchor,
-            xclick=xclick,
-            xref=xref,
-            xshift=xshift,
-            y=y,
-            yanchor=yanchor,
-            yclick=yclick,
-            yref=yref,
-            yshift=yshift,
-            **kwargs,
-        )
+        new_obj = _layout.Annotation(arg,
+            
+                align=align,
+                arrowcolor=arrowcolor,
+                arrowhead=arrowhead,
+                arrowside=arrowside,
+                arrowsize=arrowsize,
+                arrowwidth=arrowwidth,
+                ax=ax,
+                axref=axref,
+                ay=ay,
+                ayref=ayref,
+                bgcolor=bgcolor,
+                bordercolor=bordercolor,
+                borderpad=borderpad,
+                borderwidth=borderwidth,
+                captureevents=captureevents,
+                clicktoshow=clicktoshow,
+                font=font,
+                height=height,
+                hoverlabel=hoverlabel,
+                hovertext=hovertext,
+                name=name,
+                opacity=opacity,
+                showarrow=showarrow,
+                standoff=standoff,
+                startarrowhead=startarrowhead,
+                startarrowsize=startarrowsize,
+                startstandoff=startstandoff,
+                templateitemname=templateitemname,
+                text=text,
+                textangle=textangle,
+                valign=valign,
+                visible=visible,
+                width=width,
+                x=x,
+                xanchor=xanchor,
+                xclick=xclick,
+                xref=xref,
+                xshift=xshift,
+                y=y,
+                yanchor=yanchor,
+                yclick=yclick,
+                yref=yref,
+                yshift=yshift,**kwargs)
         return self._add_annotation_like(
-            "annotation",
-            "annotations",
+            'annotation',
+            'annotations',
             new_obj,
             row=row,
             col=col,
             secondary_y=secondary_y,
             exclude_empty_subplots=exclude_empty_subplots,
         )
-
-    def select_layout_images(self, selector=None, row=None, col=None, secondary_y=None):
+    def select_layout_images(
+        self, selector=None, row=None, col=None, secondary_y=None
+    ):
         """
         Select images from a particular subplot cell and/or images
         that satisfy custom selection criteria.
@@ -23413,7 +23335,7 @@ def for_each_layout_image(
             Returns the FigureWidget object that the method was called on
         """
         for obj in self._select_annotations_like(
-            prop="images",
+            prop='images',
             selector=selector,
             row=row,
             col=col,
@@ -23424,8 +23346,14 @@ def for_each_layout_image(
         return self
 
     def update_layout_images(
-        self, patch=None, selector=None, row=None, col=None, secondary_y=None, **kwargs
-    ) -> "FigureWidget":
+        self,
+        patch=None,
+        selector=None,
+        row=None,
+        col=None,
+        secondary_y=None,
+        **kwargs
+    ) -> 'FigureWidget':
         """
         Perform a property update operation on all images that satisfy the
         specified selection criteria
@@ -23475,7 +23403,7 @@ def update_layout_images(
             Returns the FigureWidget object that the method was called on
         """
         for obj in self._select_annotations_like(
-            prop="images",
+            prop='images',
             selector=selector,
             row=row,
             col=col,
@@ -23485,30 +23413,29 @@ def update_layout_images(
 
         return self
 
-    def add_layout_image(
-        self,
-        arg=None,
-        layer=None,
-        name=None,
-        opacity=None,
-        sizex=None,
-        sizey=None,
-        sizing=None,
-        source=None,
-        templateitemname=None,
-        visible=None,
-        x=None,
-        xanchor=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        yref=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        exclude_empty_subplots=None,
-        **kwargs,
-    ) -> "FigureWidget":
+    def add_layout_image(self,
+            arg=None,
+            layer=None,
+            name=None,
+            opacity=None,
+            sizex=None,
+            sizey=None,
+            sizing=None,
+            source=None,
+            templateitemname=None,
+            visible=None,
+            x=None,
+            xanchor=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            yref=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            exclude_empty_subplots=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Create and add a new image to the figure's layout
 
@@ -23618,37 +23545,35 @@ def add_layout_image(
         FigureWidget
         """
         from plotly.graph_objs import layout as _layout
-
-        new_obj = _layout.Image(
-            arg,
-            layer=layer,
-            name=name,
-            opacity=opacity,
-            sizex=sizex,
-            sizey=sizey,
-            sizing=sizing,
-            source=source,
-            templateitemname=templateitemname,
-            visible=visible,
-            x=x,
-            xanchor=xanchor,
-            xref=xref,
-            y=y,
-            yanchor=yanchor,
-            yref=yref,
-            **kwargs,
-        )
+        new_obj = _layout.Image(arg,
+            
+                layer=layer,
+                name=name,
+                opacity=opacity,
+                sizex=sizex,
+                sizey=sizey,
+                sizing=sizing,
+                source=source,
+                templateitemname=templateitemname,
+                visible=visible,
+                x=x,
+                xanchor=xanchor,
+                xref=xref,
+                y=y,
+                yanchor=yanchor,
+                yref=yref,**kwargs)
         return self._add_annotation_like(
-            "image",
-            "images",
+            'image',
+            'images',
             new_obj,
             row=row,
             col=col,
             secondary_y=secondary_y,
             exclude_empty_subplots=exclude_empty_subplots,
         )
-
-    def select_selections(self, selector=None, row=None, col=None, secondary_y=None):
+    def select_selections(
+        self, selector=None, row=None, col=None, secondary_y=None
+    ):
         """
         Select selections from a particular subplot cell and/or selections
         that satisfy custom selection criteria.
@@ -23740,7 +23665,7 @@ def for_each_selection(
             Returns the FigureWidget object that the method was called on
         """
         for obj in self._select_annotations_like(
-            prop="selections",
+            prop='selections',
             selector=selector,
             row=row,
             col=col,
@@ -23751,8 +23676,14 @@ def for_each_selection(
         return self
 
     def update_selections(
-        self, patch=None, selector=None, row=None, col=None, secondary_y=None, **kwargs
-    ) -> "FigureWidget":
+        self,
+        patch=None,
+        selector=None,
+        row=None,
+        col=None,
+        secondary_y=None,
+        **kwargs
+    ) -> 'FigureWidget':
         """
         Perform a property update operation on all selections that satisfy the
         specified selection criteria
@@ -23802,7 +23733,7 @@ def update_selections(
             Returns the FigureWidget object that the method was called on
         """
         for obj in self._select_annotations_like(
-            prop="selections",
+            prop='selections',
             selector=selector,
             row=row,
             col=col,
@@ -23812,27 +23743,26 @@ def update_selections(
 
         return self
 
-    def add_selection(
-        self,
-        arg=None,
-        line=None,
-        name=None,
-        opacity=None,
-        path=None,
-        templateitemname=None,
-        type=None,
-        x0=None,
-        x1=None,
-        xref=None,
-        y0=None,
-        y1=None,
-        yref=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        exclude_empty_subplots=None,
-        **kwargs,
-    ) -> "FigureWidget":
+    def add_selection(self,
+            arg=None,
+            line=None,
+            name=None,
+            opacity=None,
+            path=None,
+            templateitemname=None,
+            type=None,
+            x0=None,
+            x1=None,
+            xref=None,
+            y0=None,
+            y1=None,
+            yref=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            exclude_empty_subplots=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Create and add a new selection to the figure's layout
 
@@ -23927,34 +23857,32 @@ def add_selection(
         FigureWidget
         """
         from plotly.graph_objs import layout as _layout
-
-        new_obj = _layout.Selection(
-            arg,
-            line=line,
-            name=name,
-            opacity=opacity,
-            path=path,
-            templateitemname=templateitemname,
-            type=type,
-            x0=x0,
-            x1=x1,
-            xref=xref,
-            y0=y0,
-            y1=y1,
-            yref=yref,
-            **kwargs,
-        )
+        new_obj = _layout.Selection(arg,
+            
+                line=line,
+                name=name,
+                opacity=opacity,
+                path=path,
+                templateitemname=templateitemname,
+                type=type,
+                x0=x0,
+                x1=x1,
+                xref=xref,
+                y0=y0,
+                y1=y1,
+                yref=yref,**kwargs)
         return self._add_annotation_like(
-            "selection",
-            "selections",
+            'selection',
+            'selections',
             new_obj,
             row=row,
             col=col,
             secondary_y=secondary_y,
             exclude_empty_subplots=exclude_empty_subplots,
         )
-
-    def select_shapes(self, selector=None, row=None, col=None, secondary_y=None):
+    def select_shapes(
+        self, selector=None, row=None, col=None, secondary_y=None
+    ):
         """
         Select shapes from a particular subplot cell and/or shapes
         that satisfy custom selection criteria.
@@ -24000,7 +23928,9 @@ def select_shapes(self, selector=None, row=None, col=None, secondary_y=None):
             "shapes", selector=selector, row=row, col=col, secondary_y=secondary_y
         )
 
-    def for_each_shape(self, fn, selector=None, row=None, col=None, secondary_y=None):
+    def for_each_shape(
+        self, fn, selector=None, row=None, col=None, secondary_y=None
+    ):
         """
         Apply a function to all shapes that satisfy the specified selection
         criteria
@@ -24044,7 +23974,7 @@ def for_each_shape(self, fn, selector=None, row=None, col=None, secondary_y=None
             Returns the FigureWidget object that the method was called on
         """
         for obj in self._select_annotations_like(
-            prop="shapes",
+            prop='shapes',
             selector=selector,
             row=row,
             col=col,
@@ -24055,8 +23985,14 @@ def for_each_shape(self, fn, selector=None, row=None, col=None, secondary_y=None
         return self
 
     def update_shapes(
-        self, patch=None, selector=None, row=None, col=None, secondary_y=None, **kwargs
-    ) -> "FigureWidget":
+        self,
+        patch=None,
+        selector=None,
+        row=None,
+        col=None,
+        secondary_y=None,
+        **kwargs
+    ) -> 'FigureWidget':
         """
         Perform a property update operation on all shapes that satisfy the
         specified selection criteria
@@ -24106,7 +24042,7 @@ def update_shapes(
             Returns the FigureWidget object that the method was called on
         """
         for obj in self._select_annotations_like(
-            prop="shapes",
+            prop='shapes',
             selector=selector,
             row=row,
             col=col,
@@ -24116,47 +24052,46 @@ def update_shapes(
 
         return self
 
-    def add_shape(
-        self,
-        arg=None,
-        editable=None,
-        fillcolor=None,
-        fillrule=None,
-        label=None,
-        layer=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        name=None,
-        opacity=None,
-        path=None,
-        showlegend=None,
-        templateitemname=None,
-        type=None,
-        visible=None,
-        x0=None,
-        x0shift=None,
-        x1=None,
-        x1shift=None,
-        xanchor=None,
-        xref=None,
-        xsizemode=None,
-        y0=None,
-        y0shift=None,
-        y1=None,
-        y1shift=None,
-        yanchor=None,
-        yref=None,
-        ysizemode=None,
-        row=None,
-        col=None,
-        secondary_y=None,
-        exclude_empty_subplots=None,
-        **kwargs,
-    ) -> "FigureWidget":
+    def add_shape(self,
+            arg=None,
+            editable=None,
+            fillcolor=None,
+            fillrule=None,
+            label=None,
+            layer=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            name=None,
+            opacity=None,
+            path=None,
+            showlegend=None,
+            templateitemname=None,
+            type=None,
+            visible=None,
+            x0=None,
+            x0shift=None,
+            x1=None,
+            x1shift=None,
+            xanchor=None,
+            xref=None,
+            xsizemode=None,
+            y0=None,
+            y0shift=None,
+            y1=None,
+            y1shift=None,
+            yanchor=None,
+            yref=None,
+            ysizemode=None,
+            row=None,
+            col=None,
+            secondary_y=None,
+            exclude_empty_subplots=None,
+            **kwargs
+        )-> 'FigureWidget':
         """
         Create and add a new shape to the figure's layout
 
@@ -24390,46 +24325,43 @@ def add_shape(
         FigureWidget
         """
         from plotly.graph_objs import layout as _layout
-
-        new_obj = _layout.Shape(
-            arg,
-            editable=editable,
-            fillcolor=fillcolor,
-            fillrule=fillrule,
-            label=label,
-            layer=layer,
-            legend=legend,
-            legendgroup=legendgroup,
-            legendgrouptitle=legendgrouptitle,
-            legendrank=legendrank,
-            legendwidth=legendwidth,
-            line=line,
-            name=name,
-            opacity=opacity,
-            path=path,
-            showlegend=showlegend,
-            templateitemname=templateitemname,
-            type=type,
-            visible=visible,
-            x0=x0,
-            x0shift=x0shift,
-            x1=x1,
-            x1shift=x1shift,
-            xanchor=xanchor,
-            xref=xref,
-            xsizemode=xsizemode,
-            y0=y0,
-            y0shift=y0shift,
-            y1=y1,
-            y1shift=y1shift,
-            yanchor=yanchor,
-            yref=yref,
-            ysizemode=ysizemode,
-            **kwargs,
-        )
+        new_obj = _layout.Shape(arg,
+            
+                editable=editable,
+                fillcolor=fillcolor,
+                fillrule=fillrule,
+                label=label,
+                layer=layer,
+                legend=legend,
+                legendgroup=legendgroup,
+                legendgrouptitle=legendgrouptitle,
+                legendrank=legendrank,
+                legendwidth=legendwidth,
+                line=line,
+                name=name,
+                opacity=opacity,
+                path=path,
+                showlegend=showlegend,
+                templateitemname=templateitemname,
+                type=type,
+                visible=visible,
+                x0=x0,
+                x0shift=x0shift,
+                x1=x1,
+                x1shift=x1shift,
+                xanchor=xanchor,
+                xref=xref,
+                xsizemode=xsizemode,
+                y0=y0,
+                y0shift=y0shift,
+                y1=y1,
+                y1shift=y1shift,
+                yanchor=yanchor,
+                yref=yref,
+                ysizemode=ysizemode,**kwargs)
         return self._add_annotation_like(
-            "shape",
-            "shapes",
+            'shape',
+            'shapes',
             new_obj,
             row=row,
             col=col,
diff --git a/plotly/graph_objs/_frame.py b/plotly/graph_objs/_frame.py
index 1841465fe00..56659b0c10e 100644
--- a/plotly/graph_objs/_frame.py
+++ b/plotly/graph_objs/_frame.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Frame(_BaseFrameHierarchyType):
 
-    _parent_path_str = ""
-    _path_str = "frame"
+    _parent_path_str = ''
+    _path_str = 'frame'
     _valid_props = {"baseframe", "data", "group", "layout", "name", "traces"}
 
     @property
@@ -27,11 +31,11 @@ def baseframe(self):
         -------
         str
         """
-        return self["baseframe"]
+        return self['baseframe']
 
     @baseframe.setter
     def baseframe(self, val):
-        self["baseframe"] = val
+        self['baseframe'] = val
 
     @property
     def data(self):
@@ -43,11 +47,11 @@ def data(self):
         -------
         Any
         """
-        return self["data"]
+        return self['data']
 
     @data.setter
     def data(self, val):
-        self["data"] = val
+        self['data'] = val
 
     @property
     def group(self):
@@ -63,11 +67,11 @@ def group(self):
         -------
         str
         """
-        return self["group"]
+        return self['group']
 
     @group.setter
     def group(self, val):
-        self["group"] = val
+        self['group'] = val
 
     @property
     def layout(self):
@@ -79,11 +83,11 @@ def layout(self):
         -------
         Any
         """
-        return self["layout"]
+        return self['layout']
 
     @layout.setter
     def layout(self, val):
-        self["layout"] = val
+        self['layout'] = val
 
     @property
     def name(self):
@@ -98,11 +102,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def traces(self):
@@ -116,11 +120,11 @@ def traces(self):
         -------
         Any
         """
-        return self["traces"]
+        return self['traces']
 
     @traces.setter
     def traces(self, val):
-        self["traces"] = val
+        self['traces'] = val
 
     @property
     def _prop_descriptions(self):
@@ -146,18 +150,16 @@ def _prop_descriptions(self):
             A list of trace indices that identify the respective
             traces in the data attribute
         """
-
-    def __init__(
-        self,
-        arg=None,
-        baseframe=None,
-        data=None,
-        group=None,
-        layout=None,
-        name=None,
-        traces=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            baseframe=None,
+            data=None,
+            group=None,
+            layout=None,
+            name=None,
+            traces=None,
+            **kwargs
+        ):
         """
         Construct a new Frame object
 
@@ -191,9 +193,9 @@ def __init__(
         -------
         Frame
         """
-        super().__init__("frames")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('frames')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -203,21 +205,21 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Frame
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Frame`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("baseframe", arg, baseframe)
-        self._set_property("data", arg, data)
-        self._set_property("group", arg, group)
-        self._set_property("layout", arg, layout)
-        self._set_property("name", arg, name)
-        self._set_property("traces", arg, traces)
+an instance of :class:`plotly.graph_objs.Frame`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('baseframe', arg, baseframe)
+        self._set_property('data', arg, data)
+        self._set_property('group', arg, group)
+        self._set_property('layout', arg, layout)
+        self._set_property('name', arg, name)
+        self._set_property('traces', arg, traces)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_funnel.py b/plotly/graph_objs/_funnel.py
index 4120a125c07..0ea291945a0 100644
--- a/plotly/graph_objs/_funnel.py
+++ b/plotly/graph_objs/_funnel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,77 +11,9 @@
 
 class Funnel(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "funnel"
-    _valid_props = {
-        "alignmentgroup",
-        "cliponaxis",
-        "connector",
-        "constraintext",
-        "customdata",
-        "customdatasrc",
-        "dx",
-        "dy",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "insidetextanchor",
-        "insidetextfont",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "marker",
-        "meta",
-        "metasrc",
-        "name",
-        "offset",
-        "offsetgroup",
-        "opacity",
-        "orientation",
-        "outsidetextfont",
-        "selectedpoints",
-        "showlegend",
-        "stream",
-        "text",
-        "textangle",
-        "textfont",
-        "textinfo",
-        "textposition",
-        "textpositionsrc",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-        "width",
-        "x",
-        "x0",
-        "xaxis",
-        "xhoverformat",
-        "xperiod",
-        "xperiod0",
-        "xperiodalignment",
-        "xsrc",
-        "y",
-        "y0",
-        "yaxis",
-        "yhoverformat",
-        "yperiod",
-        "yperiod0",
-        "yperiodalignment",
-        "ysrc",
-        "zorder",
-    }
+    _parent_path_str = ''
+    _path_str = 'funnel'
+    _valid_props = {"alignmentgroup", "cliponaxis", "connector", "constraintext", "customdata", "customdatasrc", "dx", "dy", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "insidetextanchor", "insidetextfont", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "marker", "meta", "metasrc", "name", "offset", "offsetgroup", "opacity", "orientation", "outsidetextfont", "selectedpoints", "showlegend", "stream", "text", "textangle", "textfont", "textinfo", "textposition", "textpositionsrc", "textsrc", "texttemplate", "texttemplatesrc", "type", "uid", "uirevision", "visible", "width", "x", "x0", "xaxis", "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", "xsrc", "y", "y0", "yaxis", "yhoverformat", "yperiod", "yperiod0", "yperiodalignment", "ysrc", "zorder"}
 
     @property
     def alignmentgroup(self):
@@ -94,11 +30,11 @@ def alignmentgroup(self):
         -------
         str
         """
-        return self["alignmentgroup"]
+        return self['alignmentgroup']
 
     @alignmentgroup.setter
     def alignmentgroup(self, val):
-        self["alignmentgroup"] = val
+        self['alignmentgroup'] = val
 
     @property
     def cliponaxis(self):
@@ -115,11 +51,11 @@ def cliponaxis(self):
         -------
         bool
         """
-        return self["cliponaxis"]
+        return self['cliponaxis']
 
     @cliponaxis.setter
     def cliponaxis(self, val):
-        self["cliponaxis"] = val
+        self['cliponaxis'] = val
 
     @property
     def connector(self):
@@ -134,11 +70,11 @@ def connector(self):
         -------
         plotly.graph_objs.funnel.Connector
         """
-        return self["connector"]
+        return self['connector']
 
     @connector.setter
     def connector(self, val):
-        self["connector"] = val
+        self['connector'] = val
 
     @property
     def constraintext(self):
@@ -154,11 +90,11 @@ def constraintext(self):
         -------
         Any
         """
-        return self["constraintext"]
+        return self['constraintext']
 
     @constraintext.setter
     def constraintext(self, val):
-        self["constraintext"] = val
+        self['constraintext'] = val
 
     @property
     def customdata(self):
@@ -175,11 +111,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -194,11 +130,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def dx(self):
@@ -212,11 +148,11 @@ def dx(self):
         -------
         int|float
         """
-        return self["dx"]
+        return self['dx']
 
     @dx.setter
     def dx(self, val):
-        self["dx"] = val
+        self['dx'] = val
 
     @property
     def dy(self):
@@ -230,11 +166,11 @@ def dy(self):
         -------
         int|float
         """
-        return self["dy"]
+        return self['dy']
 
     @dy.setter
     def dy(self, val):
-        self["dy"] = val
+        self['dy'] = val
 
     @property
     def hoverinfo(self):
@@ -254,11 +190,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -273,11 +209,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -292,11 +228,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.funnel.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -336,11 +272,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -355,11 +291,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -379,11 +315,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -398,11 +334,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -418,11 +354,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -436,11 +372,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def insidetextanchor(self):
@@ -456,11 +392,11 @@ def insidetextanchor(self):
         -------
         Any
         """
-        return self["insidetextanchor"]
+        return self['insidetextanchor']
 
     @insidetextanchor.setter
     def insidetextanchor(self, val):
-        self["insidetextanchor"] = val
+        self['insidetextanchor'] = val
 
     @property
     def insidetextfont(self):
@@ -477,11 +413,11 @@ def insidetextfont(self):
         -------
         plotly.graph_objs.funnel.Insidetextfont
         """
-        return self["insidetextfont"]
+        return self['insidetextfont']
 
     @insidetextfont.setter
     def insidetextfont(self, val):
-        self["insidetextfont"] = val
+        self['insidetextfont'] = val
 
     @property
     def legend(self):
@@ -500,11 +436,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -521,11 +457,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -540,11 +476,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.funnel.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -565,11 +501,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -584,11 +520,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def marker(self):
@@ -603,11 +539,11 @@ def marker(self):
         -------
         plotly.graph_objs.funnel.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -629,11 +565,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -647,11 +583,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -667,11 +603,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def offset(self):
@@ -687,11 +623,11 @@ def offset(self):
         -------
         int|float
         """
-        return self["offset"]
+        return self['offset']
 
     @offset.setter
     def offset(self, val):
-        self["offset"] = val
+        self['offset'] = val
 
     @property
     def offsetgroup(self):
@@ -708,11 +644,11 @@ def offsetgroup(self):
         -------
         str
         """
-        return self["offsetgroup"]
+        return self['offsetgroup']
 
     @offsetgroup.setter
     def offsetgroup(self, val):
-        self["offsetgroup"] = val
+        self['offsetgroup'] = val
 
     @property
     def opacity(self):
@@ -726,11 +662,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def orientation(self):
@@ -750,11 +686,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outsidetextfont(self):
@@ -771,11 +707,11 @@ def outsidetextfont(self):
         -------
         plotly.graph_objs.funnel.Outsidetextfont
         """
-        return self["outsidetextfont"]
+        return self['outsidetextfont']
 
     @outsidetextfont.setter
     def outsidetextfont(self, val):
-        self["outsidetextfont"] = val
+        self['outsidetextfont'] = val
 
     @property
     def selectedpoints(self):
@@ -793,11 +729,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -812,11 +748,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -831,11 +767,11 @@ def stream(self):
         -------
         plotly.graph_objs.funnel.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -856,11 +792,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textangle(self):
@@ -879,11 +815,11 @@ def textangle(self):
         -------
         int|float
         """
-        return self["textangle"]
+        return self['textangle']
 
     @textangle.setter
     def textangle(self, val):
-        self["textangle"] = val
+        self['textangle'] = val
 
     @property
     def textfont(self):
@@ -900,11 +836,11 @@ def textfont(self):
         -------
         plotly.graph_objs.funnel.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textinfo(self):
@@ -923,11 +859,11 @@ def textinfo(self):
         -------
         Any
         """
-        return self["textinfo"]
+        return self['textinfo']
 
     @textinfo.setter
     def textinfo(self, val):
-        self["textinfo"] = val
+        self['textinfo'] = val
 
     @property
     def textposition(self):
@@ -950,11 +886,11 @@ def textposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textpositionsrc(self):
@@ -969,11 +905,11 @@ def textpositionsrc(self):
         -------
         str
         """
-        return self["textpositionsrc"]
+        return self['textpositionsrc']
 
     @textpositionsrc.setter
     def textpositionsrc(self, val):
-        self["textpositionsrc"] = val
+        self['textpositionsrc'] = val
 
     @property
     def textsrc(self):
@@ -987,11 +923,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -1021,11 +957,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -1040,11 +976,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def uid(self):
@@ -1060,11 +996,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1091,11 +1027,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -1112,11 +1048,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -1130,11 +1066,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def x(self):
@@ -1148,11 +1084,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def x0(self):
@@ -1167,11 +1103,11 @@ def x0(self):
         -------
         Any
         """
-        return self["x0"]
+        return self['x0']
 
     @x0.setter
     def x0(self, val):
-        self["x0"] = val
+        self['x0'] = val
 
     @property
     def xaxis(self):
@@ -1190,11 +1126,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def xhoverformat(self):
@@ -1219,11 +1155,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xperiod(self):
@@ -1239,11 +1175,11 @@ def xperiod(self):
         -------
         Any
         """
-        return self["xperiod"]
+        return self['xperiod']
 
     @xperiod.setter
     def xperiod(self, val):
-        self["xperiod"] = val
+        self['xperiod'] = val
 
     @property
     def xperiod0(self):
@@ -1260,11 +1196,11 @@ def xperiod0(self):
         -------
         Any
         """
-        return self["xperiod0"]
+        return self['xperiod0']
 
     @xperiod0.setter
     def xperiod0(self, val):
-        self["xperiod0"] = val
+        self['xperiod0'] = val
 
     @property
     def xperiodalignment(self):
@@ -1280,11 +1216,11 @@ def xperiodalignment(self):
         -------
         Any
         """
-        return self["xperiodalignment"]
+        return self['xperiodalignment']
 
     @xperiodalignment.setter
     def xperiodalignment(self, val):
-        self["xperiodalignment"] = val
+        self['xperiodalignment'] = val
 
     @property
     def xsrc(self):
@@ -1298,11 +1234,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -1316,11 +1252,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def y0(self):
@@ -1335,11 +1271,11 @@ def y0(self):
         -------
         Any
         """
-        return self["y0"]
+        return self['y0']
 
     @y0.setter
     def y0(self, val):
-        self["y0"] = val
+        self['y0'] = val
 
     @property
     def yaxis(self):
@@ -1358,11 +1294,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def yhoverformat(self):
@@ -1387,11 +1323,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def yperiod(self):
@@ -1407,11 +1343,11 @@ def yperiod(self):
         -------
         Any
         """
-        return self["yperiod"]
+        return self['yperiod']
 
     @yperiod.setter
     def yperiod(self, val):
-        self["yperiod"] = val
+        self['yperiod'] = val
 
     @property
     def yperiod0(self):
@@ -1428,11 +1364,11 @@ def yperiod0(self):
         -------
         Any
         """
-        return self["yperiod0"]
+        return self['yperiod0']
 
     @yperiod0.setter
     def yperiod0(self, val):
-        self["yperiod0"] = val
+        self['yperiod0'] = val
 
     @property
     def yperiodalignment(self):
@@ -1448,11 +1384,11 @@ def yperiodalignment(self):
         -------
         Any
         """
-        return self["yperiodalignment"]
+        return self['yperiodalignment']
 
     @yperiodalignment.setter
     def yperiodalignment(self, val):
-        self["yperiodalignment"] = val
+        self['yperiodalignment'] = val
 
     @property
     def ysrc(self):
@@ -1466,11 +1402,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def zorder(self):
@@ -1486,15 +1422,15 @@ def zorder(self):
         -------
         int
         """
-        return self["zorder"]
+        return self['zorder']
 
     @zorder.setter
     def zorder(self, val):
-        self["zorder"] = val
+        self['zorder'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1854,78 +1790,76 @@ def _prop_descriptions(self):
             traces with higher `zorder` appear in front of those
             with lower `zorder`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        alignmentgroup=None,
-        cliponaxis=None,
-        connector=None,
-        constraintext=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextanchor=None,
-        insidetextfont=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        offset=None,
-        offsetgroup=None,
-        opacity=None,
-        orientation=None,
-        outsidetextfont=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textangle=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        width=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        zorder=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            alignmentgroup=None,
+            cliponaxis=None,
+            connector=None,
+            constraintext=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextanchor=None,
+            insidetextfont=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            offset=None,
+            offsetgroup=None,
+            opacity=None,
+            orientation=None,
+            outsidetextfont=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textangle=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            width=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            zorder=None,
+            **kwargs
+        ):
         """
         Construct a new Funnel object
 
@@ -2300,9 +2234,9 @@ def __init__(
         -------
         Funnel
         """
-        super().__init__("funnel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('funnel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2312,84 +2246,85 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Funnel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Funnel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("alignmentgroup", arg, alignmentgroup)
-        self._set_property("cliponaxis", arg, cliponaxis)
-        self._set_property("connector", arg, connector)
-        self._set_property("constraintext", arg, constraintext)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("dx", arg, dx)
-        self._set_property("dy", arg, dy)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("insidetextanchor", arg, insidetextanchor)
-        self._set_property("insidetextfont", arg, insidetextfont)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("offset", arg, offset)
-        self._set_property("offsetgroup", arg, offsetgroup)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outsidetextfont", arg, outsidetextfont)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textangle", arg, textangle)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textinfo", arg, textinfo)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textpositionsrc", arg, textpositionsrc)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
-        self._set_property("x", arg, x)
-        self._set_property("x0", arg, x0)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xperiod", arg, xperiod)
-        self._set_property("xperiod0", arg, xperiod0)
-        self._set_property("xperiodalignment", arg, xperiodalignment)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("y0", arg, y0)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("yperiod", arg, yperiod)
-        self._set_property("yperiod0", arg, yperiod0)
-        self._set_property("yperiodalignment", arg, yperiodalignment)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("zorder", arg, zorder)
-
-        self._props["type"] = "funnel"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Funnel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('alignmentgroup', arg, alignmentgroup)
+        self._set_property('cliponaxis', arg, cliponaxis)
+        self._set_property('connector', arg, connector)
+        self._set_property('constraintext', arg, constraintext)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('dx', arg, dx)
+        self._set_property('dy', arg, dy)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('insidetextanchor', arg, insidetextanchor)
+        self._set_property('insidetextfont', arg, insidetextfont)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('offset', arg, offset)
+        self._set_property('offsetgroup', arg, offsetgroup)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outsidetextfont', arg, outsidetextfont)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textangle', arg, textangle)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textinfo', arg, textinfo)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textpositionsrc', arg, textpositionsrc)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
+        self._set_property('x', arg, x)
+        self._set_property('x0', arg, x0)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xperiod', arg, xperiod)
+        self._set_property('xperiod0', arg, xperiod0)
+        self._set_property('xperiodalignment', arg, xperiodalignment)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('y0', arg, y0)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('yperiod', arg, yperiod)
+        self._set_property('yperiod0', arg, yperiod0)
+        self._set_property('yperiodalignment', arg, yperiodalignment)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('zorder', arg, zorder)
+
+
+        self._props['type'] = 'funnel'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_funnelarea.py b/plotly/graph_objs/_funnelarea.py
index 0761329b623..54fd92b8202 100644
--- a/plotly/graph_objs/_funnelarea.py
+++ b/plotly/graph_objs/_funnelarea.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,57 +11,9 @@
 
 class Funnelarea(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "funnelarea"
-    _valid_props = {
-        "aspectratio",
-        "baseratio",
-        "customdata",
-        "customdatasrc",
-        "dlabel",
-        "domain",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "insidetextfont",
-        "label0",
-        "labels",
-        "labelssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "marker",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "scalegroup",
-        "showlegend",
-        "stream",
-        "text",
-        "textfont",
-        "textinfo",
-        "textposition",
-        "textpositionsrc",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "title",
-        "type",
-        "uid",
-        "uirevision",
-        "values",
-        "valuessrc",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'funnelarea'
+    _valid_props = {"aspectratio", "baseratio", "customdata", "customdatasrc", "dlabel", "domain", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "insidetextfont", "label0", "labels", "labelssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "marker", "meta", "metasrc", "name", "opacity", "scalegroup", "showlegend", "stream", "text", "textfont", "textinfo", "textposition", "textpositionsrc", "textsrc", "texttemplate", "texttemplatesrc", "title", "type", "uid", "uirevision", "values", "valuessrc", "visible"}
 
     @property
     def aspectratio(self):
@@ -71,11 +27,11 @@ def aspectratio(self):
         -------
         int|float
         """
-        return self["aspectratio"]
+        return self['aspectratio']
 
     @aspectratio.setter
     def aspectratio(self, val):
-        self["aspectratio"] = val
+        self['aspectratio'] = val
 
     @property
     def baseratio(self):
@@ -89,11 +45,11 @@ def baseratio(self):
         -------
         int|float
         """
-        return self["baseratio"]
+        return self['baseratio']
 
     @baseratio.setter
     def baseratio(self, val):
-        self["baseratio"] = val
+        self['baseratio'] = val
 
     @property
     def customdata(self):
@@ -110,11 +66,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -129,11 +85,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def dlabel(self):
@@ -147,11 +103,11 @@ def dlabel(self):
         -------
         int|float
         """
-        return self["dlabel"]
+        return self['dlabel']
 
     @dlabel.setter
     def dlabel(self, val):
-        self["dlabel"] = val
+        self['dlabel'] = val
 
     @property
     def domain(self):
@@ -166,11 +122,11 @@ def domain(self):
         -------
         plotly.graph_objs.funnelarea.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def hoverinfo(self):
@@ -190,11 +146,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -209,11 +165,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -228,11 +184,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.funnelarea.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -272,11 +228,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -291,11 +247,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -315,11 +271,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -334,11 +290,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -354,11 +310,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -372,11 +328,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def insidetextfont(self):
@@ -393,11 +349,11 @@ def insidetextfont(self):
         -------
         plotly.graph_objs.funnelarea.Insidetextfont
         """
-        return self["insidetextfont"]
+        return self['insidetextfont']
 
     @insidetextfont.setter
     def insidetextfont(self, val):
-        self["insidetextfont"] = val
+        self['insidetextfont'] = val
 
     @property
     def label0(self):
@@ -413,11 +369,11 @@ def label0(self):
         -------
         int|float
         """
-        return self["label0"]
+        return self['label0']
 
     @label0.setter
     def label0(self, val):
-        self["label0"] = val
+        self['label0'] = val
 
     @property
     def labels(self):
@@ -435,11 +391,11 @@ def labels(self):
         -------
         numpy.ndarray
         """
-        return self["labels"]
+        return self['labels']
 
     @labels.setter
     def labels(self, val):
-        self["labels"] = val
+        self['labels'] = val
 
     @property
     def labelssrc(self):
@@ -453,11 +409,11 @@ def labelssrc(self):
         -------
         str
         """
-        return self["labelssrc"]
+        return self['labelssrc']
 
     @labelssrc.setter
     def labelssrc(self, val):
-        self["labelssrc"] = val
+        self['labelssrc'] = val
 
     @property
     def legend(self):
@@ -476,11 +432,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -497,11 +453,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -516,11 +472,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.funnelarea.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -541,11 +497,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -560,11 +516,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def marker(self):
@@ -579,11 +535,11 @@ def marker(self):
         -------
         plotly.graph_objs.funnelarea.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -605,11 +561,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -623,11 +579,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -643,11 +599,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -661,11 +617,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def scalegroup(self):
@@ -682,11 +638,11 @@ def scalegroup(self):
         -------
         str
         """
-        return self["scalegroup"]
+        return self['scalegroup']
 
     @scalegroup.setter
     def scalegroup(self, val):
-        self["scalegroup"] = val
+        self['scalegroup'] = val
 
     @property
     def showlegend(self):
@@ -701,11 +657,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -720,11 +676,11 @@ def stream(self):
         -------
         plotly.graph_objs.funnelarea.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -742,11 +698,11 @@ def text(self):
         -------
         numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -763,11 +719,11 @@ def textfont(self):
         -------
         plotly.graph_objs.funnelarea.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textinfo(self):
@@ -784,11 +740,11 @@ def textinfo(self):
         -------
         Any
         """
-        return self["textinfo"]
+        return self['textinfo']
 
     @textinfo.setter
     def textinfo(self, val):
-        self["textinfo"] = val
+        self['textinfo'] = val
 
     @property
     def textposition(self):
@@ -804,11 +760,11 @@ def textposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textpositionsrc(self):
@@ -823,11 +779,11 @@ def textpositionsrc(self):
         -------
         str
         """
-        return self["textpositionsrc"]
+        return self['textpositionsrc']
 
     @textpositionsrc.setter
     def textpositionsrc(self, val):
-        self["textpositionsrc"] = val
+        self['textpositionsrc'] = val
 
     @property
     def textsrc(self):
@@ -841,11 +797,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -874,11 +830,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -893,11 +849,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def title(self):
@@ -912,11 +868,11 @@ def title(self):
         -------
         plotly.graph_objs.funnelarea.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def uid(self):
@@ -932,11 +888,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -963,11 +919,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def values(self):
@@ -982,11 +938,11 @@ def values(self):
         -------
         numpy.ndarray
         """
-        return self["values"]
+        return self['values']
 
     @values.setter
     def values(self, val):
-        self["values"] = val
+        self['values'] = val
 
     @property
     def valuessrc(self):
@@ -1000,11 +956,11 @@ def valuessrc(self):
         -------
         str
         """
-        return self["valuessrc"]
+        return self['valuessrc']
 
     @valuessrc.setter
     def valuessrc(self, val):
-        self["valuessrc"] = val
+        self['valuessrc'] = val
 
     @property
     def visible(self):
@@ -1021,15 +977,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1266,58 +1222,56 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        aspectratio=None,
-        baseratio=None,
-        customdata=None,
-        customdatasrc=None,
-        dlabel=None,
-        domain=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextfont=None,
-        label0=None,
-        labels=None,
-        labelssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        scalegroup=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        title=None,
-        uid=None,
-        uirevision=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            aspectratio=None,
+            baseratio=None,
+            customdata=None,
+            customdatasrc=None,
+            dlabel=None,
+            domain=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextfont=None,
+            label0=None,
+            labels=None,
+            labelssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            scalegroup=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            title=None,
+            uid=None,
+            uirevision=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Funnelarea object
 
@@ -1568,9 +1522,9 @@ def __init__(
         -------
         Funnelarea
         """
-        super().__init__("funnelarea")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('funnelarea')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1580,64 +1534,65 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Funnelarea
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Funnelarea`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("aspectratio", arg, aspectratio)
-        self._set_property("baseratio", arg, baseratio)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("dlabel", arg, dlabel)
-        self._set_property("domain", arg, domain)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("insidetextfont", arg, insidetextfont)
-        self._set_property("label0", arg, label0)
-        self._set_property("labels", arg, labels)
-        self._set_property("labelssrc", arg, labelssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("scalegroup", arg, scalegroup)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textinfo", arg, textinfo)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textpositionsrc", arg, textpositionsrc)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("title", arg, title)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("values", arg, values)
-        self._set_property("valuessrc", arg, valuessrc)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "funnelarea"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Funnelarea`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('aspectratio', arg, aspectratio)
+        self._set_property('baseratio', arg, baseratio)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('dlabel', arg, dlabel)
+        self._set_property('domain', arg, domain)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('insidetextfont', arg, insidetextfont)
+        self._set_property('label0', arg, label0)
+        self._set_property('labels', arg, labels)
+        self._set_property('labelssrc', arg, labelssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('scalegroup', arg, scalegroup)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textinfo', arg, textinfo)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textpositionsrc', arg, textpositionsrc)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('title', arg, title)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('values', arg, values)
+        self._set_property('valuessrc', arg, valuessrc)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'funnelarea'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_heatmap.py b/plotly/graph_objs/_heatmap.py
index 448e28d5630..c48e748b760 100644
--- a/plotly/graph_objs/_heatmap.py
+++ b/plotly/graph_objs/_heatmap.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,82 +11,9 @@
 
 class Heatmap(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "heatmap"
-    _valid_props = {
-        "autocolorscale",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "connectgaps",
-        "customdata",
-        "customdatasrc",
-        "dx",
-        "dy",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hoverongaps",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "reversescale",
-        "showlegend",
-        "showscale",
-        "stream",
-        "text",
-        "textfont",
-        "textsrc",
-        "texttemplate",
-        "transpose",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-        "x",
-        "x0",
-        "xaxis",
-        "xcalendar",
-        "xgap",
-        "xhoverformat",
-        "xperiod",
-        "xperiod0",
-        "xperiodalignment",
-        "xsrc",
-        "xtype",
-        "y",
-        "y0",
-        "yaxis",
-        "ycalendar",
-        "ygap",
-        "yhoverformat",
-        "yperiod",
-        "yperiod0",
-        "yperiodalignment",
-        "ysrc",
-        "ytype",
-        "z",
-        "zauto",
-        "zhoverformat",
-        "zmax",
-        "zmid",
-        "zmin",
-        "zorder",
-        "zsmooth",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'heatmap'
+    _valid_props = {"autocolorscale", "coloraxis", "colorbar", "colorscale", "connectgaps", "customdata", "customdatasrc", "dx", "dy", "hoverinfo", "hoverinfosrc", "hoverlabel", "hoverongaps", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "meta", "metasrc", "name", "opacity", "reversescale", "showlegend", "showscale", "stream", "text", "textfont", "textsrc", "texttemplate", "transpose", "type", "uid", "uirevision", "visible", "x", "x0", "xaxis", "xcalendar", "xgap", "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", "xsrc", "xtype", "y", "y0", "yaxis", "ycalendar", "ygap", "yhoverformat", "yperiod", "yperiod0", "yperiodalignment", "ysrc", "ytype", "z", "zauto", "zhoverformat", "zmax", "zmid", "zmin", "zorder", "zsmooth", "zsrc"}
 
     @property
     def autocolorscale(self):
@@ -101,11 +32,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def coloraxis(self):
@@ -126,11 +57,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -145,11 +76,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.heatmap.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -196,11 +127,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def connectgaps(self):
@@ -217,11 +148,11 @@ def connectgaps(self):
         -------
         bool
         """
-        return self["connectgaps"]
+        return self['connectgaps']
 
     @connectgaps.setter
     def connectgaps(self, val):
-        self["connectgaps"] = val
+        self['connectgaps'] = val
 
     @property
     def customdata(self):
@@ -238,11 +169,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -257,11 +188,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def dx(self):
@@ -275,11 +206,11 @@ def dx(self):
         -------
         int|float
         """
-        return self["dx"]
+        return self['dx']
 
     @dx.setter
     def dx(self, val):
-        self["dx"] = val
+        self['dx'] = val
 
     @property
     def dy(self):
@@ -293,11 +224,11 @@ def dy(self):
         -------
         int|float
         """
-        return self["dy"]
+        return self['dy']
 
     @dy.setter
     def dy(self, val):
-        self["dy"] = val
+        self['dy'] = val
 
     @property
     def hoverinfo(self):
@@ -317,11 +248,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -336,11 +267,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -355,11 +286,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.heatmap.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hoverongaps(self):
@@ -374,11 +305,11 @@ def hoverongaps(self):
         -------
         bool
         """
-        return self["hoverongaps"]
+        return self['hoverongaps']
 
     @hoverongaps.setter
     def hoverongaps(self, val):
-        self["hoverongaps"] = val
+        self['hoverongaps'] = val
 
     @property
     def hovertemplate(self):
@@ -416,11 +347,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -435,11 +366,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -453,11 +384,11 @@ def hovertext(self):
         -------
         numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -472,11 +403,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -492,11 +423,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -510,11 +441,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -533,11 +464,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -554,11 +485,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -573,11 +504,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.heatmap.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -598,11 +529,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -617,11 +548,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def meta(self):
@@ -643,11 +574,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -661,11 +592,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -681,11 +612,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -699,11 +630,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def reversescale(self):
@@ -719,11 +650,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showlegend(self):
@@ -738,11 +669,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showscale(self):
@@ -757,11 +688,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def stream(self):
@@ -776,11 +707,11 @@ def stream(self):
         -------
         plotly.graph_objs.heatmap.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -794,11 +725,11 @@ def text(self):
         -------
         numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -815,11 +746,11 @@ def textfont(self):
         -------
         plotly.graph_objs.heatmap.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textsrc(self):
@@ -833,11 +764,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -865,11 +796,11 @@ def texttemplate(self):
         -------
         str
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def transpose(self):
@@ -883,11 +814,11 @@ def transpose(self):
         -------
         bool
         """
-        return self["transpose"]
+        return self['transpose']
 
     @transpose.setter
     def transpose(self, val):
-        self["transpose"] = val
+        self['transpose'] = val
 
     @property
     def uid(self):
@@ -903,11 +834,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -934,11 +865,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -955,11 +886,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -973,11 +904,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def x0(self):
@@ -992,11 +923,11 @@ def x0(self):
         -------
         Any
         """
-        return self["x0"]
+        return self['x0']
 
     @x0.setter
     def x0(self, val):
-        self["x0"] = val
+        self['x0'] = val
 
     @property
     def xaxis(self):
@@ -1015,11 +946,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def xcalendar(self):
@@ -1037,11 +968,11 @@ def xcalendar(self):
         -------
         Any
         """
-        return self["xcalendar"]
+        return self['xcalendar']
 
     @xcalendar.setter
     def xcalendar(self, val):
-        self["xcalendar"] = val
+        self['xcalendar'] = val
 
     @property
     def xgap(self):
@@ -1055,11 +986,11 @@ def xgap(self):
         -------
         int|float
         """
-        return self["xgap"]
+        return self['xgap']
 
     @xgap.setter
     def xgap(self, val):
-        self["xgap"] = val
+        self['xgap'] = val
 
     @property
     def xhoverformat(self):
@@ -1084,11 +1015,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xperiod(self):
@@ -1104,11 +1035,11 @@ def xperiod(self):
         -------
         Any
         """
-        return self["xperiod"]
+        return self['xperiod']
 
     @xperiod.setter
     def xperiod(self, val):
-        self["xperiod"] = val
+        self['xperiod'] = val
 
     @property
     def xperiod0(self):
@@ -1125,11 +1056,11 @@ def xperiod0(self):
         -------
         Any
         """
-        return self["xperiod0"]
+        return self['xperiod0']
 
     @xperiod0.setter
     def xperiod0(self, val):
-        self["xperiod0"] = val
+        self['xperiod0'] = val
 
     @property
     def xperiodalignment(self):
@@ -1145,11 +1076,11 @@ def xperiodalignment(self):
         -------
         Any
         """
-        return self["xperiodalignment"]
+        return self['xperiodalignment']
 
     @xperiodalignment.setter
     def xperiodalignment(self, val):
-        self["xperiodalignment"] = val
+        self['xperiodalignment'] = val
 
     @property
     def xsrc(self):
@@ -1163,11 +1094,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def xtype(self):
@@ -1185,11 +1116,11 @@ def xtype(self):
         -------
         Any
         """
-        return self["xtype"]
+        return self['xtype']
 
     @xtype.setter
     def xtype(self, val):
-        self["xtype"] = val
+        self['xtype'] = val
 
     @property
     def y(self):
@@ -1203,11 +1134,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def y0(self):
@@ -1222,11 +1153,11 @@ def y0(self):
         -------
         Any
         """
-        return self["y0"]
+        return self['y0']
 
     @y0.setter
     def y0(self, val):
-        self["y0"] = val
+        self['y0'] = val
 
     @property
     def yaxis(self):
@@ -1245,11 +1176,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def ycalendar(self):
@@ -1267,11 +1198,11 @@ def ycalendar(self):
         -------
         Any
         """
-        return self["ycalendar"]
+        return self['ycalendar']
 
     @ycalendar.setter
     def ycalendar(self, val):
-        self["ycalendar"] = val
+        self['ycalendar'] = val
 
     @property
     def ygap(self):
@@ -1285,11 +1216,11 @@ def ygap(self):
         -------
         int|float
         """
-        return self["ygap"]
+        return self['ygap']
 
     @ygap.setter
     def ygap(self, val):
-        self["ygap"] = val
+        self['ygap'] = val
 
     @property
     def yhoverformat(self):
@@ -1314,11 +1245,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def yperiod(self):
@@ -1334,11 +1265,11 @@ def yperiod(self):
         -------
         Any
         """
-        return self["yperiod"]
+        return self['yperiod']
 
     @yperiod.setter
     def yperiod(self, val):
-        self["yperiod"] = val
+        self['yperiod'] = val
 
     @property
     def yperiod0(self):
@@ -1355,11 +1286,11 @@ def yperiod0(self):
         -------
         Any
         """
-        return self["yperiod0"]
+        return self['yperiod0']
 
     @yperiod0.setter
     def yperiod0(self, val):
-        self["yperiod0"] = val
+        self['yperiod0'] = val
 
     @property
     def yperiodalignment(self):
@@ -1375,11 +1306,11 @@ def yperiodalignment(self):
         -------
         Any
         """
-        return self["yperiodalignment"]
+        return self['yperiodalignment']
 
     @yperiodalignment.setter
     def yperiodalignment(self, val):
-        self["yperiodalignment"] = val
+        self['yperiodalignment'] = val
 
     @property
     def ysrc(self):
@@ -1393,11 +1324,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def ytype(self):
@@ -1415,11 +1346,11 @@ def ytype(self):
         -------
         Any
         """
-        return self["ytype"]
+        return self['ytype']
 
     @ytype.setter
     def ytype(self, val):
-        self["ytype"] = val
+        self['ytype'] = val
 
     @property
     def z(self):
@@ -1433,11 +1364,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zauto(self):
@@ -1454,11 +1385,11 @@ def zauto(self):
         -------
         bool
         """
-        return self["zauto"]
+        return self['zauto']
 
     @zauto.setter
     def zauto(self, val):
-        self["zauto"] = val
+        self['zauto'] = val
 
     @property
     def zhoverformat(self):
@@ -1477,11 +1408,11 @@ def zhoverformat(self):
         -------
         str
         """
-        return self["zhoverformat"]
+        return self['zhoverformat']
 
     @zhoverformat.setter
     def zhoverformat(self, val):
-        self["zhoverformat"] = val
+        self['zhoverformat'] = val
 
     @property
     def zmax(self):
@@ -1496,11 +1427,11 @@ def zmax(self):
         -------
         int|float
         """
-        return self["zmax"]
+        return self['zmax']
 
     @zmax.setter
     def zmax(self, val):
-        self["zmax"] = val
+        self['zmax'] = val
 
     @property
     def zmid(self):
@@ -1516,11 +1447,11 @@ def zmid(self):
         -------
         int|float
         """
-        return self["zmid"]
+        return self['zmid']
 
     @zmid.setter
     def zmid(self, val):
-        self["zmid"] = val
+        self['zmid'] = val
 
     @property
     def zmin(self):
@@ -1535,11 +1466,11 @@ def zmin(self):
         -------
         int|float
         """
-        return self["zmin"]
+        return self['zmin']
 
     @zmin.setter
     def zmin(self, val):
-        self["zmin"] = val
+        self['zmin'] = val
 
     @property
     def zorder(self):
@@ -1555,11 +1486,11 @@ def zorder(self):
         -------
         int
         """
-        return self["zorder"]
+        return self['zorder']
 
     @zorder.setter
     def zorder(self, val):
-        self["zorder"] = val
+        self['zorder'] = val
 
     @property
     def zsmooth(self):
@@ -1574,11 +1505,11 @@ def zsmooth(self):
         -------
         Any
         """
-        return self["zsmooth"]
+        return self['zsmooth']
 
     @zsmooth.setter
     def zsmooth(self, val):
-        self["zsmooth"] = val
+        self['zsmooth'] = val
 
     @property
     def zsrc(self):
@@ -1592,15 +1523,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1966,83 +1897,81 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoverongaps=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textsrc=None,
-        texttemplate=None,
-        transpose=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xgap=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        xtype=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        ygap=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        ytype=None,
-        z=None,
-        zauto=None,
-        zhoverformat=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zorder=None,
-        zsmooth=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoverongaps=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textsrc=None,
+            texttemplate=None,
+            transpose=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xgap=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            xtype=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            ygap=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            ytype=None,
+            z=None,
+            zauto=None,
+            zhoverformat=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zorder=None,
+            zsmooth=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Heatmap object
 
@@ -2434,9 +2363,9 @@ def __init__(
         -------
         Heatmap
         """
-        super().__init__("heatmap")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('heatmap')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2446,89 +2375,90 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Heatmap
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Heatmap`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("connectgaps", arg, connectgaps)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("dx", arg, dx)
-        self._set_property("dy", arg, dy)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hoverongaps", arg, hoverongaps)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("transpose", arg, transpose)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("x0", arg, x0)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("xcalendar", arg, xcalendar)
-        self._set_property("xgap", arg, xgap)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xperiod", arg, xperiod)
-        self._set_property("xperiod0", arg, xperiod0)
-        self._set_property("xperiodalignment", arg, xperiodalignment)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("xtype", arg, xtype)
-        self._set_property("y", arg, y)
-        self._set_property("y0", arg, y0)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("ycalendar", arg, ycalendar)
-        self._set_property("ygap", arg, ygap)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("yperiod", arg, yperiod)
-        self._set_property("yperiod0", arg, yperiod0)
-        self._set_property("yperiodalignment", arg, yperiodalignment)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("ytype", arg, ytype)
-        self._set_property("z", arg, z)
-        self._set_property("zauto", arg, zauto)
-        self._set_property("zhoverformat", arg, zhoverformat)
-        self._set_property("zmax", arg, zmax)
-        self._set_property("zmid", arg, zmid)
-        self._set_property("zmin", arg, zmin)
-        self._set_property("zorder", arg, zorder)
-        self._set_property("zsmooth", arg, zsmooth)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "heatmap"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Heatmap`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('connectgaps', arg, connectgaps)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('dx', arg, dx)
+        self._set_property('dy', arg, dy)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hoverongaps', arg, hoverongaps)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('transpose', arg, transpose)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('x0', arg, x0)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('xcalendar', arg, xcalendar)
+        self._set_property('xgap', arg, xgap)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xperiod', arg, xperiod)
+        self._set_property('xperiod0', arg, xperiod0)
+        self._set_property('xperiodalignment', arg, xperiodalignment)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('xtype', arg, xtype)
+        self._set_property('y', arg, y)
+        self._set_property('y0', arg, y0)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('ycalendar', arg, ycalendar)
+        self._set_property('ygap', arg, ygap)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('yperiod', arg, yperiod)
+        self._set_property('yperiod0', arg, yperiod0)
+        self._set_property('yperiodalignment', arg, yperiodalignment)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('ytype', arg, ytype)
+        self._set_property('z', arg, z)
+        self._set_property('zauto', arg, zauto)
+        self._set_property('zhoverformat', arg, zhoverformat)
+        self._set_property('zmax', arg, zmax)
+        self._set_property('zmid', arg, zmid)
+        self._set_property('zmin', arg, zmin)
+        self._set_property('zorder', arg, zorder)
+        self._set_property('zsmooth', arg, zsmooth)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'heatmap'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_histogram.py b/plotly/graph_objs/_histogram.py
index 668b203c3fe..9ab250d7c8a 100644
--- a/plotly/graph_objs/_histogram.py
+++ b/plotly/graph_objs/_histogram.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,77 +11,9 @@
 
 class Histogram(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "histogram"
-    _valid_props = {
-        "alignmentgroup",
-        "autobinx",
-        "autobiny",
-        "bingroup",
-        "cliponaxis",
-        "constraintext",
-        "cumulative",
-        "customdata",
-        "customdatasrc",
-        "error_x",
-        "error_y",
-        "histfunc",
-        "histnorm",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "insidetextanchor",
-        "insidetextfont",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "marker",
-        "meta",
-        "metasrc",
-        "name",
-        "nbinsx",
-        "nbinsy",
-        "offsetgroup",
-        "opacity",
-        "orientation",
-        "outsidetextfont",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "stream",
-        "text",
-        "textangle",
-        "textfont",
-        "textposition",
-        "textsrc",
-        "texttemplate",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-        "x",
-        "xaxis",
-        "xbins",
-        "xcalendar",
-        "xhoverformat",
-        "xsrc",
-        "y",
-        "yaxis",
-        "ybins",
-        "ycalendar",
-        "yhoverformat",
-        "ysrc",
-        "zorder",
-    }
+    _parent_path_str = ''
+    _path_str = 'histogram'
+    _valid_props = {"alignmentgroup", "autobinx", "autobiny", "bingroup", "cliponaxis", "constraintext", "cumulative", "customdata", "customdatasrc", "error_x", "error_y", "histfunc", "histnorm", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "insidetextanchor", "insidetextfont", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "marker", "meta", "metasrc", "name", "nbinsx", "nbinsy", "offsetgroup", "opacity", "orientation", "outsidetextfont", "selected", "selectedpoints", "showlegend", "stream", "text", "textangle", "textfont", "textposition", "textsrc", "texttemplate", "type", "uid", "uirevision", "unselected", "visible", "x", "xaxis", "xbins", "xcalendar", "xhoverformat", "xsrc", "y", "yaxis", "ybins", "ycalendar", "yhoverformat", "ysrc", "zorder"}
 
     @property
     def alignmentgroup(self):
@@ -94,11 +30,11 @@ def alignmentgroup(self):
         -------
         str
         """
-        return self["alignmentgroup"]
+        return self['alignmentgroup']
 
     @alignmentgroup.setter
     def alignmentgroup(self, val):
-        self["alignmentgroup"] = val
+        self['alignmentgroup'] = val
 
     @property
     def autobinx(self):
@@ -115,11 +51,11 @@ def autobinx(self):
         -------
         bool
         """
-        return self["autobinx"]
+        return self['autobinx']
 
     @autobinx.setter
     def autobinx(self, val):
-        self["autobinx"] = val
+        self['autobinx'] = val
 
     @property
     def autobiny(self):
@@ -136,11 +72,11 @@ def autobiny(self):
         -------
         bool
         """
-        return self["autobiny"]
+        return self['autobiny']
 
     @autobiny.setter
     def autobiny(self, val):
-        self["autobiny"] = val
+        self['autobiny'] = val
 
     @property
     def bingroup(self):
@@ -161,11 +97,11 @@ def bingroup(self):
         -------
         str
         """
-        return self["bingroup"]
+        return self['bingroup']
 
     @bingroup.setter
     def bingroup(self, val):
-        self["bingroup"] = val
+        self['bingroup'] = val
 
     @property
     def cliponaxis(self):
@@ -182,11 +118,11 @@ def cliponaxis(self):
         -------
         bool
         """
-        return self["cliponaxis"]
+        return self['cliponaxis']
 
     @cliponaxis.setter
     def cliponaxis(self, val):
-        self["cliponaxis"] = val
+        self['cliponaxis'] = val
 
     @property
     def constraintext(self):
@@ -202,11 +138,11 @@ def constraintext(self):
         -------
         Any
         """
-        return self["constraintext"]
+        return self['constraintext']
 
     @constraintext.setter
     def constraintext(self, val):
-        self["constraintext"] = val
+        self['constraintext'] = val
 
     @property
     def cumulative(self):
@@ -221,11 +157,11 @@ def cumulative(self):
         -------
         plotly.graph_objs.histogram.Cumulative
         """
-        return self["cumulative"]
+        return self['cumulative']
 
     @cumulative.setter
     def cumulative(self, val):
-        self["cumulative"] = val
+        self['cumulative'] = val
 
     @property
     def customdata(self):
@@ -242,11 +178,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -261,11 +197,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def error_x(self):
@@ -280,11 +216,11 @@ def error_x(self):
         -------
         plotly.graph_objs.histogram.ErrorX
         """
-        return self["error_x"]
+        return self['error_x']
 
     @error_x.setter
     def error_x(self, val):
-        self["error_x"] = val
+        self['error_x'] = val
 
     @property
     def error_y(self):
@@ -299,11 +235,11 @@ def error_y(self):
         -------
         plotly.graph_objs.histogram.ErrorY
         """
-        return self["error_y"]
+        return self['error_y']
 
     @error_y.setter
     def error_y(self, val):
-        self["error_y"] = val
+        self['error_y'] = val
 
     @property
     def histfunc(self):
@@ -323,11 +259,11 @@ def histfunc(self):
         -------
         Any
         """
-        return self["histfunc"]
+        return self['histfunc']
 
     @histfunc.setter
     def histfunc(self, val):
-        self["histfunc"] = val
+        self['histfunc'] = val
 
     @property
     def histnorm(self):
@@ -355,11 +291,11 @@ def histnorm(self):
         -------
         Any
         """
-        return self["histnorm"]
+        return self['histnorm']
 
     @histnorm.setter
     def histnorm(self, val):
-        self["histnorm"] = val
+        self['histnorm'] = val
 
     @property
     def hoverinfo(self):
@@ -379,11 +315,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -398,11 +334,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -417,11 +353,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.histogram.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -460,11 +396,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -479,11 +415,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -499,11 +435,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -518,11 +454,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -538,11 +474,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -556,11 +492,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def insidetextanchor(self):
@@ -576,11 +512,11 @@ def insidetextanchor(self):
         -------
         Any
         """
-        return self["insidetextanchor"]
+        return self['insidetextanchor']
 
     @insidetextanchor.setter
     def insidetextanchor(self, val):
-        self["insidetextanchor"] = val
+        self['insidetextanchor'] = val
 
     @property
     def insidetextfont(self):
@@ -597,11 +533,11 @@ def insidetextfont(self):
         -------
         plotly.graph_objs.histogram.Insidetextfont
         """
-        return self["insidetextfont"]
+        return self['insidetextfont']
 
     @insidetextfont.setter
     def insidetextfont(self, val):
-        self["insidetextfont"] = val
+        self['insidetextfont'] = val
 
     @property
     def legend(self):
@@ -620,11 +556,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -641,11 +577,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -660,11 +596,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.histogram.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -685,11 +621,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -704,11 +640,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def marker(self):
@@ -723,11 +659,11 @@ def marker(self):
         -------
         plotly.graph_objs.histogram.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -749,11 +685,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -767,11 +703,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -787,11 +723,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def nbinsx(self):
@@ -809,11 +745,11 @@ def nbinsx(self):
         -------
         int
         """
-        return self["nbinsx"]
+        return self['nbinsx']
 
     @nbinsx.setter
     def nbinsx(self, val):
-        self["nbinsx"] = val
+        self['nbinsx'] = val
 
     @property
     def nbinsy(self):
@@ -831,11 +767,11 @@ def nbinsy(self):
         -------
         int
         """
-        return self["nbinsy"]
+        return self['nbinsy']
 
     @nbinsy.setter
     def nbinsy(self, val):
-        self["nbinsy"] = val
+        self['nbinsy'] = val
 
     @property
     def offsetgroup(self):
@@ -852,11 +788,11 @@ def offsetgroup(self):
         -------
         str
         """
-        return self["offsetgroup"]
+        return self['offsetgroup']
 
     @offsetgroup.setter
     def offsetgroup(self, val):
-        self["offsetgroup"] = val
+        self['offsetgroup'] = val
 
     @property
     def opacity(self):
@@ -870,11 +806,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def orientation(self):
@@ -890,11 +826,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outsidetextfont(self):
@@ -911,11 +847,11 @@ def outsidetextfont(self):
         -------
         plotly.graph_objs.histogram.Outsidetextfont
         """
-        return self["outsidetextfont"]
+        return self['outsidetextfont']
 
     @outsidetextfont.setter
     def outsidetextfont(self, val):
-        self["outsidetextfont"] = val
+        self['outsidetextfont'] = val
 
     @property
     def selected(self):
@@ -930,11 +866,11 @@ def selected(self):
         -------
         plotly.graph_objs.histogram.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -952,11 +888,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -971,11 +907,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -990,11 +926,11 @@ def stream(self):
         -------
         plotly.graph_objs.histogram.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -1013,11 +949,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textangle(self):
@@ -1036,11 +972,11 @@ def textangle(self):
         -------
         int|float
         """
-        return self["textangle"]
+        return self['textangle']
 
     @textangle.setter
     def textangle(self, val):
-        self["textangle"] = val
+        self['textangle'] = val
 
     @property
     def textfont(self):
@@ -1057,11 +993,11 @@ def textfont(self):
         -------
         plotly.graph_objs.histogram.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textposition(self):
@@ -1083,11 +1019,11 @@ def textposition(self):
         -------
         Any
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textsrc(self):
@@ -1101,11 +1037,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -1133,11 +1069,11 @@ def texttemplate(self):
         -------
         str
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def uid(self):
@@ -1153,11 +1089,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1184,11 +1120,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -1203,11 +1139,11 @@ def unselected(self):
         -------
         plotly.graph_objs.histogram.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -1224,11 +1160,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -1242,11 +1178,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xaxis(self):
@@ -1265,11 +1201,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def xbins(self):
@@ -1284,11 +1220,11 @@ def xbins(self):
         -------
         plotly.graph_objs.histogram.XBins
         """
-        return self["xbins"]
+        return self['xbins']
 
     @xbins.setter
     def xbins(self, val):
-        self["xbins"] = val
+        self['xbins'] = val
 
     @property
     def xcalendar(self):
@@ -1306,11 +1242,11 @@ def xcalendar(self):
         -------
         Any
         """
-        return self["xcalendar"]
+        return self['xcalendar']
 
     @xcalendar.setter
     def xcalendar(self, val):
-        self["xcalendar"] = val
+        self['xcalendar'] = val
 
     @property
     def xhoverformat(self):
@@ -1335,11 +1271,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xsrc(self):
@@ -1353,11 +1289,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -1371,11 +1307,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yaxis(self):
@@ -1394,11 +1330,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def ybins(self):
@@ -1413,11 +1349,11 @@ def ybins(self):
         -------
         plotly.graph_objs.histogram.YBins
         """
-        return self["ybins"]
+        return self['ybins']
 
     @ybins.setter
     def ybins(self, val):
-        self["ybins"] = val
+        self['ybins'] = val
 
     @property
     def ycalendar(self):
@@ -1435,11 +1371,11 @@ def ycalendar(self):
         -------
         Any
         """
-        return self["ycalendar"]
+        return self['ycalendar']
 
     @ycalendar.setter
     def ycalendar(self, val):
-        self["ycalendar"] = val
+        self['ycalendar'] = val
 
     @property
     def yhoverformat(self):
@@ -1464,11 +1400,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def ysrc(self):
@@ -1482,11 +1418,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def zorder(self):
@@ -1502,15 +1438,15 @@ def zorder(self):
         -------
         int
         """
-        return self["zorder"]
+        return self['zorder']
 
     @zorder.setter
     def zorder(self, val):
-        self["zorder"] = val
+        self['zorder'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1876,78 +1812,76 @@ def _prop_descriptions(self):
             traces with higher `zorder` appear in front of those
             with lower `zorder`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        alignmentgroup=None,
-        autobinx=None,
-        autobiny=None,
-        bingroup=None,
-        cliponaxis=None,
-        constraintext=None,
-        cumulative=None,
-        customdata=None,
-        customdatasrc=None,
-        error_x=None,
-        error_y=None,
-        histfunc=None,
-        histnorm=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextanchor=None,
-        insidetextfont=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        nbinsx=None,
-        nbinsy=None,
-        offsetgroup=None,
-        opacity=None,
-        orientation=None,
-        outsidetextfont=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textangle=None,
-        textfont=None,
-        textposition=None,
-        textsrc=None,
-        texttemplate=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        x=None,
-        xaxis=None,
-        xbins=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yaxis=None,
-        ybins=None,
-        ycalendar=None,
-        yhoverformat=None,
-        ysrc=None,
-        zorder=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            alignmentgroup=None,
+            autobinx=None,
+            autobiny=None,
+            bingroup=None,
+            cliponaxis=None,
+            constraintext=None,
+            cumulative=None,
+            customdata=None,
+            customdatasrc=None,
+            error_x=None,
+            error_y=None,
+            histfunc=None,
+            histnorm=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextanchor=None,
+            insidetextfont=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            nbinsx=None,
+            nbinsy=None,
+            offsetgroup=None,
+            opacity=None,
+            orientation=None,
+            outsidetextfont=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textangle=None,
+            textfont=None,
+            textposition=None,
+            textsrc=None,
+            texttemplate=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            x=None,
+            xaxis=None,
+            xbins=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yaxis=None,
+            ybins=None,
+            ycalendar=None,
+            yhoverformat=None,
+            ysrc=None,
+            zorder=None,
+            **kwargs
+        ):
         """
         Construct a new Histogram object
 
@@ -2327,9 +2261,9 @@ def __init__(
         -------
         Histogram
         """
-        super().__init__("histogram")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('histogram')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2339,84 +2273,85 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Histogram
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Histogram`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("alignmentgroup", arg, alignmentgroup)
-        self._set_property("autobinx", arg, autobinx)
-        self._set_property("autobiny", arg, autobiny)
-        self._set_property("bingroup", arg, bingroup)
-        self._set_property("cliponaxis", arg, cliponaxis)
-        self._set_property("constraintext", arg, constraintext)
-        self._set_property("cumulative", arg, cumulative)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("error_x", arg, error_x)
-        self._set_property("error_y", arg, error_y)
-        self._set_property("histfunc", arg, histfunc)
-        self._set_property("histnorm", arg, histnorm)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("insidetextanchor", arg, insidetextanchor)
-        self._set_property("insidetextfont", arg, insidetextfont)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("nbinsx", arg, nbinsx)
-        self._set_property("nbinsy", arg, nbinsy)
-        self._set_property("offsetgroup", arg, offsetgroup)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outsidetextfont", arg, outsidetextfont)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textangle", arg, textangle)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("xbins", arg, xbins)
-        self._set_property("xcalendar", arg, xcalendar)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("ybins", arg, ybins)
-        self._set_property("ycalendar", arg, ycalendar)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("zorder", arg, zorder)
-
-        self._props["type"] = "histogram"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Histogram`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('alignmentgroup', arg, alignmentgroup)
+        self._set_property('autobinx', arg, autobinx)
+        self._set_property('autobiny', arg, autobiny)
+        self._set_property('bingroup', arg, bingroup)
+        self._set_property('cliponaxis', arg, cliponaxis)
+        self._set_property('constraintext', arg, constraintext)
+        self._set_property('cumulative', arg, cumulative)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('error_x', arg, error_x)
+        self._set_property('error_y', arg, error_y)
+        self._set_property('histfunc', arg, histfunc)
+        self._set_property('histnorm', arg, histnorm)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('insidetextanchor', arg, insidetextanchor)
+        self._set_property('insidetextfont', arg, insidetextfont)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('nbinsx', arg, nbinsx)
+        self._set_property('nbinsy', arg, nbinsy)
+        self._set_property('offsetgroup', arg, offsetgroup)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outsidetextfont', arg, outsidetextfont)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textangle', arg, textangle)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('xbins', arg, xbins)
+        self._set_property('xcalendar', arg, xcalendar)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('ybins', arg, ybins)
+        self._set_property('ycalendar', arg, ycalendar)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('zorder', arg, zorder)
+
+
+        self._props['type'] = 'histogram'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_histogram2d.py b/plotly/graph_objs/_histogram2d.py
index 3825b500fcb..67c434c13fe 100644
--- a/plotly/graph_objs/_histogram2d.py
+++ b/plotly/graph_objs/_histogram2d.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,74 +11,9 @@
 
 class Histogram2d(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "histogram2d"
-    _valid_props = {
-        "autobinx",
-        "autobiny",
-        "autocolorscale",
-        "bingroup",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "customdata",
-        "customdatasrc",
-        "histfunc",
-        "histnorm",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "marker",
-        "meta",
-        "metasrc",
-        "name",
-        "nbinsx",
-        "nbinsy",
-        "opacity",
-        "reversescale",
-        "showlegend",
-        "showscale",
-        "stream",
-        "textfont",
-        "texttemplate",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-        "x",
-        "xaxis",
-        "xbingroup",
-        "xbins",
-        "xcalendar",
-        "xgap",
-        "xhoverformat",
-        "xsrc",
-        "y",
-        "yaxis",
-        "ybingroup",
-        "ybins",
-        "ycalendar",
-        "ygap",
-        "yhoverformat",
-        "ysrc",
-        "z",
-        "zauto",
-        "zhoverformat",
-        "zmax",
-        "zmid",
-        "zmin",
-        "zsmooth",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'histogram2d'
+    _valid_props = {"autobinx", "autobiny", "autocolorscale", "bingroup", "coloraxis", "colorbar", "colorscale", "customdata", "customdatasrc", "histfunc", "histnorm", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "marker", "meta", "metasrc", "name", "nbinsx", "nbinsy", "opacity", "reversescale", "showlegend", "showscale", "stream", "textfont", "texttemplate", "type", "uid", "uirevision", "visible", "x", "xaxis", "xbingroup", "xbins", "xcalendar", "xgap", "xhoverformat", "xsrc", "y", "yaxis", "ybingroup", "ybins", "ycalendar", "ygap", "yhoverformat", "ysrc", "z", "zauto", "zhoverformat", "zmax", "zmid", "zmin", "zsmooth", "zsrc"}
 
     @property
     def autobinx(self):
@@ -91,11 +30,11 @@ def autobinx(self):
         -------
         bool
         """
-        return self["autobinx"]
+        return self['autobinx']
 
     @autobinx.setter
     def autobinx(self, val):
-        self["autobinx"] = val
+        self['autobinx'] = val
 
     @property
     def autobiny(self):
@@ -112,11 +51,11 @@ def autobiny(self):
         -------
         bool
         """
-        return self["autobiny"]
+        return self['autobiny']
 
     @autobiny.setter
     def autobiny(self, val):
-        self["autobiny"] = val
+        self['autobiny'] = val
 
     @property
     def autocolorscale(self):
@@ -135,11 +74,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def bingroup(self):
@@ -156,11 +95,11 @@ def bingroup(self):
         -------
         str
         """
-        return self["bingroup"]
+        return self['bingroup']
 
     @bingroup.setter
     def bingroup(self, val):
-        self["bingroup"] = val
+        self['bingroup'] = val
 
     @property
     def coloraxis(self):
@@ -181,11 +120,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -200,11 +139,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.histogram2d.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -251,11 +190,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def customdata(self):
@@ -272,11 +211,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -291,11 +230,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def histfunc(self):
@@ -315,11 +254,11 @@ def histfunc(self):
         -------
         Any
         """
-        return self["histfunc"]
+        return self['histfunc']
 
     @histfunc.setter
     def histfunc(self, val):
-        self["histfunc"] = val
+        self['histfunc'] = val
 
     @property
     def histnorm(self):
@@ -347,11 +286,11 @@ def histnorm(self):
         -------
         Any
         """
-        return self["histnorm"]
+        return self['histnorm']
 
     @histnorm.setter
     def histnorm(self, val):
-        self["histnorm"] = val
+        self['histnorm'] = val
 
     @property
     def hoverinfo(self):
@@ -371,11 +310,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -390,11 +329,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -409,11 +348,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.histogram2d.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -452,11 +391,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -471,11 +410,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def ids(self):
@@ -491,11 +430,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -509,11 +448,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -532,11 +471,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -553,11 +492,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -572,11 +511,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.histogram2d.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -597,11 +536,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -616,11 +555,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def marker(self):
@@ -635,11 +574,11 @@ def marker(self):
         -------
         plotly.graph_objs.histogram2d.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -661,11 +600,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -679,11 +618,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -699,11 +638,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def nbinsx(self):
@@ -721,11 +660,11 @@ def nbinsx(self):
         -------
         int
         """
-        return self["nbinsx"]
+        return self['nbinsx']
 
     @nbinsx.setter
     def nbinsx(self, val):
-        self["nbinsx"] = val
+        self['nbinsx'] = val
 
     @property
     def nbinsy(self):
@@ -743,11 +682,11 @@ def nbinsy(self):
         -------
         int
         """
-        return self["nbinsy"]
+        return self['nbinsy']
 
     @nbinsy.setter
     def nbinsy(self, val):
-        self["nbinsy"] = val
+        self['nbinsy'] = val
 
     @property
     def opacity(self):
@@ -761,11 +700,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def reversescale(self):
@@ -781,11 +720,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showlegend(self):
@@ -800,11 +739,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showscale(self):
@@ -819,11 +758,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def stream(self):
@@ -838,11 +777,11 @@ def stream(self):
         -------
         plotly.graph_objs.histogram2d.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def textfont(self):
@@ -859,11 +798,11 @@ def textfont(self):
         -------
         plotly.graph_objs.histogram2d.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def texttemplate(self):
@@ -890,11 +829,11 @@ def texttemplate(self):
         -------
         str
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def uid(self):
@@ -910,11 +849,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -941,11 +880,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -962,11 +901,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -980,11 +919,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xaxis(self):
@@ -1003,11 +942,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def xbingroup(self):
@@ -1026,11 +965,11 @@ def xbingroup(self):
         -------
         str
         """
-        return self["xbingroup"]
+        return self['xbingroup']
 
     @xbingroup.setter
     def xbingroup(self, val):
-        self["xbingroup"] = val
+        self['xbingroup'] = val
 
     @property
     def xbins(self):
@@ -1045,11 +984,11 @@ def xbins(self):
         -------
         plotly.graph_objs.histogram2d.XBins
         """
-        return self["xbins"]
+        return self['xbins']
 
     @xbins.setter
     def xbins(self, val):
-        self["xbins"] = val
+        self['xbins'] = val
 
     @property
     def xcalendar(self):
@@ -1067,11 +1006,11 @@ def xcalendar(self):
         -------
         Any
         """
-        return self["xcalendar"]
+        return self['xcalendar']
 
     @xcalendar.setter
     def xcalendar(self, val):
-        self["xcalendar"] = val
+        self['xcalendar'] = val
 
     @property
     def xgap(self):
@@ -1085,11 +1024,11 @@ def xgap(self):
         -------
         int|float
         """
-        return self["xgap"]
+        return self['xgap']
 
     @xgap.setter
     def xgap(self, val):
-        self["xgap"] = val
+        self['xgap'] = val
 
     @property
     def xhoverformat(self):
@@ -1114,11 +1053,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xsrc(self):
@@ -1132,11 +1071,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -1150,11 +1089,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yaxis(self):
@@ -1173,11 +1112,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def ybingroup(self):
@@ -1196,11 +1135,11 @@ def ybingroup(self):
         -------
         str
         """
-        return self["ybingroup"]
+        return self['ybingroup']
 
     @ybingroup.setter
     def ybingroup(self, val):
-        self["ybingroup"] = val
+        self['ybingroup'] = val
 
     @property
     def ybins(self):
@@ -1215,11 +1154,11 @@ def ybins(self):
         -------
         plotly.graph_objs.histogram2d.YBins
         """
-        return self["ybins"]
+        return self['ybins']
 
     @ybins.setter
     def ybins(self, val):
-        self["ybins"] = val
+        self['ybins'] = val
 
     @property
     def ycalendar(self):
@@ -1237,11 +1176,11 @@ def ycalendar(self):
         -------
         Any
         """
-        return self["ycalendar"]
+        return self['ycalendar']
 
     @ycalendar.setter
     def ycalendar(self, val):
-        self["ycalendar"] = val
+        self['ycalendar'] = val
 
     @property
     def ygap(self):
@@ -1255,11 +1194,11 @@ def ygap(self):
         -------
         int|float
         """
-        return self["ygap"]
+        return self['ygap']
 
     @ygap.setter
     def ygap(self, val):
-        self["ygap"] = val
+        self['ygap'] = val
 
     @property
     def yhoverformat(self):
@@ -1284,11 +1223,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def ysrc(self):
@@ -1302,11 +1241,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def z(self):
@@ -1320,11 +1259,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zauto(self):
@@ -1341,11 +1280,11 @@ def zauto(self):
         -------
         bool
         """
-        return self["zauto"]
+        return self['zauto']
 
     @zauto.setter
     def zauto(self, val):
-        self["zauto"] = val
+        self['zauto'] = val
 
     @property
     def zhoverformat(self):
@@ -1364,11 +1303,11 @@ def zhoverformat(self):
         -------
         str
         """
-        return self["zhoverformat"]
+        return self['zhoverformat']
 
     @zhoverformat.setter
     def zhoverformat(self, val):
-        self["zhoverformat"] = val
+        self['zhoverformat'] = val
 
     @property
     def zmax(self):
@@ -1383,11 +1322,11 @@ def zmax(self):
         -------
         int|float
         """
-        return self["zmax"]
+        return self['zmax']
 
     @zmax.setter
     def zmax(self, val):
-        self["zmax"] = val
+        self['zmax'] = val
 
     @property
     def zmid(self):
@@ -1403,11 +1342,11 @@ def zmid(self):
         -------
         int|float
         """
-        return self["zmid"]
+        return self['zmid']
 
     @zmid.setter
     def zmid(self, val):
-        self["zmid"] = val
+        self['zmid'] = val
 
     @property
     def zmin(self):
@@ -1422,11 +1361,11 @@ def zmin(self):
         -------
         int|float
         """
-        return self["zmin"]
+        return self['zmin']
 
     @zmin.setter
     def zmin(self, val):
-        self["zmin"] = val
+        self['zmin'] = val
 
     @property
     def zsmooth(self):
@@ -1441,11 +1380,11 @@ def zsmooth(self):
         -------
         Any
         """
-        return self["zsmooth"]
+        return self['zsmooth']
 
     @zsmooth.setter
     def zsmooth(self, val):
-        self["zsmooth"] = val
+        self['zsmooth'] = val
 
     @property
     def zsrc(self):
@@ -1459,15 +1398,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1829,75 +1768,73 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autobinx=None,
-        autobiny=None,
-        autocolorscale=None,
-        bingroup=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        histfunc=None,
-        histnorm=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        nbinsx=None,
-        nbinsy=None,
-        opacity=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        textfont=None,
-        texttemplate=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xaxis=None,
-        xbingroup=None,
-        xbins=None,
-        xcalendar=None,
-        xgap=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yaxis=None,
-        ybingroup=None,
-        ybins=None,
-        ycalendar=None,
-        ygap=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zauto=None,
-        zhoverformat=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsmooth=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autobinx=None,
+            autobiny=None,
+            autocolorscale=None,
+            bingroup=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            histfunc=None,
+            histnorm=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            nbinsx=None,
+            nbinsy=None,
+            opacity=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            textfont=None,
+            texttemplate=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xaxis=None,
+            xbingroup=None,
+            xbins=None,
+            xcalendar=None,
+            xgap=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yaxis=None,
+            ybingroup=None,
+            ybins=None,
+            ycalendar=None,
+            ygap=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zauto=None,
+            zhoverformat=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsmooth=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Histogram2d object
 
@@ -2274,9 +2211,9 @@ def __init__(
         -------
         Histogram2d
         """
-        super().__init__("histogram2d")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('histogram2d')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2286,81 +2223,82 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Histogram2d
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Histogram2d`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autobinx", arg, autobinx)
-        self._set_property("autobiny", arg, autobiny)
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("bingroup", arg, bingroup)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("histfunc", arg, histfunc)
-        self._set_property("histnorm", arg, histnorm)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("nbinsx", arg, nbinsx)
-        self._set_property("nbinsy", arg, nbinsy)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("stream", arg, stream)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("xbingroup", arg, xbingroup)
-        self._set_property("xbins", arg, xbins)
-        self._set_property("xcalendar", arg, xcalendar)
-        self._set_property("xgap", arg, xgap)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("ybingroup", arg, ybingroup)
-        self._set_property("ybins", arg, ybins)
-        self._set_property("ycalendar", arg, ycalendar)
-        self._set_property("ygap", arg, ygap)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("z", arg, z)
-        self._set_property("zauto", arg, zauto)
-        self._set_property("zhoverformat", arg, zhoverformat)
-        self._set_property("zmax", arg, zmax)
-        self._set_property("zmid", arg, zmid)
-        self._set_property("zmin", arg, zmin)
-        self._set_property("zsmooth", arg, zsmooth)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "histogram2d"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Histogram2d`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autobinx', arg, autobinx)
+        self._set_property('autobiny', arg, autobiny)
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('bingroup', arg, bingroup)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('histfunc', arg, histfunc)
+        self._set_property('histnorm', arg, histnorm)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('nbinsx', arg, nbinsx)
+        self._set_property('nbinsy', arg, nbinsy)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('stream', arg, stream)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('xbingroup', arg, xbingroup)
+        self._set_property('xbins', arg, xbins)
+        self._set_property('xcalendar', arg, xcalendar)
+        self._set_property('xgap', arg, xgap)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('ybingroup', arg, ybingroup)
+        self._set_property('ybins', arg, ybins)
+        self._set_property('ycalendar', arg, ycalendar)
+        self._set_property('ygap', arg, ygap)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('z', arg, z)
+        self._set_property('zauto', arg, zauto)
+        self._set_property('zhoverformat', arg, zhoverformat)
+        self._set_property('zmax', arg, zmax)
+        self._set_property('zmid', arg, zmid)
+        self._set_property('zmin', arg, zmin)
+        self._set_property('zsmooth', arg, zsmooth)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'histogram2d'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_histogram2dcontour.py b/plotly/graph_objs/_histogram2dcontour.py
index f414c779f31..ca96ab45531 100644
--- a/plotly/graph_objs/_histogram2dcontour.py
+++ b/plotly/graph_objs/_histogram2dcontour.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,75 +11,9 @@
 
 class Histogram2dContour(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "histogram2dcontour"
-    _valid_props = {
-        "autobinx",
-        "autobiny",
-        "autocolorscale",
-        "autocontour",
-        "bingroup",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "contours",
-        "customdata",
-        "customdatasrc",
-        "histfunc",
-        "histnorm",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "marker",
-        "meta",
-        "metasrc",
-        "name",
-        "nbinsx",
-        "nbinsy",
-        "ncontours",
-        "opacity",
-        "reversescale",
-        "showlegend",
-        "showscale",
-        "stream",
-        "textfont",
-        "texttemplate",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-        "x",
-        "xaxis",
-        "xbingroup",
-        "xbins",
-        "xcalendar",
-        "xhoverformat",
-        "xsrc",
-        "y",
-        "yaxis",
-        "ybingroup",
-        "ybins",
-        "ycalendar",
-        "yhoverformat",
-        "ysrc",
-        "z",
-        "zauto",
-        "zhoverformat",
-        "zmax",
-        "zmid",
-        "zmin",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'histogram2dcontour'
+    _valid_props = {"autobinx", "autobiny", "autocolorscale", "autocontour", "bingroup", "coloraxis", "colorbar", "colorscale", "contours", "customdata", "customdatasrc", "histfunc", "histnorm", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "marker", "meta", "metasrc", "name", "nbinsx", "nbinsy", "ncontours", "opacity", "reversescale", "showlegend", "showscale", "stream", "textfont", "texttemplate", "type", "uid", "uirevision", "visible", "x", "xaxis", "xbingroup", "xbins", "xcalendar", "xhoverformat", "xsrc", "y", "yaxis", "ybingroup", "ybins", "ycalendar", "yhoverformat", "ysrc", "z", "zauto", "zhoverformat", "zmax", "zmid", "zmin", "zsrc"}
 
     @property
     def autobinx(self):
@@ -92,11 +30,11 @@ def autobinx(self):
         -------
         bool
         """
-        return self["autobinx"]
+        return self['autobinx']
 
     @autobinx.setter
     def autobinx(self, val):
-        self["autobinx"] = val
+        self['autobinx'] = val
 
     @property
     def autobiny(self):
@@ -113,11 +51,11 @@ def autobiny(self):
         -------
         bool
         """
-        return self["autobiny"]
+        return self['autobiny']
 
     @autobiny.setter
     def autobiny(self, val):
-        self["autobiny"] = val
+        self['autobiny'] = val
 
     @property
     def autocolorscale(self):
@@ -136,11 +74,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def autocontour(self):
@@ -157,11 +95,11 @@ def autocontour(self):
         -------
         bool
         """
-        return self["autocontour"]
+        return self['autocontour']
 
     @autocontour.setter
     def autocontour(self, val):
-        self["autocontour"] = val
+        self['autocontour'] = val
 
     @property
     def bingroup(self):
@@ -178,11 +116,11 @@ def bingroup(self):
         -------
         str
         """
-        return self["bingroup"]
+        return self['bingroup']
 
     @bingroup.setter
     def bingroup(self, val):
-        self["bingroup"] = val
+        self['bingroup'] = val
 
     @property
     def coloraxis(self):
@@ -203,11 +141,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -222,11 +160,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.histogram2dcontour.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -273,11 +211,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def contours(self):
@@ -292,11 +230,11 @@ def contours(self):
         -------
         plotly.graph_objs.histogram2dcontour.Contours
         """
-        return self["contours"]
+        return self['contours']
 
     @contours.setter
     def contours(self, val):
-        self["contours"] = val
+        self['contours'] = val
 
     @property
     def customdata(self):
@@ -313,11 +251,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -332,11 +270,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def histfunc(self):
@@ -356,11 +294,11 @@ def histfunc(self):
         -------
         Any
         """
-        return self["histfunc"]
+        return self['histfunc']
 
     @histfunc.setter
     def histfunc(self, val):
-        self["histfunc"] = val
+        self['histfunc'] = val
 
     @property
     def histnorm(self):
@@ -388,11 +326,11 @@ def histnorm(self):
         -------
         Any
         """
-        return self["histnorm"]
+        return self['histnorm']
 
     @histnorm.setter
     def histnorm(self, val):
-        self["histnorm"] = val
+        self['histnorm'] = val
 
     @property
     def hoverinfo(self):
@@ -412,11 +350,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -431,11 +369,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -450,11 +388,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.histogram2dcontour.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -493,11 +431,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -512,11 +450,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def ids(self):
@@ -532,11 +470,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -550,11 +488,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -573,11 +511,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -594,11 +532,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -613,11 +551,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.histogram2dcontour.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -638,11 +576,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -657,11 +595,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -676,11 +614,11 @@ def line(self):
         -------
         plotly.graph_objs.histogram2dcontour.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def marker(self):
@@ -695,11 +633,11 @@ def marker(self):
         -------
         plotly.graph_objs.histogram2dcontour.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -721,11 +659,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -739,11 +677,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -759,11 +697,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def nbinsx(self):
@@ -781,11 +719,11 @@ def nbinsx(self):
         -------
         int
         """
-        return self["nbinsx"]
+        return self['nbinsx']
 
     @nbinsx.setter
     def nbinsx(self, val):
-        self["nbinsx"] = val
+        self['nbinsx'] = val
 
     @property
     def nbinsy(self):
@@ -803,11 +741,11 @@ def nbinsy(self):
         -------
         int
         """
-        return self["nbinsy"]
+        return self['nbinsy']
 
     @nbinsy.setter
     def nbinsy(self, val):
-        self["nbinsy"] = val
+        self['nbinsy'] = val
 
     @property
     def ncontours(self):
@@ -825,11 +763,11 @@ def ncontours(self):
         -------
         int
         """
-        return self["ncontours"]
+        return self['ncontours']
 
     @ncontours.setter
     def ncontours(self, val):
-        self["ncontours"] = val
+        self['ncontours'] = val
 
     @property
     def opacity(self):
@@ -843,11 +781,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def reversescale(self):
@@ -863,11 +801,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showlegend(self):
@@ -882,11 +820,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showscale(self):
@@ -901,11 +839,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def stream(self):
@@ -920,11 +858,11 @@ def stream(self):
         -------
         plotly.graph_objs.histogram2dcontour.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def textfont(self):
@@ -942,11 +880,11 @@ def textfont(self):
         -------
         plotly.graph_objs.histogram2dcontour.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def texttemplate(self):
@@ -975,11 +913,11 @@ def texttemplate(self):
         -------
         str
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def uid(self):
@@ -995,11 +933,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1026,11 +964,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -1047,11 +985,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -1065,11 +1003,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xaxis(self):
@@ -1088,11 +1026,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def xbingroup(self):
@@ -1111,11 +1049,11 @@ def xbingroup(self):
         -------
         str
         """
-        return self["xbingroup"]
+        return self['xbingroup']
 
     @xbingroup.setter
     def xbingroup(self, val):
-        self["xbingroup"] = val
+        self['xbingroup'] = val
 
     @property
     def xbins(self):
@@ -1130,11 +1068,11 @@ def xbins(self):
         -------
         plotly.graph_objs.histogram2dcontour.XBins
         """
-        return self["xbins"]
+        return self['xbins']
 
     @xbins.setter
     def xbins(self, val):
-        self["xbins"] = val
+        self['xbins'] = val
 
     @property
     def xcalendar(self):
@@ -1152,11 +1090,11 @@ def xcalendar(self):
         -------
         Any
         """
-        return self["xcalendar"]
+        return self['xcalendar']
 
     @xcalendar.setter
     def xcalendar(self, val):
-        self["xcalendar"] = val
+        self['xcalendar'] = val
 
     @property
     def xhoverformat(self):
@@ -1181,11 +1119,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xsrc(self):
@@ -1199,11 +1137,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -1217,11 +1155,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yaxis(self):
@@ -1240,11 +1178,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def ybingroup(self):
@@ -1263,11 +1201,11 @@ def ybingroup(self):
         -------
         str
         """
-        return self["ybingroup"]
+        return self['ybingroup']
 
     @ybingroup.setter
     def ybingroup(self, val):
-        self["ybingroup"] = val
+        self['ybingroup'] = val
 
     @property
     def ybins(self):
@@ -1282,11 +1220,11 @@ def ybins(self):
         -------
         plotly.graph_objs.histogram2dcontour.YBins
         """
-        return self["ybins"]
+        return self['ybins']
 
     @ybins.setter
     def ybins(self, val):
-        self["ybins"] = val
+        self['ybins'] = val
 
     @property
     def ycalendar(self):
@@ -1304,11 +1242,11 @@ def ycalendar(self):
         -------
         Any
         """
-        return self["ycalendar"]
+        return self['ycalendar']
 
     @ycalendar.setter
     def ycalendar(self, val):
-        self["ycalendar"] = val
+        self['ycalendar'] = val
 
     @property
     def yhoverformat(self):
@@ -1333,11 +1271,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def ysrc(self):
@@ -1351,11 +1289,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def z(self):
@@ -1369,11 +1307,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zauto(self):
@@ -1390,11 +1328,11 @@ def zauto(self):
         -------
         bool
         """
-        return self["zauto"]
+        return self['zauto']
 
     @zauto.setter
     def zauto(self, val):
-        self["zauto"] = val
+        self['zauto'] = val
 
     @property
     def zhoverformat(self):
@@ -1413,11 +1351,11 @@ def zhoverformat(self):
         -------
         str
         """
-        return self["zhoverformat"]
+        return self['zhoverformat']
 
     @zhoverformat.setter
     def zhoverformat(self, val):
-        self["zhoverformat"] = val
+        self['zhoverformat'] = val
 
     @property
     def zmax(self):
@@ -1432,11 +1370,11 @@ def zmax(self):
         -------
         int|float
         """
-        return self["zmax"]
+        return self['zmax']
 
     @zmax.setter
     def zmax(self, val):
-        self["zmax"] = val
+        self['zmax'] = val
 
     @property
     def zmid(self):
@@ -1452,11 +1390,11 @@ def zmid(self):
         -------
         int|float
         """
-        return self["zmid"]
+        return self['zmid']
 
     @zmid.setter
     def zmid(self, val):
-        self["zmid"] = val
+        self['zmid'] = val
 
     @property
     def zmin(self):
@@ -1471,11 +1409,11 @@ def zmin(self):
         -------
         int|float
         """
-        return self["zmin"]
+        return self['zmin']
 
     @zmin.setter
     def zmin(self, val):
-        self["zmin"] = val
+        self['zmin'] = val
 
     @property
     def zsrc(self):
@@ -1489,15 +1427,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1872,76 +1810,74 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autobinx=None,
-        autobiny=None,
-        autocolorscale=None,
-        autocontour=None,
-        bingroup=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        contours=None,
-        customdata=None,
-        customdatasrc=None,
-        histfunc=None,
-        histnorm=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        nbinsx=None,
-        nbinsy=None,
-        ncontours=None,
-        opacity=None,
-        reversescale=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        textfont=None,
-        texttemplate=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xaxis=None,
-        xbingroup=None,
-        xbins=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yaxis=None,
-        ybingroup=None,
-        ybins=None,
-        ycalendar=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zauto=None,
-        zhoverformat=None,
-        zmax=None,
-        zmid=None,
-        zmin=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autobinx=None,
+            autobiny=None,
+            autocolorscale=None,
+            autocontour=None,
+            bingroup=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            contours=None,
+            customdata=None,
+            customdatasrc=None,
+            histfunc=None,
+            histnorm=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            nbinsx=None,
+            nbinsy=None,
+            ncontours=None,
+            opacity=None,
+            reversescale=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            textfont=None,
+            texttemplate=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xaxis=None,
+            xbingroup=None,
+            xbins=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yaxis=None,
+            ybingroup=None,
+            ybins=None,
+            ycalendar=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zauto=None,
+            zhoverformat=None,
+            zmax=None,
+            zmid=None,
+            zmin=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Histogram2dContour object
 
@@ -2332,9 +2268,9 @@ def __init__(
         -------
         Histogram2dContour
         """
-        super().__init__("histogram2dcontour")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('histogram2dcontour')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2344,82 +2280,83 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Histogram2dContour
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Histogram2dContour`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autobinx", arg, autobinx)
-        self._set_property("autobiny", arg, autobiny)
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("autocontour", arg, autocontour)
-        self._set_property("bingroup", arg, bingroup)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("contours", arg, contours)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("histfunc", arg, histfunc)
-        self._set_property("histnorm", arg, histnorm)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("nbinsx", arg, nbinsx)
-        self._set_property("nbinsy", arg, nbinsy)
-        self._set_property("ncontours", arg, ncontours)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("stream", arg, stream)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("xbingroup", arg, xbingroup)
-        self._set_property("xbins", arg, xbins)
-        self._set_property("xcalendar", arg, xcalendar)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("ybingroup", arg, ybingroup)
-        self._set_property("ybins", arg, ybins)
-        self._set_property("ycalendar", arg, ycalendar)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("z", arg, z)
-        self._set_property("zauto", arg, zauto)
-        self._set_property("zhoverformat", arg, zhoverformat)
-        self._set_property("zmax", arg, zmax)
-        self._set_property("zmid", arg, zmid)
-        self._set_property("zmin", arg, zmin)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "histogram2dcontour"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Histogram2dContour`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autobinx', arg, autobinx)
+        self._set_property('autobiny', arg, autobiny)
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('autocontour', arg, autocontour)
+        self._set_property('bingroup', arg, bingroup)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('contours', arg, contours)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('histfunc', arg, histfunc)
+        self._set_property('histnorm', arg, histnorm)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('nbinsx', arg, nbinsx)
+        self._set_property('nbinsy', arg, nbinsy)
+        self._set_property('ncontours', arg, ncontours)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('stream', arg, stream)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('xbingroup', arg, xbingroup)
+        self._set_property('xbins', arg, xbins)
+        self._set_property('xcalendar', arg, xcalendar)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('ybingroup', arg, ybingroup)
+        self._set_property('ybins', arg, ybins)
+        self._set_property('ycalendar', arg, ycalendar)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('z', arg, z)
+        self._set_property('zauto', arg, zauto)
+        self._set_property('zhoverformat', arg, zhoverformat)
+        self._set_property('zmax', arg, zmax)
+        self._set_property('zmid', arg, zmid)
+        self._set_property('zmin', arg, zmin)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'histogram2dcontour'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_icicle.py b/plotly/graph_objs/_icicle.py
index 6ffce7d2f2b..870f190d430 100644
--- a/plotly/graph_objs/_icicle.py
+++ b/plotly/graph_objs/_icicle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,60 +11,9 @@
 
 class Icicle(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "icicle"
-    _valid_props = {
-        "branchvalues",
-        "count",
-        "customdata",
-        "customdatasrc",
-        "domain",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "insidetextfont",
-        "labels",
-        "labelssrc",
-        "leaf",
-        "legend",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "level",
-        "marker",
-        "maxdepth",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "outsidetextfont",
-        "parents",
-        "parentssrc",
-        "pathbar",
-        "root",
-        "sort",
-        "stream",
-        "text",
-        "textfont",
-        "textinfo",
-        "textposition",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "tiling",
-        "type",
-        "uid",
-        "uirevision",
-        "values",
-        "valuessrc",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'icicle'
+    _valid_props = {"branchvalues", "count", "customdata", "customdatasrc", "domain", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "insidetextfont", "labels", "labelssrc", "leaf", "legend", "legendgrouptitle", "legendrank", "legendwidth", "level", "marker", "maxdepth", "meta", "metasrc", "name", "opacity", "outsidetextfont", "parents", "parentssrc", "pathbar", "root", "sort", "stream", "text", "textfont", "textinfo", "textposition", "textsrc", "texttemplate", "texttemplatesrc", "tiling", "type", "uid", "uirevision", "values", "valuessrc", "visible"}
 
     @property
     def branchvalues(self):
@@ -80,11 +33,11 @@ def branchvalues(self):
         -------
         Any
         """
-        return self["branchvalues"]
+        return self['branchvalues']
 
     @branchvalues.setter
     def branchvalues(self, val):
-        self["branchvalues"] = val
+        self['branchvalues'] = val
 
     @property
     def count(self):
@@ -102,11 +55,11 @@ def count(self):
         -------
         Any
         """
-        return self["count"]
+        return self['count']
 
     @count.setter
     def count(self, val):
-        self["count"] = val
+        self['count'] = val
 
     @property
     def customdata(self):
@@ -123,11 +76,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -142,11 +95,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def domain(self):
@@ -161,11 +114,11 @@ def domain(self):
         -------
         plotly.graph_objs.icicle.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def hoverinfo(self):
@@ -185,11 +138,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -204,11 +157,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -223,11 +176,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.icicle.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -268,11 +221,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -287,11 +240,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -311,11 +264,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -330,11 +283,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -350,11 +303,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -368,11 +321,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def insidetextfont(self):
@@ -389,11 +342,11 @@ def insidetextfont(self):
         -------
         plotly.graph_objs.icicle.Insidetextfont
         """
-        return self["insidetextfont"]
+        return self['insidetextfont']
 
     @insidetextfont.setter
     def insidetextfont(self, val):
-        self["insidetextfont"] = val
+        self['insidetextfont'] = val
 
     @property
     def labels(self):
@@ -407,11 +360,11 @@ def labels(self):
         -------
         numpy.ndarray
         """
-        return self["labels"]
+        return self['labels']
 
     @labels.setter
     def labels(self, val):
-        self["labels"] = val
+        self['labels'] = val
 
     @property
     def labelssrc(self):
@@ -425,11 +378,11 @@ def labelssrc(self):
         -------
         str
         """
-        return self["labelssrc"]
+        return self['labelssrc']
 
     @labelssrc.setter
     def labelssrc(self, val):
-        self["labelssrc"] = val
+        self['labelssrc'] = val
 
     @property
     def leaf(self):
@@ -444,11 +397,11 @@ def leaf(self):
         -------
         plotly.graph_objs.icicle.Leaf
         """
-        return self["leaf"]
+        return self['leaf']
 
     @leaf.setter
     def leaf(self, val):
-        self["leaf"] = val
+        self['leaf'] = val
 
     @property
     def legend(self):
@@ -467,11 +420,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgrouptitle(self):
@@ -486,11 +439,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.icicle.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -511,11 +464,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -530,11 +483,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def level(self):
@@ -550,11 +503,11 @@ def level(self):
         -------
         Any
         """
-        return self["level"]
+        return self['level']
 
     @level.setter
     def level(self, val):
-        self["level"] = val
+        self['level'] = val
 
     @property
     def marker(self):
@@ -569,11 +522,11 @@ def marker(self):
         -------
         plotly.graph_objs.icicle.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def maxdepth(self):
@@ -588,11 +541,11 @@ def maxdepth(self):
         -------
         int
         """
-        return self["maxdepth"]
+        return self['maxdepth']
 
     @maxdepth.setter
     def maxdepth(self, val):
-        self["maxdepth"] = val
+        self['maxdepth'] = val
 
     @property
     def meta(self):
@@ -614,11 +567,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -632,11 +585,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -652,11 +605,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -670,11 +623,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def outsidetextfont(self):
@@ -695,11 +648,11 @@ def outsidetextfont(self):
         -------
         plotly.graph_objs.icicle.Outsidetextfont
         """
-        return self["outsidetextfont"]
+        return self['outsidetextfont']
 
     @outsidetextfont.setter
     def outsidetextfont(self, val):
-        self["outsidetextfont"] = val
+        self['outsidetextfont'] = val
 
     @property
     def parents(self):
@@ -718,11 +671,11 @@ def parents(self):
         -------
         numpy.ndarray
         """
-        return self["parents"]
+        return self['parents']
 
     @parents.setter
     def parents(self, val):
-        self["parents"] = val
+        self['parents'] = val
 
     @property
     def parentssrc(self):
@@ -736,11 +689,11 @@ def parentssrc(self):
         -------
         str
         """
-        return self["parentssrc"]
+        return self['parentssrc']
 
     @parentssrc.setter
     def parentssrc(self, val):
-        self["parentssrc"] = val
+        self['parentssrc'] = val
 
     @property
     def pathbar(self):
@@ -755,11 +708,11 @@ def pathbar(self):
         -------
         plotly.graph_objs.icicle.Pathbar
         """
-        return self["pathbar"]
+        return self['pathbar']
 
     @pathbar.setter
     def pathbar(self, val):
-        self["pathbar"] = val
+        self['pathbar'] = val
 
     @property
     def root(self):
@@ -774,11 +727,11 @@ def root(self):
         -------
         plotly.graph_objs.icicle.Root
         """
-        return self["root"]
+        return self['root']
 
     @root.setter
     def root(self, val):
-        self["root"] = val
+        self['root'] = val
 
     @property
     def sort(self):
@@ -793,11 +746,11 @@ def sort(self):
         -------
         bool
         """
-        return self["sort"]
+        return self['sort']
 
     @sort.setter
     def sort(self, val):
-        self["sort"] = val
+        self['sort'] = val
 
     @property
     def stream(self):
@@ -812,11 +765,11 @@ def stream(self):
         -------
         plotly.graph_objs.icicle.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -834,11 +787,11 @@ def text(self):
         -------
         numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -855,11 +808,11 @@ def textfont(self):
         -------
         plotly.graph_objs.icicle.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textinfo(self):
@@ -876,11 +829,11 @@ def textinfo(self):
         -------
         Any
         """
-        return self["textinfo"]
+        return self['textinfo']
 
     @textinfo.setter
     def textinfo(self, val):
-        self["textinfo"] = val
+        self['textinfo'] = val
 
     @property
     def textposition(self):
@@ -897,11 +850,11 @@ def textposition(self):
         -------
         Any
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textsrc(self):
@@ -915,11 +868,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -949,11 +902,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -968,11 +921,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def tiling(self):
@@ -987,11 +940,11 @@ def tiling(self):
         -------
         plotly.graph_objs.icicle.Tiling
         """
-        return self["tiling"]
+        return self['tiling']
 
     @tiling.setter
     def tiling(self, val):
-        self["tiling"] = val
+        self['tiling'] = val
 
     @property
     def uid(self):
@@ -1007,11 +960,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1038,11 +991,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def values(self):
@@ -1057,11 +1010,11 @@ def values(self):
         -------
         numpy.ndarray
         """
-        return self["values"]
+        return self['values']
 
     @values.setter
     def values(self, val):
-        self["values"] = val
+        self['values'] = val
 
     @property
     def valuessrc(self):
@@ -1075,11 +1028,11 @@ def valuessrc(self):
         -------
         str
         """
-        return self["valuessrc"]
+        return self['valuessrc']
 
     @valuessrc.setter
     def valuessrc(self, val):
-        self["valuessrc"] = val
+        self['valuessrc'] = val
 
     @property
     def visible(self):
@@ -1096,15 +1049,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1364,61 +1317,59 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        branchvalues=None,
-        count=None,
-        customdata=None,
-        customdatasrc=None,
-        domain=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextfont=None,
-        labels=None,
-        labelssrc=None,
-        leaf=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        level=None,
-        marker=None,
-        maxdepth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        outsidetextfont=None,
-        parents=None,
-        parentssrc=None,
-        pathbar=None,
-        root=None,
-        sort=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        tiling=None,
-        uid=None,
-        uirevision=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            branchvalues=None,
+            count=None,
+            customdata=None,
+            customdatasrc=None,
+            domain=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextfont=None,
+            labels=None,
+            labelssrc=None,
+            leaf=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            level=None,
+            marker=None,
+            maxdepth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            outsidetextfont=None,
+            parents=None,
+            parentssrc=None,
+            pathbar=None,
+            root=None,
+            sort=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            tiling=None,
+            uid=None,
+            uirevision=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Icicle object
 
@@ -1690,9 +1641,9 @@ def __init__(
         -------
         Icicle
         """
-        super().__init__("icicle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('icicle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1702,67 +1653,68 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Icicle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Icicle`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("branchvalues", arg, branchvalues)
-        self._set_property("count", arg, count)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("domain", arg, domain)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("insidetextfont", arg, insidetextfont)
-        self._set_property("labels", arg, labels)
-        self._set_property("labelssrc", arg, labelssrc)
-        self._set_property("leaf", arg, leaf)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("level", arg, level)
-        self._set_property("marker", arg, marker)
-        self._set_property("maxdepth", arg, maxdepth)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("outsidetextfont", arg, outsidetextfont)
-        self._set_property("parents", arg, parents)
-        self._set_property("parentssrc", arg, parentssrc)
-        self._set_property("pathbar", arg, pathbar)
-        self._set_property("root", arg, root)
-        self._set_property("sort", arg, sort)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textinfo", arg, textinfo)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("tiling", arg, tiling)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("values", arg, values)
-        self._set_property("valuessrc", arg, valuessrc)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "icicle"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Icicle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('branchvalues', arg, branchvalues)
+        self._set_property('count', arg, count)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('domain', arg, domain)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('insidetextfont', arg, insidetextfont)
+        self._set_property('labels', arg, labels)
+        self._set_property('labelssrc', arg, labelssrc)
+        self._set_property('leaf', arg, leaf)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('level', arg, level)
+        self._set_property('marker', arg, marker)
+        self._set_property('maxdepth', arg, maxdepth)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('outsidetextfont', arg, outsidetextfont)
+        self._set_property('parents', arg, parents)
+        self._set_property('parentssrc', arg, parentssrc)
+        self._set_property('pathbar', arg, pathbar)
+        self._set_property('root', arg, root)
+        self._set_property('sort', arg, sort)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textinfo', arg, textinfo)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('tiling', arg, tiling)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('values', arg, values)
+        self._set_property('valuessrc', arg, valuessrc)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'icicle'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_image.py b/plotly/graph_objs/_image.py
index f1da17bc24a..cbc04aa160c 100644
--- a/plotly/graph_objs/_image.py
+++ b/plotly/graph_objs/_image.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,50 +11,9 @@
 
 class Image(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "image"
-    _valid_props = {
-        "colormodel",
-        "customdata",
-        "customdatasrc",
-        "dx",
-        "dy",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "source",
-        "stream",
-        "text",
-        "textsrc",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-        "x0",
-        "xaxis",
-        "y0",
-        "yaxis",
-        "z",
-        "zmax",
-        "zmin",
-        "zorder",
-        "zsmooth",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'image'
+    _valid_props = {"colormodel", "customdata", "customdatasrc", "dx", "dy", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgrouptitle", "legendrank", "legendwidth", "meta", "metasrc", "name", "opacity", "source", "stream", "text", "textsrc", "type", "uid", "uirevision", "visible", "x0", "xaxis", "y0", "yaxis", "z", "zmax", "zmin", "zorder", "zsmooth", "zsrc"}
 
     @property
     def colormodel(self):
@@ -68,11 +31,11 @@ def colormodel(self):
         -------
         Any
         """
-        return self["colormodel"]
+        return self['colormodel']
 
     @colormodel.setter
     def colormodel(self, val):
-        self["colormodel"] = val
+        self['colormodel'] = val
 
     @property
     def customdata(self):
@@ -89,11 +52,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -108,11 +71,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def dx(self):
@@ -126,11 +89,11 @@ def dx(self):
         -------
         int|float
         """
-        return self["dx"]
+        return self['dx']
 
     @dx.setter
     def dx(self, val):
-        self["dx"] = val
+        self['dx'] = val
 
     @property
     def dy(self):
@@ -144,11 +107,11 @@ def dy(self):
         -------
         int|float
         """
-        return self["dy"]
+        return self['dy']
 
     @dy.setter
     def dy(self, val):
-        self["dy"] = val
+        self['dy'] = val
 
     @property
     def hoverinfo(self):
@@ -168,11 +131,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -187,11 +150,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -206,11 +169,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.image.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -250,11 +213,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -269,11 +232,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -287,11 +250,11 @@ def hovertext(self):
         -------
         numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -306,11 +269,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -326,11 +289,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -344,11 +307,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -367,11 +330,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgrouptitle(self):
@@ -386,11 +349,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.image.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -411,11 +374,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -430,11 +393,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def meta(self):
@@ -456,11 +419,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -474,11 +437,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -494,11 +457,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -512,11 +475,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def source(self):
@@ -532,11 +495,11 @@ def source(self):
         -------
         str
         """
-        return self["source"]
+        return self['source']
 
     @source.setter
     def source(self, val):
-        self["source"] = val
+        self['source'] = val
 
     @property
     def stream(self):
@@ -551,11 +514,11 @@ def stream(self):
         -------
         plotly.graph_objs.image.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -569,11 +532,11 @@ def text(self):
         -------
         numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -587,11 +550,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def uid(self):
@@ -607,11 +570,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -638,11 +601,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -659,11 +622,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x0(self):
@@ -678,11 +641,11 @@ def x0(self):
         -------
         Any
         """
-        return self["x0"]
+        return self['x0']
 
     @x0.setter
     def x0(self, val):
-        self["x0"] = val
+        self['x0'] = val
 
     @property
     def xaxis(self):
@@ -701,11 +664,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def y0(self):
@@ -723,11 +686,11 @@ def y0(self):
         -------
         Any
         """
-        return self["y0"]
+        return self['y0']
 
     @y0.setter
     def y0(self, val):
-        self["y0"] = val
+        self['y0'] = val
 
     @property
     def yaxis(self):
@@ -746,11 +709,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def z(self):
@@ -765,76 +728,76 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zmax(self):
         """
-            Array defining the higher bound for each color component. Note
-            that the default value will depend on the colormodel. For the
-            `rgb` colormodel, it is [255, 255, 255]. For the `rgba`
-            colormodel, it is [255, 255, 255, 1]. For the `rgba256`
-            colormodel, it is [255, 255, 255, 255]. For the `hsl`
-            colormodel, it is [360, 100, 100]. For the `hsla` colormodel,
-            it is [360, 100, 100, 1].
-
-            The 'zmax' property is an info array that may be specified as:
-
-            * a list or tuple of 4 elements where:
-        (0) The 'zmax[0]' property is a number and may be specified as:
-              - An int or float
-        (1) The 'zmax[1]' property is a number and may be specified as:
-              - An int or float
-        (2) The 'zmax[2]' property is a number and may be specified as:
-              - An int or float
-        (3) The 'zmax[3]' property is a number and may be specified as:
-              - An int or float
+        Array defining the higher bound for each color component. Note
+        that the default value will depend on the colormodel. For the
+        `rgb` colormodel, it is [255, 255, 255]. For the `rgba`
+        colormodel, it is [255, 255, 255, 1]. For the `rgba256`
+        colormodel, it is [255, 255, 255, 255]. For the `hsl`
+        colormodel, it is [360, 100, 100]. For the `hsla` colormodel,
+        it is [360, 100, 100, 1].
+
+        The 'zmax' property is an info array that may be specified as:
+    
+        * a list or tuple of 4 elements where:
+    (0) The 'zmax[0]' property is a number and may be specified as:
+          - An int or float
+    (1) The 'zmax[1]' property is a number and may be specified as:
+          - An int or float
+    (2) The 'zmax[2]' property is a number and may be specified as:
+          - An int or float
+    (3) The 'zmax[3]' property is a number and may be specified as:
+          - An int or float
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["zmax"]
+        return self['zmax']
 
     @zmax.setter
     def zmax(self, val):
-        self["zmax"] = val
+        self['zmax'] = val
 
     @property
     def zmin(self):
         """
-            Array defining the lower bound for each color component. Note
-            that the default value will depend on the colormodel. For the
-            `rgb` colormodel, it is [0, 0, 0]. For the `rgba` colormodel,
-            it is [0, 0, 0, 0]. For the `rgba256` colormodel, it is [0, 0,
-            0, 0]. For the `hsl` colormodel, it is [0, 0, 0]. For the
-            `hsla` colormodel, it is [0, 0, 0, 0].
-
-            The 'zmin' property is an info array that may be specified as:
-
-            * a list or tuple of 4 elements where:
-        (0) The 'zmin[0]' property is a number and may be specified as:
-              - An int or float
-        (1) The 'zmin[1]' property is a number and may be specified as:
-              - An int or float
-        (2) The 'zmin[2]' property is a number and may be specified as:
-              - An int or float
-        (3) The 'zmin[3]' property is a number and may be specified as:
-              - An int or float
+        Array defining the lower bound for each color component. Note
+        that the default value will depend on the colormodel. For the
+        `rgb` colormodel, it is [0, 0, 0]. For the `rgba` colormodel,
+        it is [0, 0, 0, 0]. For the `rgba256` colormodel, it is [0, 0,
+        0, 0]. For the `hsl` colormodel, it is [0, 0, 0]. For the
+        `hsla` colormodel, it is [0, 0, 0, 0].
+
+        The 'zmin' property is an info array that may be specified as:
+    
+        * a list or tuple of 4 elements where:
+    (0) The 'zmin[0]' property is a number and may be specified as:
+          - An int or float
+    (1) The 'zmin[1]' property is a number and may be specified as:
+          - An int or float
+    (2) The 'zmin[2]' property is a number and may be specified as:
+          - An int or float
+    (3) The 'zmin[3]' property is a number and may be specified as:
+          - An int or float
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["zmin"]
+        return self['zmin']
 
     @zmin.setter
     def zmin(self, val):
-        self["zmin"] = val
+        self['zmin'] = val
 
     @property
     def zorder(self):
@@ -850,11 +813,11 @@ def zorder(self):
         -------
         int
         """
-        return self["zorder"]
+        return self['zorder']
 
     @zorder.setter
     def zorder(self, val):
-        self["zorder"] = val
+        self['zorder'] = val
 
     @property
     def zsmooth(self):
@@ -870,11 +833,11 @@ def zsmooth(self):
         -------
         Any
         """
-        return self["zsmooth"]
+        return self['zsmooth']
 
     @zsmooth.setter
     def zsmooth(self, val):
-        self["zsmooth"] = val
+        self['zsmooth'] = val
 
     @property
     def zsrc(self):
@@ -888,15 +851,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1113,51 +1076,49 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        colormodel=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        source=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x0=None,
-        xaxis=None,
-        y0=None,
-        yaxis=None,
-        z=None,
-        zmax=None,
-        zmin=None,
-        zorder=None,
-        zsmooth=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            colormodel=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            source=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x0=None,
+            xaxis=None,
+            y0=None,
+            yaxis=None,
+            z=None,
+            zmax=None,
+            zmin=None,
+            zorder=None,
+            zsmooth=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Image object
 
@@ -1389,9 +1350,9 @@ def __init__(
         -------
         Image
         """
-        super().__init__("image")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('image')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1401,57 +1362,58 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Image
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Image`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("colormodel", arg, colormodel)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("dx", arg, dx)
-        self._set_property("dy", arg, dy)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("source", arg, source)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("x0", arg, x0)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("y0", arg, y0)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("z", arg, z)
-        self._set_property("zmax", arg, zmax)
-        self._set_property("zmin", arg, zmin)
-        self._set_property("zorder", arg, zorder)
-        self._set_property("zsmooth", arg, zsmooth)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "image"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Image`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('colormodel', arg, colormodel)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('dx', arg, dx)
+        self._set_property('dy', arg, dy)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('source', arg, source)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('x0', arg, x0)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('y0', arg, y0)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('z', arg, z)
+        self._set_property('zmax', arg, zmax)
+        self._set_property('zmin', arg, zmin)
+        self._set_property('zorder', arg, zorder)
+        self._set_property('zsmooth', arg, zsmooth)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'image'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_indicator.py b/plotly/graph_objs/_indicator.py
index e7bc8edb2a7..5625a7af854 100644
--- a/plotly/graph_objs/_indicator.py
+++ b/plotly/graph_objs/_indicator.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,34 +11,9 @@
 
 class Indicator(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "indicator"
-    _valid_props = {
-        "align",
-        "customdata",
-        "customdatasrc",
-        "delta",
-        "domain",
-        "gauge",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "meta",
-        "metasrc",
-        "mode",
-        "name",
-        "number",
-        "stream",
-        "title",
-        "type",
-        "uid",
-        "uirevision",
-        "value",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'indicator'
+    _valid_props = {"align", "customdata", "customdatasrc", "delta", "domain", "gauge", "ids", "idssrc", "legend", "legendgrouptitle", "legendrank", "legendwidth", "meta", "metasrc", "mode", "name", "number", "stream", "title", "type", "uid", "uirevision", "value", "visible"}
 
     @property
     def align(self):
@@ -51,11 +30,11 @@ def align(self):
         -------
         Any
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def customdata(self):
@@ -72,11 +51,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -91,11 +70,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def delta(self):
@@ -110,11 +89,11 @@ def delta(self):
         -------
         plotly.graph_objs.indicator.Delta
         """
-        return self["delta"]
+        return self['delta']
 
     @delta.setter
     def delta(self, val):
-        self["delta"] = val
+        self['delta'] = val
 
     @property
     def domain(self):
@@ -129,11 +108,11 @@ def domain(self):
         -------
         plotly.graph_objs.indicator.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def gauge(self):
@@ -150,11 +129,11 @@ def gauge(self):
         -------
         plotly.graph_objs.indicator.Gauge
         """
-        return self["gauge"]
+        return self['gauge']
 
     @gauge.setter
     def gauge(self, val):
-        self["gauge"] = val
+        self['gauge'] = val
 
     @property
     def ids(self):
@@ -170,11 +149,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -188,11 +167,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -211,11 +190,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgrouptitle(self):
@@ -230,11 +209,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.indicator.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -255,11 +234,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -274,11 +253,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def meta(self):
@@ -300,11 +279,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -318,11 +297,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def mode(self):
@@ -341,11 +320,11 @@ def mode(self):
         -------
         Any
         """
-        return self["mode"]
+        return self['mode']
 
     @mode.setter
     def mode(self, val):
-        self["mode"] = val
+        self['mode'] = val
 
     @property
     def name(self):
@@ -361,11 +340,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def number(self):
@@ -380,11 +359,11 @@ def number(self):
         -------
         plotly.graph_objs.indicator.Number
         """
-        return self["number"]
+        return self['number']
 
     @number.setter
     def number(self, val):
-        self["number"] = val
+        self['number'] = val
 
     @property
     def stream(self):
@@ -399,11 +378,11 @@ def stream(self):
         -------
         plotly.graph_objs.indicator.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def title(self):
@@ -418,11 +397,11 @@ def title(self):
         -------
         plotly.graph_objs.indicator.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def uid(self):
@@ -438,11 +417,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -469,11 +448,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def value(self):
@@ -487,11 +466,11 @@ def value(self):
         -------
         int|float
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def visible(self):
@@ -508,15 +487,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -636,35 +615,33 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        customdata=None,
-        customdatasrc=None,
-        delta=None,
-        domain=None,
-        gauge=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        number=None,
-        stream=None,
-        title=None,
-        uid=None,
-        uirevision=None,
-        value=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            customdata=None,
+            customdatasrc=None,
+            delta=None,
+            domain=None,
+            gauge=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            number=None,
+            stream=None,
+            title=None,
+            uid=None,
+            uirevision=None,
+            value=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Indicator object
 
@@ -799,9 +776,9 @@ def __init__(
         -------
         Indicator
         """
-        super().__init__("indicator")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('indicator')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -811,41 +788,42 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Indicator
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Indicator`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("delta", arg, delta)
-        self._set_property("domain", arg, domain)
-        self._set_property("gauge", arg, gauge)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("mode", arg, mode)
-        self._set_property("name", arg, name)
-        self._set_property("number", arg, number)
-        self._set_property("stream", arg, stream)
-        self._set_property("title", arg, title)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("value", arg, value)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "indicator"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Indicator`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('delta', arg, delta)
+        self._set_property('domain', arg, domain)
+        self._set_property('gauge', arg, gauge)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('mode', arg, mode)
+        self._set_property('name', arg, name)
+        self._set_property('number', arg, number)
+        self._set_property('stream', arg, stream)
+        self._set_property('title', arg, title)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('value', arg, value)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'indicator'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_isosurface.py b/plotly/graph_objs/_isosurface.py
index 9688ad9fad7..3e6c8ba75f0 100644
--- a/plotly/graph_objs/_isosurface.py
+++ b/plotly/graph_objs/_isosurface.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,71 +11,9 @@
 
 class Isosurface(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "isosurface"
-    _valid_props = {
-        "autocolorscale",
-        "caps",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "contour",
-        "customdata",
-        "customdatasrc",
-        "flatshading",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "isomax",
-        "isomin",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "lighting",
-        "lightposition",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "reversescale",
-        "scene",
-        "showlegend",
-        "showscale",
-        "slices",
-        "spaceframe",
-        "stream",
-        "surface",
-        "text",
-        "textsrc",
-        "type",
-        "uid",
-        "uirevision",
-        "value",
-        "valuehoverformat",
-        "valuesrc",
-        "visible",
-        "x",
-        "xhoverformat",
-        "xsrc",
-        "y",
-        "yhoverformat",
-        "ysrc",
-        "z",
-        "zhoverformat",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'isosurface'
+    _valid_props = {"autocolorscale", "caps", "cauto", "cmax", "cmid", "cmin", "coloraxis", "colorbar", "colorscale", "contour", "customdata", "customdatasrc", "flatshading", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "isomax", "isomin", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "lighting", "lightposition", "meta", "metasrc", "name", "opacity", "reversescale", "scene", "showlegend", "showscale", "slices", "spaceframe", "stream", "surface", "text", "textsrc", "type", "uid", "uirevision", "value", "valuehoverformat", "valuesrc", "visible", "x", "xhoverformat", "xsrc", "y", "yhoverformat", "ysrc", "z", "zhoverformat", "zsrc"}
 
     @property
     def autocolorscale(self):
@@ -90,11 +32,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def caps(self):
@@ -109,11 +51,11 @@ def caps(self):
         -------
         plotly.graph_objs.isosurface.Caps
         """
-        return self["caps"]
+        return self['caps']
 
     @caps.setter
     def caps(self, val):
-        self["caps"] = val
+        self['caps'] = val
 
     @property
     def cauto(self):
@@ -130,11 +72,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -149,11 +91,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -169,11 +111,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -188,11 +130,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def coloraxis(self):
@@ -213,11 +155,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -232,11 +174,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.isosurface.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -283,11 +225,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def contour(self):
@@ -302,11 +244,11 @@ def contour(self):
         -------
         plotly.graph_objs.isosurface.Contour
         """
-        return self["contour"]
+        return self['contour']
 
     @contour.setter
     def contour(self, val):
-        self["contour"] = val
+        self['contour'] = val
 
     @property
     def customdata(self):
@@ -323,11 +265,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -342,11 +284,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def flatshading(self):
@@ -362,11 +304,11 @@ def flatshading(self):
         -------
         bool
         """
-        return self["flatshading"]
+        return self['flatshading']
 
     @flatshading.setter
     def flatshading(self, val):
-        self["flatshading"] = val
+        self['flatshading'] = val
 
     @property
     def hoverinfo(self):
@@ -386,11 +328,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -405,11 +347,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -424,11 +366,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.isosurface.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -466,11 +408,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -485,11 +427,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -505,11 +447,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -524,11 +466,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -544,11 +486,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -562,11 +504,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def isomax(self):
@@ -580,11 +522,11 @@ def isomax(self):
         -------
         int|float
         """
-        return self["isomax"]
+        return self['isomax']
 
     @isomax.setter
     def isomax(self, val):
-        self["isomax"] = val
+        self['isomax'] = val
 
     @property
     def isomin(self):
@@ -598,11 +540,11 @@ def isomin(self):
         -------
         int|float
         """
-        return self["isomin"]
+        return self['isomin']
 
     @isomin.setter
     def isomin(self, val):
-        self["isomin"] = val
+        self['isomin'] = val
 
     @property
     def legend(self):
@@ -621,11 +563,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -642,11 +584,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -661,11 +603,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.isosurface.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -686,11 +628,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -705,11 +647,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def lighting(self):
@@ -724,11 +666,11 @@ def lighting(self):
         -------
         plotly.graph_objs.isosurface.Lighting
         """
-        return self["lighting"]
+        return self['lighting']
 
     @lighting.setter
     def lighting(self, val):
-        self["lighting"] = val
+        self['lighting'] = val
 
     @property
     def lightposition(self):
@@ -743,11 +685,11 @@ def lightposition(self):
         -------
         plotly.graph_objs.isosurface.Lightposition
         """
-        return self["lightposition"]
+        return self['lightposition']
 
     @lightposition.setter
     def lightposition(self, val):
-        self["lightposition"] = val
+        self['lightposition'] = val
 
     @property
     def meta(self):
@@ -769,11 +711,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -787,11 +729,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -807,11 +749,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -830,11 +772,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def reversescale(self):
@@ -850,11 +792,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def scene(self):
@@ -873,11 +815,11 @@ def scene(self):
         -------
         str
         """
-        return self["scene"]
+        return self['scene']
 
     @scene.setter
     def scene(self, val):
-        self["scene"] = val
+        self['scene'] = val
 
     @property
     def showlegend(self):
@@ -892,11 +834,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showscale(self):
@@ -911,11 +853,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def slices(self):
@@ -930,11 +872,11 @@ def slices(self):
         -------
         plotly.graph_objs.isosurface.Slices
         """
-        return self["slices"]
+        return self['slices']
 
     @slices.setter
     def slices(self, val):
-        self["slices"] = val
+        self['slices'] = val
 
     @property
     def spaceframe(self):
@@ -949,11 +891,11 @@ def spaceframe(self):
         -------
         plotly.graph_objs.isosurface.Spaceframe
         """
-        return self["spaceframe"]
+        return self['spaceframe']
 
     @spaceframe.setter
     def spaceframe(self, val):
-        self["spaceframe"] = val
+        self['spaceframe'] = val
 
     @property
     def stream(self):
@@ -968,11 +910,11 @@ def stream(self):
         -------
         plotly.graph_objs.isosurface.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def surface(self):
@@ -987,11 +929,11 @@ def surface(self):
         -------
         plotly.graph_objs.isosurface.Surface
         """
-        return self["surface"]
+        return self['surface']
 
     @surface.setter
     def surface(self, val):
-        self["surface"] = val
+        self['surface'] = val
 
     @property
     def text(self):
@@ -1009,11 +951,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -1027,11 +969,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def uid(self):
@@ -1047,11 +989,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1078,11 +1020,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def value(self):
@@ -1096,11 +1038,11 @@ def value(self):
         -------
         numpy.ndarray
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def valuehoverformat(self):
@@ -1119,11 +1061,11 @@ def valuehoverformat(self):
         -------
         str
         """
-        return self["valuehoverformat"]
+        return self['valuehoverformat']
 
     @valuehoverformat.setter
     def valuehoverformat(self, val):
-        self["valuehoverformat"] = val
+        self['valuehoverformat'] = val
 
     @property
     def valuesrc(self):
@@ -1137,11 +1079,11 @@ def valuesrc(self):
         -------
         str
         """
-        return self["valuesrc"]
+        return self['valuesrc']
 
     @valuesrc.setter
     def valuesrc(self, val):
-        self["valuesrc"] = val
+        self['valuesrc'] = val
 
     @property
     def visible(self):
@@ -1158,11 +1100,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -1176,11 +1118,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xhoverformat(self):
@@ -1205,11 +1147,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xsrc(self):
@@ -1223,11 +1165,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -1241,11 +1183,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yhoverformat(self):
@@ -1270,11 +1212,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def ysrc(self):
@@ -1288,11 +1230,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def z(self):
@@ -1306,11 +1248,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zhoverformat(self):
@@ -1335,11 +1277,11 @@ def zhoverformat(self):
         -------
         str
         """
-        return self["zhoverformat"]
+        return self['zhoverformat']
 
     @zhoverformat.setter
     def zhoverformat(self, val):
-        self["zhoverformat"] = val
+        self['zhoverformat'] = val
 
     @property
     def zsrc(self):
@@ -1353,15 +1295,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1678,72 +1620,70 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        caps=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        contour=None,
-        customdata=None,
-        customdatasrc=None,
-        flatshading=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        isomax=None,
-        isomin=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        slices=None,
-        spaceframe=None,
-        stream=None,
-        surface=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        value=None,
-        valuehoverformat=None,
-        valuesrc=None,
-        visible=None,
-        x=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zhoverformat=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            caps=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            contour=None,
+            customdata=None,
+            customdatasrc=None,
+            flatshading=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            isomax=None,
+            isomin=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            slices=None,
+            spaceframe=None,
+            stream=None,
+            surface=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            value=None,
+            valuehoverformat=None,
+            valuesrc=None,
+            visible=None,
+            x=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zhoverformat=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Isosurface object
 
@@ -2075,9 +2015,9 @@ def __init__(
         -------
         Isosurface
         """
-        super().__init__("isosurface")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('isosurface')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2087,78 +2027,79 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Isosurface
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Isosurface`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("caps", arg, caps)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("contour", arg, contour)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("flatshading", arg, flatshading)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("isomax", arg, isomax)
-        self._set_property("isomin", arg, isomin)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("lighting", arg, lighting)
-        self._set_property("lightposition", arg, lightposition)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("scene", arg, scene)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("slices", arg, slices)
-        self._set_property("spaceframe", arg, spaceframe)
-        self._set_property("stream", arg, stream)
-        self._set_property("surface", arg, surface)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("value", arg, value)
-        self._set_property("valuehoverformat", arg, valuehoverformat)
-        self._set_property("valuesrc", arg, valuesrc)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("z", arg, z)
-        self._set_property("zhoverformat", arg, zhoverformat)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "isosurface"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Isosurface`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('caps', arg, caps)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('contour', arg, contour)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('flatshading', arg, flatshading)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('isomax', arg, isomax)
+        self._set_property('isomin', arg, isomin)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('lighting', arg, lighting)
+        self._set_property('lightposition', arg, lightposition)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('scene', arg, scene)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('slices', arg, slices)
+        self._set_property('spaceframe', arg, spaceframe)
+        self._set_property('stream', arg, stream)
+        self._set_property('surface', arg, surface)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('value', arg, value)
+        self._set_property('valuehoverformat', arg, valuehoverformat)
+        self._set_property('valuesrc', arg, valuesrc)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('z', arg, z)
+        self._set_property('zhoverformat', arg, zhoverformat)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'isosurface'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_layout.py b/plotly/graph_objs/_layout.py
index 9cf41c41f54..e070de84f31 100644
--- a/plotly/graph_objs/_layout.py
+++ b/plotly/graph_objs/_layout.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,23 +11,11 @@
 
 class Layout(_BaseLayoutType):
 
-    _subplotid_prop_names = [
-        "coloraxis",
-        "geo",
-        "legend",
-        "map",
-        "mapbox",
-        "polar",
-        "scene",
-        "smith",
-        "ternary",
-        "xaxis",
-        "yaxis",
-    ]
+    _subplotid_prop_names = ['coloraxis', 'geo', 'legend', 'map', 'mapbox', 'polar', 'scene', 'smith', 'ternary', 'xaxis', 'yaxis']
 
     import re
-
-    _subplotid_prop_re = re.compile("^(" + "|".join(_subplotid_prop_names) + r")(\d+)$")
+    _subplotid_prop_re = re.compile(
+        '^(' + '|'.join(_subplotid_prop_names) + r')(\d+)$')
 
     @property
     def _subplotid_validators(self):
@@ -34,136 +26,16 @@ def _subplotid_validators(self):
         -------
         dict
         """
-        from plotly.validators.layout import (
-            ColoraxisValidator,
-            GeoValidator,
-            LegendValidator,
-            MapValidator,
-            MapboxValidator,
-            PolarValidator,
-            SceneValidator,
-            SmithValidator,
-            TernaryValidator,
-            XaxisValidator,
-            YaxisValidator,
-        )
-
-        return {
-            "coloraxis": ColoraxisValidator,
-            "geo": GeoValidator,
-            "legend": LegendValidator,
-            "map": MapValidator,
-            "mapbox": MapboxValidator,
-            "polar": PolarValidator,
-            "scene": SceneValidator,
-            "smith": SmithValidator,
-            "ternary": TernaryValidator,
-            "xaxis": XaxisValidator,
-            "yaxis": YaxisValidator,
-        }
+        from plotly.validators.layout import (ColoraxisValidator, GeoValidator, LegendValidator, MapValidator, MapboxValidator, PolarValidator, SceneValidator, SmithValidator, TernaryValidator, XaxisValidator, YaxisValidator)
+
+        return {'coloraxis': ColoraxisValidator, 'geo': GeoValidator, 'legend': LegendValidator, 'map': MapValidator, 'mapbox': MapboxValidator, 'polar': PolarValidator, 'scene': SceneValidator, 'smith': SmithValidator, 'ternary': TernaryValidator, 'xaxis': XaxisValidator, 'yaxis': YaxisValidator}
 
     def _subplot_re_match(self, prop):
         return self._subplotid_prop_re.match(prop)
 
-    _parent_path_str = ""
-    _path_str = "layout"
-    _valid_props = {
-        "activeselection",
-        "activeshape",
-        "annotationdefaults",
-        "annotations",
-        "autosize",
-        "autotypenumbers",
-        "barcornerradius",
-        "bargap",
-        "bargroupgap",
-        "barmode",
-        "barnorm",
-        "boxgap",
-        "boxgroupgap",
-        "boxmode",
-        "calendar",
-        "clickmode",
-        "coloraxis",
-        "colorscale",
-        "colorway",
-        "computed",
-        "datarevision",
-        "dragmode",
-        "editrevision",
-        "extendfunnelareacolors",
-        "extendiciclecolors",
-        "extendpiecolors",
-        "extendsunburstcolors",
-        "extendtreemapcolors",
-        "font",
-        "funnelareacolorway",
-        "funnelgap",
-        "funnelgroupgap",
-        "funnelmode",
-        "geo",
-        "grid",
-        "height",
-        "hiddenlabels",
-        "hiddenlabelssrc",
-        "hidesources",
-        "hoverdistance",
-        "hoverlabel",
-        "hovermode",
-        "hoversubplots",
-        "iciclecolorway",
-        "imagedefaults",
-        "images",
-        "legend",
-        "map",
-        "mapbox",
-        "margin",
-        "meta",
-        "metasrc",
-        "minreducedheight",
-        "minreducedwidth",
-        "modebar",
-        "newselection",
-        "newshape",
-        "paper_bgcolor",
-        "piecolorway",
-        "plot_bgcolor",
-        "polar",
-        "scattergap",
-        "scattermode",
-        "scene",
-        "selectdirection",
-        "selectiondefaults",
-        "selectionrevision",
-        "selections",
-        "separators",
-        "shapedefaults",
-        "shapes",
-        "showlegend",
-        "sliderdefaults",
-        "sliders",
-        "smith",
-        "spikedistance",
-        "sunburstcolorway",
-        "template",
-        "ternary",
-        "title",
-        "transition",
-        "treemapcolorway",
-        "uirevision",
-        "uniformtext",
-        "updatemenudefaults",
-        "updatemenus",
-        "violingap",
-        "violingroupgap",
-        "violinmode",
-        "waterfallgap",
-        "waterfallgroupgap",
-        "waterfallmode",
-        "width",
-        "xaxis",
-        "yaxis",
-    }
+    _parent_path_str = ''
+    _path_str = 'layout'
+    _valid_props = {"activeselection", "activeshape", "annotationdefaults", "annotations", "autosize", "autotypenumbers", "barcornerradius", "bargap", "bargroupgap", "barmode", "barnorm", "boxgap", "boxgroupgap", "boxmode", "calendar", "clickmode", "coloraxis", "colorscale", "colorway", "computed", "datarevision", "dragmode", "editrevision", "extendfunnelareacolors", "extendiciclecolors", "extendpiecolors", "extendsunburstcolors", "extendtreemapcolors", "font", "funnelareacolorway", "funnelgap", "funnelgroupgap", "funnelmode", "geo", "grid", "height", "hiddenlabels", "hiddenlabelssrc", "hidesources", "hoverdistance", "hoverlabel", "hovermode", "hoversubplots", "iciclecolorway", "imagedefaults", "images", "legend", "map", "mapbox", "margin", "meta", "metasrc", "minreducedheight", "minreducedwidth", "modebar", "newselection", "newshape", "paper_bgcolor", "piecolorway", "plot_bgcolor", "polar", "scattergap", "scattermode", "scene", "selectdirection", "selectiondefaults", "selectionrevision", "selections", "separators", "shapedefaults", "shapes", "showlegend", "sliderdefaults", "sliders", "smith", "spikedistance", "sunburstcolorway", "template", "ternary", "title", "transition", "treemapcolorway", "uirevision", "uniformtext", "updatemenudefaults", "updatemenus", "violingap", "violingroupgap", "violinmode", "waterfallgap", "waterfallgroupgap", "waterfallmode", "width", "xaxis", "yaxis"}
 
     @property
     def activeselection(self):
@@ -178,11 +50,11 @@ def activeselection(self):
         -------
         plotly.graph_objs.layout.Activeselection
         """
-        return self["activeselection"]
+        return self['activeselection']
 
     @activeselection.setter
     def activeselection(self, val):
-        self["activeselection"] = val
+        self['activeselection'] = val
 
     @property
     def activeshape(self):
@@ -197,11 +69,11 @@ def activeshape(self):
         -------
         plotly.graph_objs.layout.Activeshape
         """
-        return self["activeshape"]
+        return self['activeshape']
 
     @activeshape.setter
     def activeshape(self, val):
-        self["activeshape"] = val
+        self['activeshape'] = val
 
     @property
     def annotations(self):
@@ -216,11 +88,11 @@ def annotations(self):
         -------
         tuple[plotly.graph_objs.layout.Annotation]
         """
-        return self["annotations"]
+        return self['annotations']
 
     @annotations.setter
     def annotations(self, val):
-        self["annotations"] = val
+        self['annotations'] = val
 
     @property
     def annotationdefaults(self):
@@ -239,11 +111,11 @@ def annotationdefaults(self):
         -------
         plotly.graph_objs.layout.Annotation
         """
-        return self["annotationdefaults"]
+        return self['annotationdefaults']
 
     @annotationdefaults.setter
     def annotationdefaults(self, val):
-        self["annotationdefaults"] = val
+        self['annotationdefaults'] = val
 
     @property
     def autosize(self):
@@ -261,11 +133,11 @@ def autosize(self):
         -------
         bool
         """
-        return self["autosize"]
+        return self['autosize']
 
     @autosize.setter
     def autosize(self, val):
-        self["autosize"] = val
+        self['autosize'] = val
 
     @property
     def autotypenumbers(self):
@@ -284,11 +156,11 @@ def autotypenumbers(self):
         -------
         Any
         """
-        return self["autotypenumbers"]
+        return self['autotypenumbers']
 
     @autotypenumbers.setter
     def autotypenumbers(self, val):
-        self["autotypenumbers"] = val
+        self['autotypenumbers'] = val
 
     @property
     def barcornerradius(self):
@@ -302,11 +174,11 @@ def barcornerradius(self):
         -------
         Any
         """
-        return self["barcornerradius"]
+        return self['barcornerradius']
 
     @barcornerradius.setter
     def barcornerradius(self, val):
-        self["barcornerradius"] = val
+        self['barcornerradius'] = val
 
     @property
     def bargap(self):
@@ -321,11 +193,11 @@ def bargap(self):
         -------
         int|float
         """
-        return self["bargap"]
+        return self['bargap']
 
     @bargap.setter
     def bargap(self, val):
-        self["bargap"] = val
+        self['bargap'] = val
 
     @property
     def bargroupgap(self):
@@ -340,11 +212,11 @@ def bargroupgap(self):
         -------
         int|float
         """
-        return self["bargroupgap"]
+        return self['bargroupgap']
 
     @bargroupgap.setter
     def bargroupgap(self, val):
-        self["bargroupgap"] = val
+        self['bargroupgap'] = val
 
     @property
     def barmode(self):
@@ -366,11 +238,11 @@ def barmode(self):
         -------
         Any
         """
-        return self["barmode"]
+        return self['barmode']
 
     @barmode.setter
     def barmode(self, val):
-        self["barmode"] = val
+        self['barmode'] = val
 
     @property
     def barnorm(self):
@@ -388,11 +260,11 @@ def barnorm(self):
         -------
         Any
         """
-        return self["barnorm"]
+        return self['barnorm']
 
     @barnorm.setter
     def barnorm(self, val):
-        self["barnorm"] = val
+        self['barnorm'] = val
 
     @property
     def boxgap(self):
@@ -408,11 +280,11 @@ def boxgap(self):
         -------
         int|float
         """
-        return self["boxgap"]
+        return self['boxgap']
 
     @boxgap.setter
     def boxgap(self, val):
-        self["boxgap"] = val
+        self['boxgap'] = val
 
     @property
     def boxgroupgap(self):
@@ -428,11 +300,11 @@ def boxgroupgap(self):
         -------
         int|float
         """
-        return self["boxgroupgap"]
+        return self['boxgroupgap']
 
     @boxgroupgap.setter
     def boxgroupgap(self, val):
-        self["boxgroupgap"] = val
+        self['boxgroupgap'] = val
 
     @property
     def boxmode(self):
@@ -452,11 +324,11 @@ def boxmode(self):
         -------
         Any
         """
-        return self["boxmode"]
+        return self['boxmode']
 
     @boxmode.setter
     def boxmode(self, val):
-        self["boxmode"] = val
+        self['boxmode'] = val
 
     @property
     def calendar(self):
@@ -475,11 +347,11 @@ def calendar(self):
         -------
         Any
         """
-        return self["calendar"]
+        return self['calendar']
 
     @calendar.setter
     def calendar(self, val):
-        self["calendar"] = val
+        self['calendar'] = val
 
     @property
     def clickmode(self):
@@ -508,11 +380,11 @@ def clickmode(self):
         -------
         Any
         """
-        return self["clickmode"]
+        return self['clickmode']
 
     @clickmode.setter
     def clickmode(self, val):
-        self["clickmode"] = val
+        self['clickmode'] = val
 
     @property
     def coloraxis(self):
@@ -527,11 +399,11 @@ def coloraxis(self):
         -------
         plotly.graph_objs.layout.Coloraxis
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorscale(self):
@@ -546,11 +418,11 @@ def colorscale(self):
         -------
         plotly.graph_objs.layout.Colorscale
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorway(self):
@@ -565,11 +437,11 @@ def colorway(self):
         -------
         list
         """
-        return self["colorway"]
+        return self['colorway']
 
     @colorway.setter
     def colorway(self, val):
-        self["colorway"] = val
+        self['colorway'] = val
 
     @property
     def computed(self):
@@ -584,11 +456,11 @@ def computed(self):
         -------
         Any
         """
-        return self["computed"]
+        return self['computed']
 
     @computed.setter
     def computed(self, val):
-        self["computed"] = val
+        self['computed'] = val
 
     @property
     def datarevision(self):
@@ -607,11 +479,11 @@ def datarevision(self):
         -------
         Any
         """
-        return self["datarevision"]
+        return self['datarevision']
 
     @datarevision.setter
     def datarevision(self, val):
-        self["datarevision"] = val
+        self['datarevision'] = val
 
     @property
     def dragmode(self):
@@ -630,11 +502,11 @@ def dragmode(self):
         -------
         Any
         """
-        return self["dragmode"]
+        return self['dragmode']
 
     @dragmode.setter
     def dragmode(self, val):
-        self["dragmode"] = val
+        self['dragmode'] = val
 
     @property
     def editrevision(self):
@@ -649,11 +521,11 @@ def editrevision(self):
         -------
         Any
         """
-        return self["editrevision"]
+        return self['editrevision']
 
     @editrevision.setter
     def editrevision(self, val):
-        self["editrevision"] = val
+        self['editrevision'] = val
 
     @property
     def extendfunnelareacolors(self):
@@ -674,11 +546,11 @@ def extendfunnelareacolors(self):
         -------
         bool
         """
-        return self["extendfunnelareacolors"]
+        return self['extendfunnelareacolors']
 
     @extendfunnelareacolors.setter
     def extendfunnelareacolors(self, val):
-        self["extendfunnelareacolors"] = val
+        self['extendfunnelareacolors'] = val
 
     @property
     def extendiciclecolors(self):
@@ -699,11 +571,11 @@ def extendiciclecolors(self):
         -------
         bool
         """
-        return self["extendiciclecolors"]
+        return self['extendiciclecolors']
 
     @extendiciclecolors.setter
     def extendiciclecolors(self, val):
-        self["extendiciclecolors"] = val
+        self['extendiciclecolors'] = val
 
     @property
     def extendpiecolors(self):
@@ -723,11 +595,11 @@ def extendpiecolors(self):
         -------
         bool
         """
-        return self["extendpiecolors"]
+        return self['extendpiecolors']
 
     @extendpiecolors.setter
     def extendpiecolors(self, val):
-        self["extendpiecolors"] = val
+        self['extendpiecolors'] = val
 
     @property
     def extendsunburstcolors(self):
@@ -748,11 +620,11 @@ def extendsunburstcolors(self):
         -------
         bool
         """
-        return self["extendsunburstcolors"]
+        return self['extendsunburstcolors']
 
     @extendsunburstcolors.setter
     def extendsunburstcolors(self, val):
-        self["extendsunburstcolors"] = val
+        self['extendsunburstcolors'] = val
 
     @property
     def extendtreemapcolors(self):
@@ -773,11 +645,11 @@ def extendtreemapcolors(self):
         -------
         bool
         """
-        return self["extendtreemapcolors"]
+        return self['extendtreemapcolors']
 
     @extendtreemapcolors.setter
     def extendtreemapcolors(self, val):
-        self["extendtreemapcolors"] = val
+        self['extendtreemapcolors'] = val
 
     @property
     def font(self):
@@ -795,11 +667,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def funnelareacolorway(self):
@@ -817,11 +689,11 @@ def funnelareacolorway(self):
         -------
         list
         """
-        return self["funnelareacolorway"]
+        return self['funnelareacolorway']
 
     @funnelareacolorway.setter
     def funnelareacolorway(self, val):
-        self["funnelareacolorway"] = val
+        self['funnelareacolorway'] = val
 
     @property
     def funnelgap(self):
@@ -836,11 +708,11 @@ def funnelgap(self):
         -------
         int|float
         """
-        return self["funnelgap"]
+        return self['funnelgap']
 
     @funnelgap.setter
     def funnelgap(self, val):
-        self["funnelgap"] = val
+        self['funnelgap'] = val
 
     @property
     def funnelgroupgap(self):
@@ -855,11 +727,11 @@ def funnelgroupgap(self):
         -------
         int|float
         """
-        return self["funnelgroupgap"]
+        return self['funnelgroupgap']
 
     @funnelgroupgap.setter
     def funnelgroupgap(self, val):
-        self["funnelgroupgap"] = val
+        self['funnelgroupgap'] = val
 
     @property
     def funnelmode(self):
@@ -879,11 +751,11 @@ def funnelmode(self):
         -------
         Any
         """
-        return self["funnelmode"]
+        return self['funnelmode']
 
     @funnelmode.setter
     def funnelmode(self, val):
-        self["funnelmode"] = val
+        self['funnelmode'] = val
 
     @property
     def geo(self):
@@ -898,11 +770,11 @@ def geo(self):
         -------
         plotly.graph_objs.layout.Geo
         """
-        return self["geo"]
+        return self['geo']
 
     @geo.setter
     def geo(self, val):
-        self["geo"] = val
+        self['geo'] = val
 
     @property
     def grid(self):
@@ -917,11 +789,11 @@ def grid(self):
         -------
         plotly.graph_objs.layout.Grid
         """
-        return self["grid"]
+        return self['grid']
 
     @grid.setter
     def grid(self, val):
-        self["grid"] = val
+        self['grid'] = val
 
     @property
     def height(self):
@@ -935,11 +807,11 @@ def height(self):
         -------
         int|float
         """
-        return self["height"]
+        return self['height']
 
     @height.setter
     def height(self, val):
-        self["height"] = val
+        self['height'] = val
 
     @property
     def hiddenlabels(self):
@@ -955,11 +827,11 @@ def hiddenlabels(self):
         -------
         numpy.ndarray
         """
-        return self["hiddenlabels"]
+        return self['hiddenlabels']
 
     @hiddenlabels.setter
     def hiddenlabels(self, val):
-        self["hiddenlabels"] = val
+        self['hiddenlabels'] = val
 
     @property
     def hiddenlabelssrc(self):
@@ -974,11 +846,11 @@ def hiddenlabelssrc(self):
         -------
         str
         """
-        return self["hiddenlabelssrc"]
+        return self['hiddenlabelssrc']
 
     @hiddenlabelssrc.setter
     def hiddenlabelssrc(self, val):
-        self["hiddenlabelssrc"] = val
+        self['hiddenlabelssrc'] = val
 
     @property
     def hidesources(self):
@@ -996,11 +868,11 @@ def hidesources(self):
         -------
         bool
         """
-        return self["hidesources"]
+        return self['hidesources']
 
     @hidesources.setter
     def hidesources(self, val):
-        self["hidesources"] = val
+        self['hidesources'] = val
 
     @property
     def hoverdistance(self):
@@ -1021,11 +893,11 @@ def hoverdistance(self):
         -------
         int
         """
-        return self["hoverdistance"]
+        return self['hoverdistance']
 
     @hoverdistance.setter
     def hoverdistance(self, val):
-        self["hoverdistance"] = val
+        self['hoverdistance'] = val
 
     @property
     def hoverlabel(self):
@@ -1040,11 +912,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.layout.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovermode(self):
@@ -1070,11 +942,11 @@ def hovermode(self):
         -------
         Any
         """
-        return self["hovermode"]
+        return self['hovermode']
 
     @hovermode.setter
     def hovermode(self, val):
-        self["hovermode"] = val
+        self['hovermode'] = val
 
     @property
     def hoversubplots(self):
@@ -1094,11 +966,11 @@ def hoversubplots(self):
         -------
         Any
         """
-        return self["hoversubplots"]
+        return self['hoversubplots']
 
     @hoversubplots.setter
     def hoversubplots(self, val):
-        self["hoversubplots"] = val
+        self['hoversubplots'] = val
 
     @property
     def iciclecolorway(self):
@@ -1116,11 +988,11 @@ def iciclecolorway(self):
         -------
         list
         """
-        return self["iciclecolorway"]
+        return self['iciclecolorway']
 
     @iciclecolorway.setter
     def iciclecolorway(self, val):
-        self["iciclecolorway"] = val
+        self['iciclecolorway'] = val
 
     @property
     def images(self):
@@ -1135,11 +1007,11 @@ def images(self):
         -------
         tuple[plotly.graph_objs.layout.Image]
         """
-        return self["images"]
+        return self['images']
 
     @images.setter
     def images(self, val):
-        self["images"] = val
+        self['images'] = val
 
     @property
     def imagedefaults(self):
@@ -1158,11 +1030,11 @@ def imagedefaults(self):
         -------
         plotly.graph_objs.layout.Image
         """
-        return self["imagedefaults"]
+        return self['imagedefaults']
 
     @imagedefaults.setter
     def imagedefaults(self, val):
-        self["imagedefaults"] = val
+        self['imagedefaults'] = val
 
     @property
     def legend(self):
@@ -1177,11 +1049,11 @@ def legend(self):
         -------
         plotly.graph_objs.layout.Legend
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def map(self):
@@ -1196,11 +1068,11 @@ def map(self):
         -------
         plotly.graph_objs.layout.Map
         """
-        return self["map"]
+        return self['map']
 
     @map.setter
     def map(self, val):
-        self["map"] = val
+        self['map'] = val
 
     @property
     def mapbox(self):
@@ -1215,11 +1087,11 @@ def mapbox(self):
         -------
         plotly.graph_objs.layout.Mapbox
         """
-        return self["mapbox"]
+        return self['mapbox']
 
     @mapbox.setter
     def mapbox(self, val):
-        self["mapbox"] = val
+        self['mapbox'] = val
 
     @property
     def margin(self):
@@ -1234,11 +1106,11 @@ def margin(self):
         -------
         plotly.graph_objs.layout.Margin
         """
-        return self["margin"]
+        return self['margin']
 
     @margin.setter
     def margin(self, val):
-        self["margin"] = val
+        self['margin'] = val
 
     @property
     def meta(self):
@@ -1258,11 +1130,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -1276,11 +1148,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def minreducedheight(self):
@@ -1295,11 +1167,11 @@ def minreducedheight(self):
         -------
         int|float
         """
-        return self["minreducedheight"]
+        return self['minreducedheight']
 
     @minreducedheight.setter
     def minreducedheight(self, val):
-        self["minreducedheight"] = val
+        self['minreducedheight'] = val
 
     @property
     def minreducedwidth(self):
@@ -1314,11 +1186,11 @@ def minreducedwidth(self):
         -------
         int|float
         """
-        return self["minreducedwidth"]
+        return self['minreducedwidth']
 
     @minreducedwidth.setter
     def minreducedwidth(self, val):
-        self["minreducedwidth"] = val
+        self['minreducedwidth'] = val
 
     @property
     def modebar(self):
@@ -1333,11 +1205,11 @@ def modebar(self):
         -------
         plotly.graph_objs.layout.Modebar
         """
-        return self["modebar"]
+        return self['modebar']
 
     @modebar.setter
     def modebar(self, val):
-        self["modebar"] = val
+        self['modebar'] = val
 
     @property
     def newselection(self):
@@ -1352,11 +1224,11 @@ def newselection(self):
         -------
         plotly.graph_objs.layout.Newselection
         """
-        return self["newselection"]
+        return self['newselection']
 
     @newselection.setter
     def newselection(self, val):
-        self["newselection"] = val
+        self['newselection'] = val
 
     @property
     def newshape(self):
@@ -1371,11 +1243,11 @@ def newshape(self):
         -------
         plotly.graph_objs.layout.Newshape
         """
-        return self["newshape"]
+        return self['newshape']
 
     @newshape.setter
     def newshape(self, val):
-        self["newshape"] = val
+        self['newshape'] = val
 
     @property
     def paper_bgcolor(self):
@@ -1394,11 +1266,11 @@ def paper_bgcolor(self):
         -------
         str
         """
-        return self["paper_bgcolor"]
+        return self['paper_bgcolor']
 
     @paper_bgcolor.setter
     def paper_bgcolor(self, val):
-        self["paper_bgcolor"] = val
+        self['paper_bgcolor'] = val
 
     @property
     def piecolorway(self):
@@ -1416,11 +1288,11 @@ def piecolorway(self):
         -------
         list
         """
-        return self["piecolorway"]
+        return self['piecolorway']
 
     @piecolorway.setter
     def piecolorway(self, val):
-        self["piecolorway"] = val
+        self['piecolorway'] = val
 
     @property
     def plot_bgcolor(self):
@@ -1439,11 +1311,11 @@ def plot_bgcolor(self):
         -------
         str
         """
-        return self["plot_bgcolor"]
+        return self['plot_bgcolor']
 
     @plot_bgcolor.setter
     def plot_bgcolor(self, val):
-        self["plot_bgcolor"] = val
+        self['plot_bgcolor'] = val
 
     @property
     def polar(self):
@@ -1458,11 +1330,11 @@ def polar(self):
         -------
         plotly.graph_objs.layout.Polar
         """
-        return self["polar"]
+        return self['polar']
 
     @polar.setter
     def polar(self, val):
-        self["polar"] = val
+        self['polar'] = val
 
     @property
     def scattergap(self):
@@ -1477,11 +1349,11 @@ def scattergap(self):
         -------
         int|float
         """
-        return self["scattergap"]
+        return self['scattergap']
 
     @scattergap.setter
     def scattergap(self, val):
-        self["scattergap"] = val
+        self['scattergap'] = val
 
     @property
     def scattermode(self):
@@ -1501,11 +1373,11 @@ def scattermode(self):
         -------
         Any
         """
-        return self["scattermode"]
+        return self['scattermode']
 
     @scattermode.setter
     def scattermode(self, val):
-        self["scattermode"] = val
+        self['scattermode'] = val
 
     @property
     def scene(self):
@@ -1520,11 +1392,11 @@ def scene(self):
         -------
         plotly.graph_objs.layout.Scene
         """
-        return self["scene"]
+        return self['scene']
 
     @scene.setter
     def scene(self, val):
-        self["scene"] = val
+        self['scene'] = val
 
     @property
     def selectdirection(self):
@@ -1542,11 +1414,11 @@ def selectdirection(self):
         -------
         Any
         """
-        return self["selectdirection"]
+        return self['selectdirection']
 
     @selectdirection.setter
     def selectdirection(self, val):
-        self["selectdirection"] = val
+        self['selectdirection'] = val
 
     @property
     def selectionrevision(self):
@@ -1560,11 +1432,11 @@ def selectionrevision(self):
         -------
         Any
         """
-        return self["selectionrevision"]
+        return self['selectionrevision']
 
     @selectionrevision.setter
     def selectionrevision(self, val):
-        self["selectionrevision"] = val
+        self['selectionrevision'] = val
 
     @property
     def selections(self):
@@ -1579,11 +1451,11 @@ def selections(self):
         -------
         tuple[plotly.graph_objs.layout.Selection]
         """
-        return self["selections"]
+        return self['selections']
 
     @selections.setter
     def selections(self, val):
-        self["selections"] = val
+        self['selections'] = val
 
     @property
     def selectiondefaults(self):
@@ -1602,11 +1474,11 @@ def selectiondefaults(self):
         -------
         plotly.graph_objs.layout.Selection
         """
-        return self["selectiondefaults"]
+        return self['selectiondefaults']
 
     @selectiondefaults.setter
     def selectiondefaults(self, val):
-        self["selectiondefaults"] = val
+        self['selectiondefaults'] = val
 
     @property
     def separators(self):
@@ -1624,11 +1496,11 @@ def separators(self):
         -------
         str
         """
-        return self["separators"]
+        return self['separators']
 
     @separators.setter
     def separators(self, val):
-        self["separators"] = val
+        self['separators'] = val
 
     @property
     def shapes(self):
@@ -1643,11 +1515,11 @@ def shapes(self):
         -------
         tuple[plotly.graph_objs.layout.Shape]
         """
-        return self["shapes"]
+        return self['shapes']
 
     @shapes.setter
     def shapes(self, val):
-        self["shapes"] = val
+        self['shapes'] = val
 
     @property
     def shapedefaults(self):
@@ -1666,11 +1538,11 @@ def shapedefaults(self):
         -------
         plotly.graph_objs.layout.Shape
         """
-        return self["shapedefaults"]
+        return self['shapedefaults']
 
     @shapedefaults.setter
     def shapedefaults(self, val):
-        self["shapedefaults"] = val
+        self['shapedefaults'] = val
 
     @property
     def showlegend(self):
@@ -1688,11 +1560,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def sliders(self):
@@ -1707,11 +1579,11 @@ def sliders(self):
         -------
         tuple[plotly.graph_objs.layout.Slider]
         """
-        return self["sliders"]
+        return self['sliders']
 
     @sliders.setter
     def sliders(self, val):
-        self["sliders"] = val
+        self['sliders'] = val
 
     @property
     def sliderdefaults(self):
@@ -1730,11 +1602,11 @@ def sliderdefaults(self):
         -------
         plotly.graph_objs.layout.Slider
         """
-        return self["sliderdefaults"]
+        return self['sliderdefaults']
 
     @sliderdefaults.setter
     def sliderdefaults(self, val):
-        self["sliderdefaults"] = val
+        self['sliderdefaults'] = val
 
     @property
     def smith(self):
@@ -1749,11 +1621,11 @@ def smith(self):
         -------
         plotly.graph_objs.layout.Smith
         """
-        return self["smith"]
+        return self['smith']
 
     @smith.setter
     def smith(self, val):
-        self["smith"] = val
+        self['smith'] = val
 
     @property
     def spikedistance(self):
@@ -1772,11 +1644,11 @@ def spikedistance(self):
         -------
         int
         """
-        return self["spikedistance"]
+        return self['spikedistance']
 
     @spikedistance.setter
     def spikedistance(self, val):
-        self["spikedistance"] = val
+        self['spikedistance'] = val
 
     @property
     def sunburstcolorway(self):
@@ -1794,11 +1666,11 @@ def sunburstcolorway(self):
         -------
         list
         """
-        return self["sunburstcolorway"]
+        return self['sunburstcolorway']
 
     @sunburstcolorway.setter
     def sunburstcolorway(self, val):
-        self["sunburstcolorway"] = val
+        self['sunburstcolorway'] = val
 
     @property
     def template(self):
@@ -1834,7 +1706,7 @@ def template(self):
                 >>> import plotly.io as pio
                 >>> list(pio.templates)  # doctest: +ELLIPSIS
                 ['ggplot2', 'seaborn', 'simple_white', 'plotly', 'plotly_white', ...]
-
+    
           - A string containing multiple registered template names, joined on '+'
             characters (e.g. 'template1+template2'). In this case the resulting
             template is computed by merging together the collection of registered
@@ -1844,11 +1716,11 @@ def template(self):
         -------
         plotly.graph_objs.layout.Template
         """
-        return self["template"]
+        return self['template']
 
     @template.setter
     def template(self, val):
-        self["template"] = val
+        self['template'] = val
 
     @property
     def ternary(self):
@@ -1863,11 +1735,11 @@ def ternary(self):
         -------
         plotly.graph_objs.layout.Ternary
         """
-        return self["ternary"]
+        return self['ternary']
 
     @ternary.setter
     def ternary(self, val):
-        self["ternary"] = val
+        self['ternary'] = val
 
     @property
     def title(self):
@@ -1882,11 +1754,11 @@ def title(self):
         -------
         plotly.graph_objs.layout.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def transition(self):
@@ -1903,11 +1775,11 @@ def transition(self):
         -------
         plotly.graph_objs.layout.Transition
         """
-        return self["transition"]
+        return self['transition']
 
     @transition.setter
     def transition(self, val):
-        self["transition"] = val
+        self['transition'] = val
 
     @property
     def treemapcolorway(self):
@@ -1925,11 +1797,11 @@ def treemapcolorway(self):
         -------
         list
         """
-        return self["treemapcolorway"]
+        return self['treemapcolorway']
 
     @treemapcolorway.setter
     def treemapcolorway(self, val):
-        self["treemapcolorway"] = val
+        self['treemapcolorway'] = val
 
     @property
     def uirevision(self):
@@ -1957,11 +1829,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def uniformtext(self):
@@ -1976,11 +1848,11 @@ def uniformtext(self):
         -------
         plotly.graph_objs.layout.Uniformtext
         """
-        return self["uniformtext"]
+        return self['uniformtext']
 
     @uniformtext.setter
     def uniformtext(self, val):
-        self["uniformtext"] = val
+        self['uniformtext'] = val
 
     @property
     def updatemenus(self):
@@ -1995,11 +1867,11 @@ def updatemenus(self):
         -------
         tuple[plotly.graph_objs.layout.Updatemenu]
         """
-        return self["updatemenus"]
+        return self['updatemenus']
 
     @updatemenus.setter
     def updatemenus(self, val):
-        self["updatemenus"] = val
+        self['updatemenus'] = val
 
     @property
     def updatemenudefaults(self):
@@ -2018,11 +1890,11 @@ def updatemenudefaults(self):
         -------
         plotly.graph_objs.layout.Updatemenu
         """
-        return self["updatemenudefaults"]
+        return self['updatemenudefaults']
 
     @updatemenudefaults.setter
     def updatemenudefaults(self, val):
-        self["updatemenudefaults"] = val
+        self['updatemenudefaults'] = val
 
     @property
     def violingap(self):
@@ -2038,11 +1910,11 @@ def violingap(self):
         -------
         int|float
         """
-        return self["violingap"]
+        return self['violingap']
 
     @violingap.setter
     def violingap(self, val):
-        self["violingap"] = val
+        self['violingap'] = val
 
     @property
     def violingroupgap(self):
@@ -2058,11 +1930,11 @@ def violingroupgap(self):
         -------
         int|float
         """
-        return self["violingroupgap"]
+        return self['violingroupgap']
 
     @violingroupgap.setter
     def violingroupgap(self, val):
-        self["violingroupgap"] = val
+        self['violingroupgap'] = val
 
     @property
     def violinmode(self):
@@ -2082,11 +1954,11 @@ def violinmode(self):
         -------
         Any
         """
-        return self["violinmode"]
+        return self['violinmode']
 
     @violinmode.setter
     def violinmode(self, val):
-        self["violinmode"] = val
+        self['violinmode'] = val
 
     @property
     def waterfallgap(self):
@@ -2101,11 +1973,11 @@ def waterfallgap(self):
         -------
         int|float
         """
-        return self["waterfallgap"]
+        return self['waterfallgap']
 
     @waterfallgap.setter
     def waterfallgap(self, val):
-        self["waterfallgap"] = val
+        self['waterfallgap'] = val
 
     @property
     def waterfallgroupgap(self):
@@ -2120,11 +1992,11 @@ def waterfallgroupgap(self):
         -------
         int|float
         """
-        return self["waterfallgroupgap"]
+        return self['waterfallgroupgap']
 
     @waterfallgroupgap.setter
     def waterfallgroupgap(self, val):
-        self["waterfallgroupgap"] = val
+        self['waterfallgroupgap'] = val
 
     @property
     def waterfallmode(self):
@@ -2143,11 +2015,11 @@ def waterfallmode(self):
         -------
         Any
         """
-        return self["waterfallmode"]
+        return self['waterfallmode']
 
     @waterfallmode.setter
     def waterfallmode(self, val):
-        self["waterfallmode"] = val
+        self['waterfallmode'] = val
 
     @property
     def width(self):
@@ -2161,11 +2033,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def xaxis(self):
@@ -2180,11 +2052,11 @@ def xaxis(self):
         -------
         plotly.graph_objs.layout.XAxis
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def yaxis(self):
@@ -2199,11 +2071,11 @@ def yaxis(self):
         -------
         plotly.graph_objs.layout.YAxis
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def _prop_descriptions(self):
@@ -2699,107 +2571,105 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.layout.YAxis` instance or
             dict with compatible properties
         """
-
-    def __init__(
-        self,
-        arg=None,
-        activeselection=None,
-        activeshape=None,
-        annotations=None,
-        annotationdefaults=None,
-        autosize=None,
-        autotypenumbers=None,
-        barcornerradius=None,
-        bargap=None,
-        bargroupgap=None,
-        barmode=None,
-        barnorm=None,
-        boxgap=None,
-        boxgroupgap=None,
-        boxmode=None,
-        calendar=None,
-        clickmode=None,
-        coloraxis=None,
-        colorscale=None,
-        colorway=None,
-        computed=None,
-        datarevision=None,
-        dragmode=None,
-        editrevision=None,
-        extendfunnelareacolors=None,
-        extendiciclecolors=None,
-        extendpiecolors=None,
-        extendsunburstcolors=None,
-        extendtreemapcolors=None,
-        font=None,
-        funnelareacolorway=None,
-        funnelgap=None,
-        funnelgroupgap=None,
-        funnelmode=None,
-        geo=None,
-        grid=None,
-        height=None,
-        hiddenlabels=None,
-        hiddenlabelssrc=None,
-        hidesources=None,
-        hoverdistance=None,
-        hoverlabel=None,
-        hovermode=None,
-        hoversubplots=None,
-        iciclecolorway=None,
-        images=None,
-        imagedefaults=None,
-        legend=None,
-        map=None,
-        mapbox=None,
-        margin=None,
-        meta=None,
-        metasrc=None,
-        minreducedheight=None,
-        minreducedwidth=None,
-        modebar=None,
-        newselection=None,
-        newshape=None,
-        paper_bgcolor=None,
-        piecolorway=None,
-        plot_bgcolor=None,
-        polar=None,
-        scattergap=None,
-        scattermode=None,
-        scene=None,
-        selectdirection=None,
-        selectionrevision=None,
-        selections=None,
-        selectiondefaults=None,
-        separators=None,
-        shapes=None,
-        shapedefaults=None,
-        showlegend=None,
-        sliders=None,
-        sliderdefaults=None,
-        smith=None,
-        spikedistance=None,
-        sunburstcolorway=None,
-        template=None,
-        ternary=None,
-        title=None,
-        transition=None,
-        treemapcolorway=None,
-        uirevision=None,
-        uniformtext=None,
-        updatemenus=None,
-        updatemenudefaults=None,
-        violingap=None,
-        violingroupgap=None,
-        violinmode=None,
-        waterfallgap=None,
-        waterfallgroupgap=None,
-        waterfallmode=None,
-        width=None,
-        xaxis=None,
-        yaxis=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            activeselection=None,
+            activeshape=None,
+            annotations=None,
+            annotationdefaults=None,
+            autosize=None,
+            autotypenumbers=None,
+            barcornerradius=None,
+            bargap=None,
+            bargroupgap=None,
+            barmode=None,
+            barnorm=None,
+            boxgap=None,
+            boxgroupgap=None,
+            boxmode=None,
+            calendar=None,
+            clickmode=None,
+            coloraxis=None,
+            colorscale=None,
+            colorway=None,
+            computed=None,
+            datarevision=None,
+            dragmode=None,
+            editrevision=None,
+            extendfunnelareacolors=None,
+            extendiciclecolors=None,
+            extendpiecolors=None,
+            extendsunburstcolors=None,
+            extendtreemapcolors=None,
+            font=None,
+            funnelareacolorway=None,
+            funnelgap=None,
+            funnelgroupgap=None,
+            funnelmode=None,
+            geo=None,
+            grid=None,
+            height=None,
+            hiddenlabels=None,
+            hiddenlabelssrc=None,
+            hidesources=None,
+            hoverdistance=None,
+            hoverlabel=None,
+            hovermode=None,
+            hoversubplots=None,
+            iciclecolorway=None,
+            images=None,
+            imagedefaults=None,
+            legend=None,
+            map=None,
+            mapbox=None,
+            margin=None,
+            meta=None,
+            metasrc=None,
+            minreducedheight=None,
+            minreducedwidth=None,
+            modebar=None,
+            newselection=None,
+            newshape=None,
+            paper_bgcolor=None,
+            piecolorway=None,
+            plot_bgcolor=None,
+            polar=None,
+            scattergap=None,
+            scattermode=None,
+            scene=None,
+            selectdirection=None,
+            selectionrevision=None,
+            selections=None,
+            selectiondefaults=None,
+            separators=None,
+            shapes=None,
+            shapedefaults=None,
+            showlegend=None,
+            sliders=None,
+            sliderdefaults=None,
+            smith=None,
+            spikedistance=None,
+            sunburstcolorway=None,
+            template=None,
+            ternary=None,
+            title=None,
+            transition=None,
+            treemapcolorway=None,
+            uirevision=None,
+            uniformtext=None,
+            updatemenus=None,
+            updatemenudefaults=None,
+            violingap=None,
+            violingroupgap=None,
+            violinmode=None,
+            waterfallgap=None,
+            waterfallgroupgap=None,
+            waterfallmode=None,
+            width=None,
+            xaxis=None,
+            yaxis=None,
+            **kwargs
+        ):
         """
         Construct a new Layout object
 
@@ -3303,108 +3173,12 @@ def __init__(
         -------
         Layout
         """
-        super().__init__("layout")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('layout')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
-        self._valid_props = {
-            "activeselection",
-            "activeshape",
-            "annotationdefaults",
-            "annotations",
-            "autosize",
-            "autotypenumbers",
-            "barcornerradius",
-            "bargap",
-            "bargroupgap",
-            "barmode",
-            "barnorm",
-            "boxgap",
-            "boxgroupgap",
-            "boxmode",
-            "calendar",
-            "clickmode",
-            "coloraxis",
-            "colorscale",
-            "colorway",
-            "computed",
-            "datarevision",
-            "dragmode",
-            "editrevision",
-            "extendfunnelareacolors",
-            "extendiciclecolors",
-            "extendpiecolors",
-            "extendsunburstcolors",
-            "extendtreemapcolors",
-            "font",
-            "funnelareacolorway",
-            "funnelgap",
-            "funnelgroupgap",
-            "funnelmode",
-            "geo",
-            "grid",
-            "height",
-            "hiddenlabels",
-            "hiddenlabelssrc",
-            "hidesources",
-            "hoverdistance",
-            "hoverlabel",
-            "hovermode",
-            "hoversubplots",
-            "iciclecolorway",
-            "imagedefaults",
-            "images",
-            "legend",
-            "map",
-            "mapbox",
-            "margin",
-            "meta",
-            "metasrc",
-            "minreducedheight",
-            "minreducedwidth",
-            "modebar",
-            "newselection",
-            "newshape",
-            "paper_bgcolor",
-            "piecolorway",
-            "plot_bgcolor",
-            "polar",
-            "scattergap",
-            "scattermode",
-            "scene",
-            "selectdirection",
-            "selectiondefaults",
-            "selectionrevision",
-            "selections",
-            "separators",
-            "shapedefaults",
-            "shapes",
-            "showlegend",
-            "sliderdefaults",
-            "sliders",
-            "smith",
-            "spikedistance",
-            "sunburstcolorway",
-            "template",
-            "ternary",
-            "title",
-            "transition",
-            "treemapcolorway",
-            "uirevision",
-            "uniformtext",
-            "updatemenudefaults",
-            "updatemenus",
-            "violingap",
-            "violingroupgap",
-            "violinmode",
-            "waterfallgap",
-            "waterfallgroupgap",
-            "waterfallmode",
-            "width",
-            "xaxis",
-            "yaxis",
-        }
+        self._valid_props = {"activeselection", "activeshape", "annotationdefaults", "annotations", "autosize", "autotypenumbers", "barcornerradius", "bargap", "bargroupgap", "barmode", "barnorm", "boxgap", "boxgroupgap", "boxmode", "calendar", "clickmode", "coloraxis", "colorscale", "colorway", "computed", "datarevision", "dragmode", "editrevision", "extendfunnelareacolors", "extendiciclecolors", "extendpiecolors", "extendsunburstcolors", "extendtreemapcolors", "font", "funnelareacolorway", "funnelgap", "funnelgroupgap", "funnelmode", "geo", "grid", "height", "hiddenlabels", "hiddenlabelssrc", "hidesources", "hoverdistance", "hoverlabel", "hovermode", "hoversubplots", "iciclecolorway", "imagedefaults", "images", "legend", "map", "mapbox", "margin", "meta", "metasrc", "minreducedheight", "minreducedwidth", "modebar", "newselection", "newshape", "paper_bgcolor", "piecolorway", "plot_bgcolor", "polar", "scattergap", "scattermode", "scene", "selectdirection", "selectiondefaults", "selectionrevision", "selections", "separators", "shapedefaults", "shapes", "showlegend", "sliderdefaults", "sliders", "smith", "spikedistance", "sunburstcolorway", "template", "ternary", "title", "transition", "treemapcolorway", "uirevision", "uniformtext", "updatemenudefaults", "updatemenus", "violingap", "violingroupgap", "violinmode", "waterfallgap", "waterfallgroupgap", "waterfallmode", "width", "xaxis", "yaxis"}
 
         if arg is None:
             arg = {}
@@ -3413,110 +3187,110 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Layout
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Layout`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("activeselection", arg, activeselection)
-        self._set_property("activeshape", arg, activeshape)
-        self._set_property("annotations", arg, annotations)
-        self._set_property("annotationdefaults", arg, annotationdefaults)
-        self._set_property("autosize", arg, autosize)
-        self._set_property("autotypenumbers", arg, autotypenumbers)
-        self._set_property("barcornerradius", arg, barcornerradius)
-        self._set_property("bargap", arg, bargap)
-        self._set_property("bargroupgap", arg, bargroupgap)
-        self._set_property("barmode", arg, barmode)
-        self._set_property("barnorm", arg, barnorm)
-        self._set_property("boxgap", arg, boxgap)
-        self._set_property("boxgroupgap", arg, boxgroupgap)
-        self._set_property("boxmode", arg, boxmode)
-        self._set_property("calendar", arg, calendar)
-        self._set_property("clickmode", arg, clickmode)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorway", arg, colorway)
-        self._set_property("computed", arg, computed)
-        self._set_property("datarevision", arg, datarevision)
-        self._set_property("dragmode", arg, dragmode)
-        self._set_property("editrevision", arg, editrevision)
-        self._set_property("extendfunnelareacolors", arg, extendfunnelareacolors)
-        self._set_property("extendiciclecolors", arg, extendiciclecolors)
-        self._set_property("extendpiecolors", arg, extendpiecolors)
-        self._set_property("extendsunburstcolors", arg, extendsunburstcolors)
-        self._set_property("extendtreemapcolors", arg, extendtreemapcolors)
-        self._set_property("font", arg, font)
-        self._set_property("funnelareacolorway", arg, funnelareacolorway)
-        self._set_property("funnelgap", arg, funnelgap)
-        self._set_property("funnelgroupgap", arg, funnelgroupgap)
-        self._set_property("funnelmode", arg, funnelmode)
-        self._set_property("geo", arg, geo)
-        self._set_property("grid", arg, grid)
-        self._set_property("height", arg, height)
-        self._set_property("hiddenlabels", arg, hiddenlabels)
-        self._set_property("hiddenlabelssrc", arg, hiddenlabelssrc)
-        self._set_property("hidesources", arg, hidesources)
-        self._set_property("hoverdistance", arg, hoverdistance)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovermode", arg, hovermode)
-        self._set_property("hoversubplots", arg, hoversubplots)
-        self._set_property("iciclecolorway", arg, iciclecolorway)
-        self._set_property("images", arg, images)
-        self._set_property("imagedefaults", arg, imagedefaults)
-        self._set_property("legend", arg, legend)
-        self._set_property("map", arg, map)
-        self._set_property("mapbox", arg, mapbox)
-        self._set_property("margin", arg, margin)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("minreducedheight", arg, minreducedheight)
-        self._set_property("minreducedwidth", arg, minreducedwidth)
-        self._set_property("modebar", arg, modebar)
-        self._set_property("newselection", arg, newselection)
-        self._set_property("newshape", arg, newshape)
-        self._set_property("paper_bgcolor", arg, paper_bgcolor)
-        self._set_property("piecolorway", arg, piecolorway)
-        self._set_property("plot_bgcolor", arg, plot_bgcolor)
-        self._set_property("polar", arg, polar)
-        self._set_property("scattergap", arg, scattergap)
-        self._set_property("scattermode", arg, scattermode)
-        self._set_property("scene", arg, scene)
-        self._set_property("selectdirection", arg, selectdirection)
-        self._set_property("selectionrevision", arg, selectionrevision)
-        self._set_property("selections", arg, selections)
-        self._set_property("selectiondefaults", arg, selectiondefaults)
-        self._set_property("separators", arg, separators)
-        self._set_property("shapes", arg, shapes)
-        self._set_property("shapedefaults", arg, shapedefaults)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("sliders", arg, sliders)
-        self._set_property("sliderdefaults", arg, sliderdefaults)
-        self._set_property("smith", arg, smith)
-        self._set_property("spikedistance", arg, spikedistance)
-        self._set_property("sunburstcolorway", arg, sunburstcolorway)
-        self._set_property("template", arg, template)
-        self._set_property("ternary", arg, ternary)
-        self._set_property("title", arg, title)
-        self._set_property("transition", arg, transition)
-        self._set_property("treemapcolorway", arg, treemapcolorway)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("uniformtext", arg, uniformtext)
-        self._set_property("updatemenus", arg, updatemenus)
-        self._set_property("updatemenudefaults", arg, updatemenudefaults)
-        self._set_property("violingap", arg, violingap)
-        self._set_property("violingroupgap", arg, violingroupgap)
-        self._set_property("violinmode", arg, violinmode)
-        self._set_property("waterfallgap", arg, waterfallgap)
-        self._set_property("waterfallgroupgap", arg, waterfallgroupgap)
-        self._set_property("waterfallmode", arg, waterfallmode)
-        self._set_property("width", arg, width)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("yaxis", arg, yaxis)
+an instance of :class:`plotly.graph_objs.Layout`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('activeselection', arg, activeselection)
+        self._set_property('activeshape', arg, activeshape)
+        self._set_property('annotations', arg, annotations)
+        self._set_property('annotationdefaults', arg, annotationdefaults)
+        self._set_property('autosize', arg, autosize)
+        self._set_property('autotypenumbers', arg, autotypenumbers)
+        self._set_property('barcornerradius', arg, barcornerradius)
+        self._set_property('bargap', arg, bargap)
+        self._set_property('bargroupgap', arg, bargroupgap)
+        self._set_property('barmode', arg, barmode)
+        self._set_property('barnorm', arg, barnorm)
+        self._set_property('boxgap', arg, boxgap)
+        self._set_property('boxgroupgap', arg, boxgroupgap)
+        self._set_property('boxmode', arg, boxmode)
+        self._set_property('calendar', arg, calendar)
+        self._set_property('clickmode', arg, clickmode)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorway', arg, colorway)
+        self._set_property('computed', arg, computed)
+        self._set_property('datarevision', arg, datarevision)
+        self._set_property('dragmode', arg, dragmode)
+        self._set_property('editrevision', arg, editrevision)
+        self._set_property('extendfunnelareacolors', arg, extendfunnelareacolors)
+        self._set_property('extendiciclecolors', arg, extendiciclecolors)
+        self._set_property('extendpiecolors', arg, extendpiecolors)
+        self._set_property('extendsunburstcolors', arg, extendsunburstcolors)
+        self._set_property('extendtreemapcolors', arg, extendtreemapcolors)
+        self._set_property('font', arg, font)
+        self._set_property('funnelareacolorway', arg, funnelareacolorway)
+        self._set_property('funnelgap', arg, funnelgap)
+        self._set_property('funnelgroupgap', arg, funnelgroupgap)
+        self._set_property('funnelmode', arg, funnelmode)
+        self._set_property('geo', arg, geo)
+        self._set_property('grid', arg, grid)
+        self._set_property('height', arg, height)
+        self._set_property('hiddenlabels', arg, hiddenlabels)
+        self._set_property('hiddenlabelssrc', arg, hiddenlabelssrc)
+        self._set_property('hidesources', arg, hidesources)
+        self._set_property('hoverdistance', arg, hoverdistance)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovermode', arg, hovermode)
+        self._set_property('hoversubplots', arg, hoversubplots)
+        self._set_property('iciclecolorway', arg, iciclecolorway)
+        self._set_property('images', arg, images)
+        self._set_property('imagedefaults', arg, imagedefaults)
+        self._set_property('legend', arg, legend)
+        self._set_property('map', arg, map)
+        self._set_property('mapbox', arg, mapbox)
+        self._set_property('margin', arg, margin)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('minreducedheight', arg, minreducedheight)
+        self._set_property('minreducedwidth', arg, minreducedwidth)
+        self._set_property('modebar', arg, modebar)
+        self._set_property('newselection', arg, newselection)
+        self._set_property('newshape', arg, newshape)
+        self._set_property('paper_bgcolor', arg, paper_bgcolor)
+        self._set_property('piecolorway', arg, piecolorway)
+        self._set_property('plot_bgcolor', arg, plot_bgcolor)
+        self._set_property('polar', arg, polar)
+        self._set_property('scattergap', arg, scattergap)
+        self._set_property('scattermode', arg, scattermode)
+        self._set_property('scene', arg, scene)
+        self._set_property('selectdirection', arg, selectdirection)
+        self._set_property('selectionrevision', arg, selectionrevision)
+        self._set_property('selections', arg, selections)
+        self._set_property('selectiondefaults', arg, selectiondefaults)
+        self._set_property('separators', arg, separators)
+        self._set_property('shapes', arg, shapes)
+        self._set_property('shapedefaults', arg, shapedefaults)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('sliders', arg, sliders)
+        self._set_property('sliderdefaults', arg, sliderdefaults)
+        self._set_property('smith', arg, smith)
+        self._set_property('spikedistance', arg, spikedistance)
+        self._set_property('sunburstcolorway', arg, sunburstcolorway)
+        self._set_property('template', arg, template)
+        self._set_property('ternary', arg, ternary)
+        self._set_property('title', arg, title)
+        self._set_property('transition', arg, transition)
+        self._set_property('treemapcolorway', arg, treemapcolorway)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('uniformtext', arg, uniformtext)
+        self._set_property('updatemenus', arg, updatemenus)
+        self._set_property('updatemenudefaults', arg, updatemenudefaults)
+        self._set_property('violingap', arg, violingap)
+        self._set_property('violingroupgap', arg, violingroupgap)
+        self._set_property('violinmode', arg, violinmode)
+        self._set_property('waterfallgap', arg, waterfallgap)
+        self._set_property('waterfallgroupgap', arg, waterfallgroupgap)
+        self._set_property('waterfallmode', arg, waterfallmode)
+        self._set_property('width', arg, width)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('yaxis', arg, yaxis)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_mesh3d.py b/plotly/graph_objs/_mesh3d.py
index fa4ef25a7df..bad6823d2f6 100644
--- a/plotly/graph_objs/_mesh3d.py
+++ b/plotly/graph_objs/_mesh3d.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,81 +11,9 @@
 
 class Mesh3d(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "mesh3d"
-    _valid_props = {
-        "alphahull",
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "contour",
-        "customdata",
-        "customdatasrc",
-        "delaunayaxis",
-        "facecolor",
-        "facecolorsrc",
-        "flatshading",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "i",
-        "ids",
-        "idssrc",
-        "intensity",
-        "intensitymode",
-        "intensitysrc",
-        "isrc",
-        "j",
-        "jsrc",
-        "k",
-        "ksrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "lighting",
-        "lightposition",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "reversescale",
-        "scene",
-        "showlegend",
-        "showscale",
-        "stream",
-        "text",
-        "textsrc",
-        "type",
-        "uid",
-        "uirevision",
-        "vertexcolor",
-        "vertexcolorsrc",
-        "visible",
-        "x",
-        "xcalendar",
-        "xhoverformat",
-        "xsrc",
-        "y",
-        "ycalendar",
-        "yhoverformat",
-        "ysrc",
-        "z",
-        "zcalendar",
-        "zhoverformat",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'mesh3d'
+    _valid_props = {"alphahull", "autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "contour", "customdata", "customdatasrc", "delaunayaxis", "facecolor", "facecolorsrc", "flatshading", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "i", "ids", "idssrc", "intensity", "intensitymode", "intensitysrc", "isrc", "j", "jsrc", "k", "ksrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "lighting", "lightposition", "meta", "metasrc", "name", "opacity", "reversescale", "scene", "showlegend", "showscale", "stream", "text", "textsrc", "type", "uid", "uirevision", "vertexcolor", "vertexcolorsrc", "visible", "x", "xcalendar", "xhoverformat", "xsrc", "y", "ycalendar", "yhoverformat", "ysrc", "z", "zcalendar", "zhoverformat", "zsrc"}
 
     @property
     def alphahull(self):
@@ -110,11 +42,11 @@ def alphahull(self):
         -------
         int|float
         """
-        return self["alphahull"]
+        return self['alphahull']
 
     @alphahull.setter
     def alphahull(self, val):
-        self["alphahull"] = val
+        self['alphahull'] = val
 
     @property
     def autocolorscale(self):
@@ -133,11 +65,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -154,11 +86,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -174,11 +106,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -195,11 +127,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -215,11 +147,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -239,11 +171,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -264,11 +196,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -283,11 +215,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.mesh3d.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -334,11 +266,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def contour(self):
@@ -353,11 +285,11 @@ def contour(self):
         -------
         plotly.graph_objs.mesh3d.Contour
         """
-        return self["contour"]
+        return self['contour']
 
     @contour.setter
     def contour(self, val):
-        self["contour"] = val
+        self['contour'] = val
 
     @property
     def customdata(self):
@@ -374,11 +306,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -393,11 +325,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def delaunayaxis(self):
@@ -415,11 +347,11 @@ def delaunayaxis(self):
         -------
         Any
         """
-        return self["delaunayaxis"]
+        return self['delaunayaxis']
 
     @delaunayaxis.setter
     def delaunayaxis(self, val):
-        self["delaunayaxis"] = val
+        self['delaunayaxis'] = val
 
     @property
     def facecolor(self):
@@ -434,11 +366,11 @@ def facecolor(self):
         -------
         numpy.ndarray
         """
-        return self["facecolor"]
+        return self['facecolor']
 
     @facecolor.setter
     def facecolor(self, val):
-        self["facecolor"] = val
+        self['facecolor'] = val
 
     @property
     def facecolorsrc(self):
@@ -453,11 +385,11 @@ def facecolorsrc(self):
         -------
         str
         """
-        return self["facecolorsrc"]
+        return self['facecolorsrc']
 
     @facecolorsrc.setter
     def facecolorsrc(self, val):
-        self["facecolorsrc"] = val
+        self['facecolorsrc'] = val
 
     @property
     def flatshading(self):
@@ -473,11 +405,11 @@ def flatshading(self):
         -------
         bool
         """
-        return self["flatshading"]
+        return self['flatshading']
 
     @flatshading.setter
     def flatshading(self, val):
-        self["flatshading"] = val
+        self['flatshading'] = val
 
     @property
     def hoverinfo(self):
@@ -497,11 +429,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -516,11 +448,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -535,11 +467,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.mesh3d.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -577,11 +509,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -596,11 +528,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -616,11 +548,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -635,11 +567,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def i(self):
@@ -659,11 +591,11 @@ def i(self):
         -------
         numpy.ndarray
         """
-        return self["i"]
+        return self['i']
 
     @i.setter
     def i(self, val):
-        self["i"] = val
+        self['i'] = val
 
     @property
     def ids(self):
@@ -679,11 +611,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -697,11 +629,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def intensity(self):
@@ -716,11 +648,11 @@ def intensity(self):
         -------
         numpy.ndarray
         """
-        return self["intensity"]
+        return self['intensity']
 
     @intensity.setter
     def intensity(self, val):
-        self["intensity"] = val
+        self['intensity'] = val
 
     @property
     def intensitymode(self):
@@ -735,11 +667,11 @@ def intensitymode(self):
         -------
         Any
         """
-        return self["intensitymode"]
+        return self['intensitymode']
 
     @intensitymode.setter
     def intensitymode(self, val):
-        self["intensitymode"] = val
+        self['intensitymode'] = val
 
     @property
     def intensitysrc(self):
@@ -754,11 +686,11 @@ def intensitysrc(self):
         -------
         str
         """
-        return self["intensitysrc"]
+        return self['intensitysrc']
 
     @intensitysrc.setter
     def intensitysrc(self, val):
-        self["intensitysrc"] = val
+        self['intensitysrc'] = val
 
     @property
     def isrc(self):
@@ -772,11 +704,11 @@ def isrc(self):
         -------
         str
         """
-        return self["isrc"]
+        return self['isrc']
 
     @isrc.setter
     def isrc(self, val):
-        self["isrc"] = val
+        self['isrc'] = val
 
     @property
     def j(self):
@@ -796,11 +728,11 @@ def j(self):
         -------
         numpy.ndarray
         """
-        return self["j"]
+        return self['j']
 
     @j.setter
     def j(self, val):
-        self["j"] = val
+        self['j'] = val
 
     @property
     def jsrc(self):
@@ -814,11 +746,11 @@ def jsrc(self):
         -------
         str
         """
-        return self["jsrc"]
+        return self['jsrc']
 
     @jsrc.setter
     def jsrc(self, val):
-        self["jsrc"] = val
+        self['jsrc'] = val
 
     @property
     def k(self):
@@ -838,11 +770,11 @@ def k(self):
         -------
         numpy.ndarray
         """
-        return self["k"]
+        return self['k']
 
     @k.setter
     def k(self, val):
-        self["k"] = val
+        self['k'] = val
 
     @property
     def ksrc(self):
@@ -856,11 +788,11 @@ def ksrc(self):
         -------
         str
         """
-        return self["ksrc"]
+        return self['ksrc']
 
     @ksrc.setter
     def ksrc(self, val):
-        self["ksrc"] = val
+        self['ksrc'] = val
 
     @property
     def legend(self):
@@ -879,11 +811,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -900,11 +832,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -919,11 +851,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.mesh3d.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -944,11 +876,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -963,11 +895,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def lighting(self):
@@ -982,11 +914,11 @@ def lighting(self):
         -------
         plotly.graph_objs.mesh3d.Lighting
         """
-        return self["lighting"]
+        return self['lighting']
 
     @lighting.setter
     def lighting(self, val):
-        self["lighting"] = val
+        self['lighting'] = val
 
     @property
     def lightposition(self):
@@ -1001,11 +933,11 @@ def lightposition(self):
         -------
         plotly.graph_objs.mesh3d.Lightposition
         """
-        return self["lightposition"]
+        return self['lightposition']
 
     @lightposition.setter
     def lightposition(self, val):
-        self["lightposition"] = val
+        self['lightposition'] = val
 
     @property
     def meta(self):
@@ -1027,11 +959,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -1045,11 +977,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -1065,11 +997,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -1088,11 +1020,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def reversescale(self):
@@ -1108,11 +1040,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def scene(self):
@@ -1131,11 +1063,11 @@ def scene(self):
         -------
         str
         """
-        return self["scene"]
+        return self['scene']
 
     @scene.setter
     def scene(self, val):
-        self["scene"] = val
+        self['scene'] = val
 
     @property
     def showlegend(self):
@@ -1150,11 +1082,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showscale(self):
@@ -1169,11 +1101,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def stream(self):
@@ -1188,11 +1120,11 @@ def stream(self):
         -------
         plotly.graph_objs.mesh3d.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -1210,11 +1142,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -1228,11 +1160,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def uid(self):
@@ -1248,11 +1180,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1279,11 +1211,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def vertexcolor(self):
@@ -1300,11 +1232,11 @@ def vertexcolor(self):
         -------
         numpy.ndarray
         """
-        return self["vertexcolor"]
+        return self['vertexcolor']
 
     @vertexcolor.setter
     def vertexcolor(self, val):
-        self["vertexcolor"] = val
+        self['vertexcolor'] = val
 
     @property
     def vertexcolorsrc(self):
@@ -1319,11 +1251,11 @@ def vertexcolorsrc(self):
         -------
         str
         """
-        return self["vertexcolorsrc"]
+        return self['vertexcolorsrc']
 
     @vertexcolorsrc.setter
     def vertexcolorsrc(self, val):
-        self["vertexcolorsrc"] = val
+        self['vertexcolorsrc'] = val
 
     @property
     def visible(self):
@@ -1340,11 +1272,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -1360,11 +1292,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xcalendar(self):
@@ -1382,11 +1314,11 @@ def xcalendar(self):
         -------
         Any
         """
-        return self["xcalendar"]
+        return self['xcalendar']
 
     @xcalendar.setter
     def xcalendar(self, val):
-        self["xcalendar"] = val
+        self['xcalendar'] = val
 
     @property
     def xhoverformat(self):
@@ -1411,11 +1343,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xsrc(self):
@@ -1429,11 +1361,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -1449,11 +1381,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def ycalendar(self):
@@ -1471,11 +1403,11 @@ def ycalendar(self):
         -------
         Any
         """
-        return self["ycalendar"]
+        return self['ycalendar']
 
     @ycalendar.setter
     def ycalendar(self, val):
-        self["ycalendar"] = val
+        self['ycalendar'] = val
 
     @property
     def yhoverformat(self):
@@ -1500,11 +1432,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def ysrc(self):
@@ -1518,11 +1450,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def z(self):
@@ -1538,11 +1470,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zcalendar(self):
@@ -1560,11 +1492,11 @@ def zcalendar(self):
         -------
         Any
         """
-        return self["zcalendar"]
+        return self['zcalendar']
 
     @zcalendar.setter
     def zcalendar(self, val):
-        self["zcalendar"] = val
+        self['zcalendar'] = val
 
     @property
     def zhoverformat(self):
@@ -1589,11 +1521,11 @@ def zhoverformat(self):
         -------
         str
         """
-        return self["zhoverformat"]
+        return self['zhoverformat']
 
     @zhoverformat.setter
     def zhoverformat(self, val):
-        self["zhoverformat"] = val
+        self['zhoverformat'] = val
 
     @property
     def zsrc(self):
@@ -1607,15 +1539,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -2004,82 +1936,80 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        alphahull=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        contour=None,
-        customdata=None,
-        customdatasrc=None,
-        delaunayaxis=None,
-        facecolor=None,
-        facecolorsrc=None,
-        flatshading=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        i=None,
-        ids=None,
-        idssrc=None,
-        intensity=None,
-        intensitymode=None,
-        intensitysrc=None,
-        isrc=None,
-        j=None,
-        jsrc=None,
-        k=None,
-        ksrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        vertexcolor=None,
-        vertexcolorsrc=None,
-        visible=None,
-        x=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        ycalendar=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zcalendar=None,
-        zhoverformat=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            alphahull=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            contour=None,
+            customdata=None,
+            customdatasrc=None,
+            delaunayaxis=None,
+            facecolor=None,
+            facecolorsrc=None,
+            flatshading=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            i=None,
+            ids=None,
+            idssrc=None,
+            intensity=None,
+            intensitymode=None,
+            intensitysrc=None,
+            isrc=None,
+            j=None,
+            jsrc=None,
+            k=None,
+            ksrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            vertexcolor=None,
+            vertexcolorsrc=None,
+            visible=None,
+            x=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            ycalendar=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zcalendar=None,
+            zhoverformat=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Mesh3d object
 
@@ -2481,9 +2411,9 @@ def __init__(
         -------
         Mesh3d
         """
-        super().__init__("mesh3d")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('mesh3d')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2493,88 +2423,89 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Mesh3d
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Mesh3d`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("alphahull", arg, alphahull)
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("contour", arg, contour)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("delaunayaxis", arg, delaunayaxis)
-        self._set_property("facecolor", arg, facecolor)
-        self._set_property("facecolorsrc", arg, facecolorsrc)
-        self._set_property("flatshading", arg, flatshading)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("i", arg, i)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("intensity", arg, intensity)
-        self._set_property("intensitymode", arg, intensitymode)
-        self._set_property("intensitysrc", arg, intensitysrc)
-        self._set_property("isrc", arg, isrc)
-        self._set_property("j", arg, j)
-        self._set_property("jsrc", arg, jsrc)
-        self._set_property("k", arg, k)
-        self._set_property("ksrc", arg, ksrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("lighting", arg, lighting)
-        self._set_property("lightposition", arg, lightposition)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("scene", arg, scene)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("vertexcolor", arg, vertexcolor)
-        self._set_property("vertexcolorsrc", arg, vertexcolorsrc)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("xcalendar", arg, xcalendar)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("ycalendar", arg, ycalendar)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("z", arg, z)
-        self._set_property("zcalendar", arg, zcalendar)
-        self._set_property("zhoverformat", arg, zhoverformat)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "mesh3d"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Mesh3d`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('alphahull', arg, alphahull)
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('contour', arg, contour)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('delaunayaxis', arg, delaunayaxis)
+        self._set_property('facecolor', arg, facecolor)
+        self._set_property('facecolorsrc', arg, facecolorsrc)
+        self._set_property('flatshading', arg, flatshading)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('i', arg, i)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('intensity', arg, intensity)
+        self._set_property('intensitymode', arg, intensitymode)
+        self._set_property('intensitysrc', arg, intensitysrc)
+        self._set_property('isrc', arg, isrc)
+        self._set_property('j', arg, j)
+        self._set_property('jsrc', arg, jsrc)
+        self._set_property('k', arg, k)
+        self._set_property('ksrc', arg, ksrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('lighting', arg, lighting)
+        self._set_property('lightposition', arg, lightposition)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('scene', arg, scene)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('vertexcolor', arg, vertexcolor)
+        self._set_property('vertexcolorsrc', arg, vertexcolorsrc)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('xcalendar', arg, xcalendar)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('ycalendar', arg, ycalendar)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('z', arg, z)
+        self._set_property('zcalendar', arg, zcalendar)
+        self._set_property('zhoverformat', arg, zhoverformat)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'mesh3d'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_ohlc.py b/plotly/graph_objs/_ohlc.py
index 3b3b43c4e9a..bc7fb24363b 100644
--- a/plotly/graph_objs/_ohlc.py
+++ b/plotly/graph_objs/_ohlc.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,60 +11,9 @@
 
 class Ohlc(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "ohlc"
-    _valid_props = {
-        "close",
-        "closesrc",
-        "customdata",
-        "customdatasrc",
-        "decreasing",
-        "high",
-        "highsrc",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "increasing",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "low",
-        "lowsrc",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "open",
-        "opensrc",
-        "selectedpoints",
-        "showlegend",
-        "stream",
-        "text",
-        "textsrc",
-        "tickwidth",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-        "x",
-        "xaxis",
-        "xcalendar",
-        "xhoverformat",
-        "xperiod",
-        "xperiod0",
-        "xperiodalignment",
-        "xsrc",
-        "yaxis",
-        "yhoverformat",
-        "zorder",
-    }
+    _parent_path_str = ''
+    _path_str = 'ohlc'
+    _valid_props = {"close", "closesrc", "customdata", "customdatasrc", "decreasing", "high", "highsrc", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertext", "hovertextsrc", "ids", "idssrc", "increasing", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "low", "lowsrc", "meta", "metasrc", "name", "opacity", "open", "opensrc", "selectedpoints", "showlegend", "stream", "text", "textsrc", "tickwidth", "type", "uid", "uirevision", "visible", "x", "xaxis", "xcalendar", "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", "xsrc", "yaxis", "yhoverformat", "zorder"}
 
     @property
     def close(self):
@@ -74,11 +27,11 @@ def close(self):
         -------
         numpy.ndarray
         """
-        return self["close"]
+        return self['close']
 
     @close.setter
     def close(self, val):
-        self["close"] = val
+        self['close'] = val
 
     @property
     def closesrc(self):
@@ -92,11 +45,11 @@ def closesrc(self):
         -------
         str
         """
-        return self["closesrc"]
+        return self['closesrc']
 
     @closesrc.setter
     def closesrc(self, val):
-        self["closesrc"] = val
+        self['closesrc'] = val
 
     @property
     def customdata(self):
@@ -113,11 +66,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -132,11 +85,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def decreasing(self):
@@ -151,11 +104,11 @@ def decreasing(self):
         -------
         plotly.graph_objs.ohlc.Decreasing
         """
-        return self["decreasing"]
+        return self['decreasing']
 
     @decreasing.setter
     def decreasing(self, val):
-        self["decreasing"] = val
+        self['decreasing'] = val
 
     @property
     def high(self):
@@ -169,11 +122,11 @@ def high(self):
         -------
         numpy.ndarray
         """
-        return self["high"]
+        return self['high']
 
     @high.setter
     def high(self, val):
-        self["high"] = val
+        self['high'] = val
 
     @property
     def highsrc(self):
@@ -187,11 +140,11 @@ def highsrc(self):
         -------
         str
         """
-        return self["highsrc"]
+        return self['highsrc']
 
     @highsrc.setter
     def highsrc(self, val):
-        self["highsrc"] = val
+        self['highsrc'] = val
 
     @property
     def hoverinfo(self):
@@ -211,11 +164,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -230,11 +183,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -249,11 +202,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.ohlc.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertext(self):
@@ -269,11 +222,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -288,11 +241,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -308,11 +261,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -326,11 +279,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def increasing(self):
@@ -345,11 +298,11 @@ def increasing(self):
         -------
         plotly.graph_objs.ohlc.Increasing
         """
-        return self["increasing"]
+        return self['increasing']
 
     @increasing.setter
     def increasing(self, val):
-        self["increasing"] = val
+        self['increasing'] = val
 
     @property
     def legend(self):
@@ -368,11 +321,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -389,11 +342,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -408,11 +361,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.ohlc.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -433,11 +386,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -452,11 +405,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -471,11 +424,11 @@ def line(self):
         -------
         plotly.graph_objs.ohlc.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def low(self):
@@ -489,11 +442,11 @@ def low(self):
         -------
         numpy.ndarray
         """
-        return self["low"]
+        return self['low']
 
     @low.setter
     def low(self, val):
-        self["low"] = val
+        self['low'] = val
 
     @property
     def lowsrc(self):
@@ -507,11 +460,11 @@ def lowsrc(self):
         -------
         str
         """
-        return self["lowsrc"]
+        return self['lowsrc']
 
     @lowsrc.setter
     def lowsrc(self, val):
-        self["lowsrc"] = val
+        self['lowsrc'] = val
 
     @property
     def meta(self):
@@ -533,11 +486,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -551,11 +504,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -571,11 +524,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -589,11 +542,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def open(self):
@@ -607,11 +560,11 @@ def open(self):
         -------
         numpy.ndarray
         """
-        return self["open"]
+        return self['open']
 
     @open.setter
     def open(self, val):
-        self["open"] = val
+        self['open'] = val
 
     @property
     def opensrc(self):
@@ -625,11 +578,11 @@ def opensrc(self):
         -------
         str
         """
-        return self["opensrc"]
+        return self['opensrc']
 
     @opensrc.setter
     def opensrc(self, val):
-        self["opensrc"] = val
+        self['opensrc'] = val
 
     @property
     def selectedpoints(self):
@@ -647,11 +600,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -666,11 +619,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -685,11 +638,11 @@ def stream(self):
         -------
         plotly.graph_objs.ohlc.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -708,11 +661,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -726,11 +679,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def tickwidth(self):
@@ -745,11 +698,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def uid(self):
@@ -765,11 +718,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -796,11 +749,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -817,11 +770,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -836,11 +789,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xaxis(self):
@@ -859,11 +812,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def xcalendar(self):
@@ -881,11 +834,11 @@ def xcalendar(self):
         -------
         Any
         """
-        return self["xcalendar"]
+        return self['xcalendar']
 
     @xcalendar.setter
     def xcalendar(self, val):
-        self["xcalendar"] = val
+        self['xcalendar'] = val
 
     @property
     def xhoverformat(self):
@@ -910,11 +863,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xperiod(self):
@@ -930,11 +883,11 @@ def xperiod(self):
         -------
         Any
         """
-        return self["xperiod"]
+        return self['xperiod']
 
     @xperiod.setter
     def xperiod(self, val):
-        self["xperiod"] = val
+        self['xperiod'] = val
 
     @property
     def xperiod0(self):
@@ -951,11 +904,11 @@ def xperiod0(self):
         -------
         Any
         """
-        return self["xperiod0"]
+        return self['xperiod0']
 
     @xperiod0.setter
     def xperiod0(self, val):
-        self["xperiod0"] = val
+        self['xperiod0'] = val
 
     @property
     def xperiodalignment(self):
@@ -971,11 +924,11 @@ def xperiodalignment(self):
         -------
         Any
         """
-        return self["xperiodalignment"]
+        return self['xperiodalignment']
 
     @xperiodalignment.setter
     def xperiodalignment(self, val):
-        self["xperiodalignment"] = val
+        self['xperiodalignment'] = val
 
     @property
     def xsrc(self):
@@ -989,11 +942,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def yaxis(self):
@@ -1012,11 +965,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def yhoverformat(self):
@@ -1041,11 +994,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def zorder(self):
@@ -1061,15 +1014,15 @@ def zorder(self):
         -------
         int
         """
-        return self["zorder"]
+        return self['zorder']
 
     @zorder.setter
     def zorder(self, val):
-        self["zorder"] = val
+        self['zorder'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1299,61 +1252,59 @@ def _prop_descriptions(self):
             traces with higher `zorder` appear in front of those
             with lower `zorder`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        close=None,
-        closesrc=None,
-        customdata=None,
-        customdatasrc=None,
-        decreasing=None,
-        high=None,
-        highsrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        increasing=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        low=None,
-        lowsrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        open=None,
-        opensrc=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        tickwidth=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        yaxis=None,
-        yhoverformat=None,
-        zorder=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            close=None,
+            closesrc=None,
+            customdata=None,
+            customdatasrc=None,
+            decreasing=None,
+            high=None,
+            highsrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            increasing=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            low=None,
+            lowsrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            open=None,
+            opensrc=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            tickwidth=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            yaxis=None,
+            yhoverformat=None,
+            zorder=None,
+            **kwargs
+        ):
         """
         Construct a new Ohlc object
 
@@ -1600,9 +1551,9 @@ def __init__(
         -------
         Ohlc
         """
-        super().__init__("ohlc")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('ohlc')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1612,67 +1563,68 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Ohlc
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Ohlc`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("close", arg, close)
-        self._set_property("closesrc", arg, closesrc)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("decreasing", arg, decreasing)
-        self._set_property("high", arg, high)
-        self._set_property("highsrc", arg, highsrc)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("increasing", arg, increasing)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("low", arg, low)
-        self._set_property("lowsrc", arg, lowsrc)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("open", arg, open)
-        self._set_property("opensrc", arg, opensrc)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("xcalendar", arg, xcalendar)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xperiod", arg, xperiod)
-        self._set_property("xperiod0", arg, xperiod0)
-        self._set_property("xperiodalignment", arg, xperiodalignment)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("zorder", arg, zorder)
-
-        self._props["type"] = "ohlc"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Ohlc`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('close', arg, close)
+        self._set_property('closesrc', arg, closesrc)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('decreasing', arg, decreasing)
+        self._set_property('high', arg, high)
+        self._set_property('highsrc', arg, highsrc)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('increasing', arg, increasing)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('low', arg, low)
+        self._set_property('lowsrc', arg, lowsrc)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('open', arg, open)
+        self._set_property('opensrc', arg, opensrc)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('xcalendar', arg, xcalendar)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xperiod', arg, xperiod)
+        self._set_property('xperiod0', arg, xperiod0)
+        self._set_property('xperiodalignment', arg, xperiodalignment)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('zorder', arg, zorder)
+
+
+        self._props['type'] = 'ohlc'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_parcats.py b/plotly/graph_objs/_parcats.py
index d9122c5c972..bdd37dea6e6 100644
--- a/plotly/graph_objs/_parcats.py
+++ b/plotly/graph_objs/_parcats.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,34 +11,9 @@
 
 class Parcats(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "parcats"
-    _valid_props = {
-        "arrangement",
-        "bundlecolors",
-        "counts",
-        "countssrc",
-        "dimensiondefaults",
-        "dimensions",
-        "domain",
-        "hoverinfo",
-        "hoveron",
-        "hovertemplate",
-        "labelfont",
-        "legendgrouptitle",
-        "legendwidth",
-        "line",
-        "meta",
-        "metasrc",
-        "name",
-        "sortpaths",
-        "stream",
-        "tickfont",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'parcats'
+    _valid_props = {"arrangement", "bundlecolors", "counts", "countssrc", "dimensiondefaults", "dimensions", "domain", "hoverinfo", "hoveron", "hovertemplate", "labelfont", "legendgrouptitle", "legendwidth", "line", "meta", "metasrc", "name", "sortpaths", "stream", "tickfont", "type", "uid", "uirevision", "visible"}
 
     @property
     def arrangement(self):
@@ -53,11 +32,11 @@ def arrangement(self):
         -------
         Any
         """
-        return self["arrangement"]
+        return self['arrangement']
 
     @arrangement.setter
     def arrangement(self, val):
-        self["arrangement"] = val
+        self['arrangement'] = val
 
     @property
     def bundlecolors(self):
@@ -72,11 +51,11 @@ def bundlecolors(self):
         -------
         bool
         """
-        return self["bundlecolors"]
+        return self['bundlecolors']
 
     @bundlecolors.setter
     def bundlecolors(self, val):
-        self["bundlecolors"] = val
+        self['bundlecolors'] = val
 
     @property
     def counts(self):
@@ -92,11 +71,11 @@ def counts(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["counts"]
+        return self['counts']
 
     @counts.setter
     def counts(self, val):
-        self["counts"] = val
+        self['counts'] = val
 
     @property
     def countssrc(self):
@@ -110,11 +89,11 @@ def countssrc(self):
         -------
         str
         """
-        return self["countssrc"]
+        return self['countssrc']
 
     @countssrc.setter
     def countssrc(self, val):
-        self["countssrc"] = val
+        self['countssrc'] = val
 
     @property
     def dimensions(self):
@@ -131,11 +110,11 @@ def dimensions(self):
         -------
         tuple[plotly.graph_objs.parcats.Dimension]
         """
-        return self["dimensions"]
+        return self['dimensions']
 
     @dimensions.setter
     def dimensions(self, val):
-        self["dimensions"] = val
+        self['dimensions'] = val
 
     @property
     def dimensiondefaults(self):
@@ -155,11 +134,11 @@ def dimensiondefaults(self):
         -------
         plotly.graph_objs.parcats.Dimension
         """
-        return self["dimensiondefaults"]
+        return self['dimensiondefaults']
 
     @dimensiondefaults.setter
     def dimensiondefaults(self, val):
-        self["dimensiondefaults"] = val
+        self['dimensiondefaults'] = val
 
     @property
     def domain(self):
@@ -174,11 +153,11 @@ def domain(self):
         -------
         plotly.graph_objs.parcats.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def hoverinfo(self):
@@ -197,11 +176,11 @@ def hoverinfo(self):
         -------
         Any
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoveron(self):
@@ -220,11 +199,11 @@ def hoveron(self):
         -------
         Any
         """
-        return self["hoveron"]
+        return self['hoveron']
 
     @hoveron.setter
     def hoveron(self, val):
-        self["hoveron"] = val
+        self['hoveron'] = val
 
     @property
     def hovertemplate(self):
@@ -267,11 +246,11 @@ def hovertemplate(self):
         -------
         str
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def labelfont(self):
@@ -288,11 +267,11 @@ def labelfont(self):
         -------
         plotly.graph_objs.parcats.Labelfont
         """
-        return self["labelfont"]
+        return self['labelfont']
 
     @labelfont.setter
     def labelfont(self, val):
-        self["labelfont"] = val
+        self['labelfont'] = val
 
     @property
     def legendgrouptitle(self):
@@ -307,11 +286,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.parcats.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendwidth(self):
@@ -326,11 +305,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -345,11 +324,11 @@ def line(self):
         -------
         plotly.graph_objs.parcats.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def meta(self):
@@ -371,11 +350,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -389,11 +368,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -409,11 +388,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def sortpaths(self):
@@ -430,11 +409,11 @@ def sortpaths(self):
         -------
         Any
         """
-        return self["sortpaths"]
+        return self['sortpaths']
 
     @sortpaths.setter
     def sortpaths(self, val):
-        self["sortpaths"] = val
+        self['sortpaths'] = val
 
     @property
     def stream(self):
@@ -449,11 +428,11 @@ def stream(self):
         -------
         plotly.graph_objs.parcats.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def tickfont(self):
@@ -470,11 +449,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.parcats.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def uid(self):
@@ -490,11 +469,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -521,11 +500,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -542,15 +521,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -698,35 +677,33 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        arrangement=None,
-        bundlecolors=None,
-        counts=None,
-        countssrc=None,
-        dimensions=None,
-        dimensiondefaults=None,
-        domain=None,
-        hoverinfo=None,
-        hoveron=None,
-        hovertemplate=None,
-        labelfont=None,
-        legendgrouptitle=None,
-        legendwidth=None,
-        line=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        sortpaths=None,
-        stream=None,
-        tickfont=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            arrangement=None,
+            bundlecolors=None,
+            counts=None,
+            countssrc=None,
+            dimensions=None,
+            dimensiondefaults=None,
+            domain=None,
+            hoverinfo=None,
+            hoveron=None,
+            hovertemplate=None,
+            labelfont=None,
+            legendgrouptitle=None,
+            legendwidth=None,
+            line=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            sortpaths=None,
+            stream=None,
+            tickfont=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Parcats object
 
@@ -885,9 +862,9 @@ def __init__(
         -------
         Parcats
         """
-        super().__init__("parcats")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('parcats')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -897,41 +874,42 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Parcats
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Parcats`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("arrangement", arg, arrangement)
-        self._set_property("bundlecolors", arg, bundlecolors)
-        self._set_property("counts", arg, counts)
-        self._set_property("countssrc", arg, countssrc)
-        self._set_property("dimensions", arg, dimensions)
-        self._set_property("dimensiondefaults", arg, dimensiondefaults)
-        self._set_property("domain", arg, domain)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoveron", arg, hoveron)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("labelfont", arg, labelfont)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("sortpaths", arg, sortpaths)
-        self._set_property("stream", arg, stream)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "parcats"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Parcats`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('arrangement', arg, arrangement)
+        self._set_property('bundlecolors', arg, bundlecolors)
+        self._set_property('counts', arg, counts)
+        self._set_property('countssrc', arg, countssrc)
+        self._set_property('dimensions', arg, dimensions)
+        self._set_property('dimensiondefaults', arg, dimensiondefaults)
+        self._set_property('domain', arg, domain)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoveron', arg, hoveron)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('labelfont', arg, labelfont)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('sortpaths', arg, sortpaths)
+        self._set_property('stream', arg, stream)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'parcats'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_parcoords.py b/plotly/graph_objs/_parcoords.py
index f9100dc9002..898381d0c8c 100644
--- a/plotly/graph_objs/_parcoords.py
+++ b/plotly/graph_objs/_parcoords.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,36 +11,9 @@
 
 class Parcoords(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "parcoords"
-    _valid_props = {
-        "customdata",
-        "customdatasrc",
-        "dimensiondefaults",
-        "dimensions",
-        "domain",
-        "ids",
-        "idssrc",
-        "labelangle",
-        "labelfont",
-        "labelside",
-        "legend",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "meta",
-        "metasrc",
-        "name",
-        "rangefont",
-        "stream",
-        "tickfont",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'parcoords'
+    _valid_props = {"customdata", "customdatasrc", "dimensiondefaults", "dimensions", "domain", "ids", "idssrc", "labelangle", "labelfont", "labelside", "legend", "legendgrouptitle", "legendrank", "legendwidth", "line", "meta", "metasrc", "name", "rangefont", "stream", "tickfont", "type", "uid", "uirevision", "unselected", "visible"}
 
     @property
     def customdata(self):
@@ -53,11 +30,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -72,11 +49,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def dimensions(self):
@@ -94,11 +71,11 @@ def dimensions(self):
         -------
         tuple[plotly.graph_objs.parcoords.Dimension]
         """
-        return self["dimensions"]
+        return self['dimensions']
 
     @dimensions.setter
     def dimensions(self, val):
-        self["dimensions"] = val
+        self['dimensions'] = val
 
     @property
     def dimensiondefaults(self):
@@ -118,11 +95,11 @@ def dimensiondefaults(self):
         -------
         plotly.graph_objs.parcoords.Dimension
         """
-        return self["dimensiondefaults"]
+        return self['dimensiondefaults']
 
     @dimensiondefaults.setter
     def dimensiondefaults(self, val):
-        self["dimensiondefaults"] = val
+        self['dimensiondefaults'] = val
 
     @property
     def domain(self):
@@ -137,11 +114,11 @@ def domain(self):
         -------
         plotly.graph_objs.parcoords.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def ids(self):
@@ -157,11 +134,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -175,11 +152,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def labelangle(self):
@@ -198,11 +175,11 @@ def labelangle(self):
         -------
         int|float
         """
-        return self["labelangle"]
+        return self['labelangle']
 
     @labelangle.setter
     def labelangle(self, val):
-        self["labelangle"] = val
+        self['labelangle'] = val
 
     @property
     def labelfont(self):
@@ -219,11 +196,11 @@ def labelfont(self):
         -------
         plotly.graph_objs.parcoords.Labelfont
         """
-        return self["labelfont"]
+        return self['labelfont']
 
     @labelfont.setter
     def labelfont(self, val):
-        self["labelfont"] = val
+        self['labelfont'] = val
 
     @property
     def labelside(self):
@@ -241,11 +218,11 @@ def labelside(self):
         -------
         Any
         """
-        return self["labelside"]
+        return self['labelside']
 
     @labelside.setter
     def labelside(self, val):
-        self["labelside"] = val
+        self['labelside'] = val
 
     @property
     def legend(self):
@@ -264,11 +241,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgrouptitle(self):
@@ -283,11 +260,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.parcoords.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -308,11 +285,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -327,11 +304,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -346,11 +323,11 @@ def line(self):
         -------
         plotly.graph_objs.parcoords.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def meta(self):
@@ -372,11 +349,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -390,11 +367,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -410,11 +387,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def rangefont(self):
@@ -431,11 +408,11 @@ def rangefont(self):
         -------
         plotly.graph_objs.parcoords.Rangefont
         """
-        return self["rangefont"]
+        return self['rangefont']
 
     @rangefont.setter
     def rangefont(self, val):
-        self["rangefont"] = val
+        self['rangefont'] = val
 
     @property
     def stream(self):
@@ -450,11 +427,11 @@ def stream(self):
         -------
         plotly.graph_objs.parcoords.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def tickfont(self):
@@ -471,11 +448,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.parcoords.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def uid(self):
@@ -491,11 +468,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -522,11 +499,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -541,11 +518,11 @@ def unselected(self):
         -------
         plotly.graph_objs.parcoords.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -562,15 +539,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -698,37 +675,35 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        customdata=None,
-        customdatasrc=None,
-        dimensions=None,
-        dimensiondefaults=None,
-        domain=None,
-        ids=None,
-        idssrc=None,
-        labelangle=None,
-        labelfont=None,
-        labelside=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        rangefont=None,
-        stream=None,
-        tickfont=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            customdata=None,
+            customdatasrc=None,
+            dimensions=None,
+            dimensiondefaults=None,
+            domain=None,
+            ids=None,
+            idssrc=None,
+            labelangle=None,
+            labelfont=None,
+            labelside=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            rangefont=None,
+            stream=None,
+            tickfont=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Parcoords object
 
@@ -868,9 +843,9 @@ def __init__(
         -------
         Parcoords
         """
-        super().__init__("parcoords")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('parcoords')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -880,43 +855,44 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Parcoords
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Parcoords`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("dimensions", arg, dimensions)
-        self._set_property("dimensiondefaults", arg, dimensiondefaults)
-        self._set_property("domain", arg, domain)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("labelangle", arg, labelangle)
-        self._set_property("labelfont", arg, labelfont)
-        self._set_property("labelside", arg, labelside)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("rangefont", arg, rangefont)
-        self._set_property("stream", arg, stream)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "parcoords"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Parcoords`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('dimensions', arg, dimensions)
+        self._set_property('dimensiondefaults', arg, dimensiondefaults)
+        self._set_property('domain', arg, domain)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('labelangle', arg, labelangle)
+        self._set_property('labelfont', arg, labelfont)
+        self._set_property('labelside', arg, labelside)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('rangefont', arg, rangefont)
+        self._set_property('stream', arg, stream)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'parcoords'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_pie.py b/plotly/graph_objs/_pie.py
index 822cad3bc71..c6d55e626bc 100644
--- a/plotly/graph_objs/_pie.py
+++ b/plotly/graph_objs/_pie.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,64 +11,9 @@
 
 class Pie(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "pie"
-    _valid_props = {
-        "automargin",
-        "customdata",
-        "customdatasrc",
-        "direction",
-        "dlabel",
-        "domain",
-        "hole",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "insidetextfont",
-        "insidetextorientation",
-        "label0",
-        "labels",
-        "labelssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "marker",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "outsidetextfont",
-        "pull",
-        "pullsrc",
-        "rotation",
-        "scalegroup",
-        "showlegend",
-        "sort",
-        "stream",
-        "text",
-        "textfont",
-        "textinfo",
-        "textposition",
-        "textpositionsrc",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "title",
-        "type",
-        "uid",
-        "uirevision",
-        "values",
-        "valuessrc",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'pie'
+    _valid_props = {"automargin", "customdata", "customdatasrc", "direction", "dlabel", "domain", "hole", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "insidetextfont", "insidetextorientation", "label0", "labels", "labelssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "marker", "meta", "metasrc", "name", "opacity", "outsidetextfont", "pull", "pullsrc", "rotation", "scalegroup", "showlegend", "sort", "stream", "text", "textfont", "textinfo", "textposition", "textpositionsrc", "textsrc", "texttemplate", "texttemplatesrc", "title", "type", "uid", "uirevision", "values", "valuessrc", "visible"}
 
     @property
     def automargin(self):
@@ -78,11 +27,11 @@ def automargin(self):
         -------
         bool
         """
-        return self["automargin"]
+        return self['automargin']
 
     @automargin.setter
     def automargin(self, val):
-        self["automargin"] = val
+        self['automargin'] = val
 
     @property
     def customdata(self):
@@ -99,11 +48,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -118,11 +67,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def direction(self):
@@ -138,11 +87,11 @@ def direction(self):
         -------
         Any
         """
-        return self["direction"]
+        return self['direction']
 
     @direction.setter
     def direction(self, val):
-        self["direction"] = val
+        self['direction'] = val
 
     @property
     def dlabel(self):
@@ -156,11 +105,11 @@ def dlabel(self):
         -------
         int|float
         """
-        return self["dlabel"]
+        return self['dlabel']
 
     @dlabel.setter
     def dlabel(self, val):
-        self["dlabel"] = val
+        self['dlabel'] = val
 
     @property
     def domain(self):
@@ -175,11 +124,11 @@ def domain(self):
         -------
         plotly.graph_objs.pie.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def hole(self):
@@ -194,11 +143,11 @@ def hole(self):
         -------
         int|float
         """
-        return self["hole"]
+        return self['hole']
 
     @hole.setter
     def hole(self, val):
-        self["hole"] = val
+        self['hole'] = val
 
     @property
     def hoverinfo(self):
@@ -218,11 +167,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -237,11 +186,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -256,11 +205,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.pie.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -300,11 +249,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -319,11 +268,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -343,11 +292,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -362,11 +311,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -382,11 +331,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -400,11 +349,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def insidetextfont(self):
@@ -421,11 +370,11 @@ def insidetextfont(self):
         -------
         plotly.graph_objs.pie.Insidetextfont
         """
-        return self["insidetextfont"]
+        return self['insidetextfont']
 
     @insidetextfont.setter
     def insidetextfont(self, val):
-        self["insidetextfont"] = val
+        self['insidetextfont'] = val
 
     @property
     def insidetextorientation(self):
@@ -447,11 +396,11 @@ def insidetextorientation(self):
         -------
         Any
         """
-        return self["insidetextorientation"]
+        return self['insidetextorientation']
 
     @insidetextorientation.setter
     def insidetextorientation(self, val):
-        self["insidetextorientation"] = val
+        self['insidetextorientation'] = val
 
     @property
     def label0(self):
@@ -467,11 +416,11 @@ def label0(self):
         -------
         int|float
         """
-        return self["label0"]
+        return self['label0']
 
     @label0.setter
     def label0(self, val):
-        self["label0"] = val
+        self['label0'] = val
 
     @property
     def labels(self):
@@ -489,11 +438,11 @@ def labels(self):
         -------
         numpy.ndarray
         """
-        return self["labels"]
+        return self['labels']
 
     @labels.setter
     def labels(self, val):
-        self["labels"] = val
+        self['labels'] = val
 
     @property
     def labelssrc(self):
@@ -507,11 +456,11 @@ def labelssrc(self):
         -------
         str
         """
-        return self["labelssrc"]
+        return self['labelssrc']
 
     @labelssrc.setter
     def labelssrc(self, val):
-        self["labelssrc"] = val
+        self['labelssrc'] = val
 
     @property
     def legend(self):
@@ -530,11 +479,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -551,11 +500,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -570,11 +519,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.pie.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -595,11 +544,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -614,11 +563,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def marker(self):
@@ -633,11 +582,11 @@ def marker(self):
         -------
         plotly.graph_objs.pie.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -659,11 +608,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -677,11 +626,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -697,11 +646,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -715,11 +664,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def outsidetextfont(self):
@@ -736,11 +685,11 @@ def outsidetextfont(self):
         -------
         plotly.graph_objs.pie.Outsidetextfont
         """
-        return self["outsidetextfont"]
+        return self['outsidetextfont']
 
     @outsidetextfont.setter
     def outsidetextfont(self, val):
-        self["outsidetextfont"] = val
+        self['outsidetextfont'] = val
 
     @property
     def pull(self):
@@ -758,11 +707,11 @@ def pull(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["pull"]
+        return self['pull']
 
     @pull.setter
     def pull(self, val):
-        self["pull"] = val
+        self['pull'] = val
 
     @property
     def pullsrc(self):
@@ -776,11 +725,11 @@ def pullsrc(self):
         -------
         str
         """
-        return self["pullsrc"]
+        return self['pullsrc']
 
     @pullsrc.setter
     def pullsrc(self, val):
-        self["pullsrc"] = val
+        self['pullsrc'] = val
 
     @property
     def rotation(self):
@@ -797,11 +746,11 @@ def rotation(self):
         -------
         int|float
         """
-        return self["rotation"]
+        return self['rotation']
 
     @rotation.setter
     def rotation(self, val):
-        self["rotation"] = val
+        self['rotation'] = val
 
     @property
     def scalegroup(self):
@@ -818,11 +767,11 @@ def scalegroup(self):
         -------
         str
         """
-        return self["scalegroup"]
+        return self['scalegroup']
 
     @scalegroup.setter
     def scalegroup(self, val):
-        self["scalegroup"] = val
+        self['scalegroup'] = val
 
     @property
     def showlegend(self):
@@ -837,11 +786,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def sort(self):
@@ -856,11 +805,11 @@ def sort(self):
         -------
         bool
         """
-        return self["sort"]
+        return self['sort']
 
     @sort.setter
     def sort(self, val):
-        self["sort"] = val
+        self['sort'] = val
 
     @property
     def stream(self):
@@ -875,11 +824,11 @@ def stream(self):
         -------
         plotly.graph_objs.pie.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -897,11 +846,11 @@ def text(self):
         -------
         numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -918,11 +867,11 @@ def textfont(self):
         -------
         plotly.graph_objs.pie.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textinfo(self):
@@ -939,11 +888,11 @@ def textinfo(self):
         -------
         Any
         """
-        return self["textinfo"]
+        return self['textinfo']
 
     @textinfo.setter
     def textinfo(self, val):
-        self["textinfo"] = val
+        self['textinfo'] = val
 
     @property
     def textposition(self):
@@ -959,11 +908,11 @@ def textposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textpositionsrc(self):
@@ -978,11 +927,11 @@ def textpositionsrc(self):
         -------
         str
         """
-        return self["textpositionsrc"]
+        return self['textpositionsrc']
 
     @textpositionsrc.setter
     def textpositionsrc(self, val):
-        self["textpositionsrc"] = val
+        self['textpositionsrc'] = val
 
     @property
     def textsrc(self):
@@ -996,11 +945,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -1029,11 +978,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -1048,11 +997,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def title(self):
@@ -1067,11 +1016,11 @@ def title(self):
         -------
         plotly.graph_objs.pie.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def uid(self):
@@ -1087,11 +1036,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1118,11 +1067,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def values(self):
@@ -1137,11 +1086,11 @@ def values(self):
         -------
         numpy.ndarray
         """
-        return self["values"]
+        return self['values']
 
     @values.setter
     def values(self, val):
-        self["values"] = val
+        self['values'] = val
 
     @property
     def valuessrc(self):
@@ -1155,11 +1104,11 @@ def valuessrc(self):
         -------
         str
         """
-        return self["valuessrc"]
+        return self['valuessrc']
 
     @valuessrc.setter
     def valuessrc(self, val):
-        self["valuessrc"] = val
+        self['valuessrc'] = val
 
     @property
     def visible(self):
@@ -1176,15 +1125,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1452,65 +1401,63 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        automargin=None,
-        customdata=None,
-        customdatasrc=None,
-        direction=None,
-        dlabel=None,
-        domain=None,
-        hole=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextfont=None,
-        insidetextorientation=None,
-        label0=None,
-        labels=None,
-        labelssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        outsidetextfont=None,
-        pull=None,
-        pullsrc=None,
-        rotation=None,
-        scalegroup=None,
-        showlegend=None,
-        sort=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        title=None,
-        uid=None,
-        uirevision=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            automargin=None,
+            customdata=None,
+            customdatasrc=None,
+            direction=None,
+            dlabel=None,
+            domain=None,
+            hole=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextfont=None,
+            insidetextorientation=None,
+            label0=None,
+            labels=None,
+            labelssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            outsidetextfont=None,
+            pull=None,
+            pullsrc=None,
+            rotation=None,
+            scalegroup=None,
+            showlegend=None,
+            sort=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            title=None,
+            uid=None,
+            uirevision=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Pie object
 
@@ -1790,9 +1737,9 @@ def __init__(
         -------
         Pie
         """
-        super().__init__("pie")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('pie')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1802,71 +1749,72 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Pie
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Pie`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("automargin", arg, automargin)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("direction", arg, direction)
-        self._set_property("dlabel", arg, dlabel)
-        self._set_property("domain", arg, domain)
-        self._set_property("hole", arg, hole)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("insidetextfont", arg, insidetextfont)
-        self._set_property("insidetextorientation", arg, insidetextorientation)
-        self._set_property("label0", arg, label0)
-        self._set_property("labels", arg, labels)
-        self._set_property("labelssrc", arg, labelssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("outsidetextfont", arg, outsidetextfont)
-        self._set_property("pull", arg, pull)
-        self._set_property("pullsrc", arg, pullsrc)
-        self._set_property("rotation", arg, rotation)
-        self._set_property("scalegroup", arg, scalegroup)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("sort", arg, sort)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textinfo", arg, textinfo)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textpositionsrc", arg, textpositionsrc)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("title", arg, title)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("values", arg, values)
-        self._set_property("valuessrc", arg, valuessrc)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "pie"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Pie`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('automargin', arg, automargin)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('direction', arg, direction)
+        self._set_property('dlabel', arg, dlabel)
+        self._set_property('domain', arg, domain)
+        self._set_property('hole', arg, hole)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('insidetextfont', arg, insidetextfont)
+        self._set_property('insidetextorientation', arg, insidetextorientation)
+        self._set_property('label0', arg, label0)
+        self._set_property('labels', arg, labels)
+        self._set_property('labelssrc', arg, labelssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('outsidetextfont', arg, outsidetextfont)
+        self._set_property('pull', arg, pull)
+        self._set_property('pullsrc', arg, pullsrc)
+        self._set_property('rotation', arg, rotation)
+        self._set_property('scalegroup', arg, scalegroup)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('sort', arg, sort)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textinfo', arg, textinfo)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textpositionsrc', arg, textpositionsrc)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('title', arg, title)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('values', arg, values)
+        self._set_property('valuessrc', arg, valuessrc)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'pie'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_sankey.py b/plotly/graph_objs/_sankey.py
index 2fdac8ed9b4..3a54b73ed9a 100644
--- a/plotly/graph_objs/_sankey.py
+++ b/plotly/graph_objs/_sankey.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,37 +11,9 @@
 
 class Sankey(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "sankey"
-    _valid_props = {
-        "arrangement",
-        "customdata",
-        "customdatasrc",
-        "domain",
-        "hoverinfo",
-        "hoverlabel",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "link",
-        "meta",
-        "metasrc",
-        "name",
-        "node",
-        "orientation",
-        "selectedpoints",
-        "stream",
-        "textfont",
-        "type",
-        "uid",
-        "uirevision",
-        "valueformat",
-        "valuesuffix",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'sankey'
+    _valid_props = {"arrangement", "customdata", "customdatasrc", "domain", "hoverinfo", "hoverlabel", "ids", "idssrc", "legend", "legendgrouptitle", "legendrank", "legendwidth", "link", "meta", "metasrc", "name", "node", "orientation", "selectedpoints", "stream", "textfont", "type", "uid", "uirevision", "valueformat", "valuesuffix", "visible"}
 
     @property
     def arrangement(self):
@@ -58,11 +34,11 @@ def arrangement(self):
         -------
         Any
         """
-        return self["arrangement"]
+        return self['arrangement']
 
     @arrangement.setter
     def arrangement(self, val):
-        self["arrangement"] = val
+        self['arrangement'] = val
 
     @property
     def customdata(self):
@@ -79,11 +55,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -98,11 +74,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def domain(self):
@@ -117,11 +93,11 @@ def domain(self):
         -------
         plotly.graph_objs.sankey.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def hoverinfo(self):
@@ -142,11 +118,11 @@ def hoverinfo(self):
         -------
         Any
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverlabel(self):
@@ -161,11 +137,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.sankey.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def ids(self):
@@ -181,11 +157,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -199,11 +175,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -222,11 +198,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgrouptitle(self):
@@ -241,11 +217,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.sankey.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -266,11 +242,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -285,11 +261,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def link(self):
@@ -306,11 +282,11 @@ def link(self):
         -------
         plotly.graph_objs.sankey.Link
         """
-        return self["link"]
+        return self['link']
 
     @link.setter
     def link(self, val):
-        self["link"] = val
+        self['link'] = val
 
     @property
     def meta(self):
@@ -332,11 +308,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -350,11 +326,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -370,11 +346,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def node(self):
@@ -391,11 +367,11 @@ def node(self):
         -------
         plotly.graph_objs.sankey.Node
         """
-        return self["node"]
+        return self['node']
 
     @node.setter
     def node(self, val):
-        self["node"] = val
+        self['node'] = val
 
     @property
     def orientation(self):
@@ -410,11 +386,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def selectedpoints(self):
@@ -432,11 +408,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def stream(self):
@@ -451,11 +427,11 @@ def stream(self):
         -------
         plotly.graph_objs.sankey.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def textfont(self):
@@ -472,11 +448,11 @@ def textfont(self):
         -------
         plotly.graph_objs.sankey.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def uid(self):
@@ -492,11 +468,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -523,11 +499,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def valueformat(self):
@@ -545,11 +521,11 @@ def valueformat(self):
         -------
         str
         """
-        return self["valueformat"]
+        return self['valueformat']
 
     @valueformat.setter
     def valueformat(self, val):
-        self["valueformat"] = val
+        self['valueformat'] = val
 
     @property
     def valuesuffix(self):
@@ -565,11 +541,11 @@ def valuesuffix(self):
         -------
         str
         """
-        return self["valuesuffix"]
+        return self['valuesuffix']
 
     @valuesuffix.setter
     def valuesuffix(self, val):
-        self["valuesuffix"] = val
+        self['valuesuffix'] = val
 
     @property
     def visible(self):
@@ -586,15 +562,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -732,38 +708,36 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        arrangement=None,
-        customdata=None,
-        customdatasrc=None,
-        domain=None,
-        hoverinfo=None,
-        hoverlabel=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        link=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        node=None,
-        orientation=None,
-        selectedpoints=None,
-        stream=None,
-        textfont=None,
-        uid=None,
-        uirevision=None,
-        valueformat=None,
-        valuesuffix=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            arrangement=None,
+            customdata=None,
+            customdatasrc=None,
+            domain=None,
+            hoverinfo=None,
+            hoverlabel=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            link=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            node=None,
+            orientation=None,
+            selectedpoints=None,
+            stream=None,
+            textfont=None,
+            uid=None,
+            uirevision=None,
+            valueformat=None,
+            valuesuffix=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Sankey object
 
@@ -914,9 +888,9 @@ def __init__(
         -------
         Sankey
         """
-        super().__init__("sankey")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('sankey')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -926,44 +900,45 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Sankey
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Sankey`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("arrangement", arg, arrangement)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("domain", arg, domain)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("link", arg, link)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("node", arg, node)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("stream", arg, stream)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("valueformat", arg, valueformat)
-        self._set_property("valuesuffix", arg, valuesuffix)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "sankey"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Sankey`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('arrangement', arg, arrangement)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('domain', arg, domain)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('link', arg, link)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('node', arg, node)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('stream', arg, stream)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('valueformat', arg, valueformat)
+        self._set_property('valuesuffix', arg, valuesuffix)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'sankey'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_scatter.py b/plotly/graph_objs/_scatter.py
index 331daf4f9e0..ba4d355b1a3 100644
--- a/plotly/graph_objs/_scatter.py
+++ b/plotly/graph_objs/_scatter.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,85 +11,9 @@
 
 class Scatter(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "scatter"
-    _valid_props = {
-        "alignmentgroup",
-        "cliponaxis",
-        "connectgaps",
-        "customdata",
-        "customdatasrc",
-        "dx",
-        "dy",
-        "error_x",
-        "error_y",
-        "fill",
-        "fillcolor",
-        "fillgradient",
-        "fillpattern",
-        "groupnorm",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hoveron",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "marker",
-        "meta",
-        "metasrc",
-        "mode",
-        "name",
-        "offsetgroup",
-        "opacity",
-        "orientation",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "stackgaps",
-        "stackgroup",
-        "stream",
-        "text",
-        "textfont",
-        "textposition",
-        "textpositionsrc",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-        "x",
-        "x0",
-        "xaxis",
-        "xcalendar",
-        "xhoverformat",
-        "xperiod",
-        "xperiod0",
-        "xperiodalignment",
-        "xsrc",
-        "y",
-        "y0",
-        "yaxis",
-        "ycalendar",
-        "yhoverformat",
-        "yperiod",
-        "yperiod0",
-        "yperiodalignment",
-        "ysrc",
-        "zorder",
-    }
+    _parent_path_str = ''
+    _path_str = 'scatter'
+    _valid_props = {"alignmentgroup", "cliponaxis", "connectgaps", "customdata", "customdatasrc", "dx", "dy", "error_x", "error_y", "fill", "fillcolor", "fillgradient", "fillpattern", "groupnorm", "hoverinfo", "hoverinfosrc", "hoverlabel", "hoveron", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "marker", "meta", "metasrc", "mode", "name", "offsetgroup", "opacity", "orientation", "selected", "selectedpoints", "showlegend", "stackgaps", "stackgroup", "stream", "text", "textfont", "textposition", "textpositionsrc", "textsrc", "texttemplate", "texttemplatesrc", "type", "uid", "uirevision", "unselected", "visible", "x", "x0", "xaxis", "xcalendar", "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", "xsrc", "y", "y0", "yaxis", "ycalendar", "yhoverformat", "yperiod", "yperiod0", "yperiodalignment", "ysrc", "zorder"}
 
     @property
     def alignmentgroup(self):
@@ -102,11 +30,11 @@ def alignmentgroup(self):
         -------
         str
         """
-        return self["alignmentgroup"]
+        return self['alignmentgroup']
 
     @alignmentgroup.setter
     def alignmentgroup(self, val):
-        self["alignmentgroup"] = val
+        self['alignmentgroup'] = val
 
     @property
     def cliponaxis(self):
@@ -123,11 +51,11 @@ def cliponaxis(self):
         -------
         bool
         """
-        return self["cliponaxis"]
+        return self['cliponaxis']
 
     @cliponaxis.setter
     def cliponaxis(self, val):
-        self["cliponaxis"] = val
+        self['cliponaxis'] = val
 
     @property
     def connectgaps(self):
@@ -142,11 +70,11 @@ def connectgaps(self):
         -------
         bool
         """
-        return self["connectgaps"]
+        return self['connectgaps']
 
     @connectgaps.setter
     def connectgaps(self, val):
-        self["connectgaps"] = val
+        self['connectgaps'] = val
 
     @property
     def customdata(self):
@@ -163,11 +91,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -182,11 +110,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def dx(self):
@@ -200,11 +128,11 @@ def dx(self):
         -------
         int|float
         """
-        return self["dx"]
+        return self['dx']
 
     @dx.setter
     def dx(self, val):
-        self["dx"] = val
+        self['dx'] = val
 
     @property
     def dy(self):
@@ -218,11 +146,11 @@ def dy(self):
         -------
         int|float
         """
-        return self["dy"]
+        return self['dy']
 
     @dy.setter
     def dy(self, val):
-        self["dy"] = val
+        self['dy'] = val
 
     @property
     def error_x(self):
@@ -237,11 +165,11 @@ def error_x(self):
         -------
         plotly.graph_objs.scatter.ErrorX
         """
-        return self["error_x"]
+        return self['error_x']
 
     @error_x.setter
     def error_x(self, val):
-        self["error_x"] = val
+        self['error_x'] = val
 
     @property
     def error_y(self):
@@ -256,11 +184,11 @@ def error_y(self):
         -------
         plotly.graph_objs.scatter.ErrorY
         """
-        return self["error_y"]
+        return self['error_y']
 
     @error_y.setter
     def error_y(self, val):
-        self["error_y"] = val
+        self['error_y'] = val
 
     @property
     def fill(self):
@@ -294,11 +222,11 @@ def fill(self):
         -------
         Any
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def fillcolor(self):
@@ -320,11 +248,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def fillgradient(self):
@@ -342,11 +270,11 @@ def fillgradient(self):
         -------
         plotly.graph_objs.scatter.Fillgradient
         """
-        return self["fillgradient"]
+        return self['fillgradient']
 
     @fillgradient.setter
     def fillgradient(self, val):
-        self["fillgradient"] = val
+        self['fillgradient'] = val
 
     @property
     def fillpattern(self):
@@ -363,11 +291,11 @@ def fillpattern(self):
         -------
         plotly.graph_objs.scatter.Fillpattern
         """
-        return self["fillpattern"]
+        return self['fillpattern']
 
     @fillpattern.setter
     def fillpattern(self, val):
-        self["fillpattern"] = val
+        self['fillpattern'] = val
 
     @property
     def groupnorm(self):
@@ -390,11 +318,11 @@ def groupnorm(self):
         -------
         Any
         """
-        return self["groupnorm"]
+        return self['groupnorm']
 
     @groupnorm.setter
     def groupnorm(self, val):
-        self["groupnorm"] = val
+        self['groupnorm'] = val
 
     @property
     def hoverinfo(self):
@@ -414,11 +342,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -433,11 +361,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -452,11 +380,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.scatter.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hoveron(self):
@@ -475,11 +403,11 @@ def hoveron(self):
         -------
         Any
         """
-        return self["hoveron"]
+        return self['hoveron']
 
     @hoveron.setter
     def hoveron(self, val):
-        self["hoveron"] = val
+        self['hoveron'] = val
 
     @property
     def hovertemplate(self):
@@ -517,11 +445,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -536,11 +464,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -560,11 +488,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -579,11 +507,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -599,11 +527,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -617,11 +545,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -640,11 +568,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -661,11 +589,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -680,11 +608,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.scatter.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -705,11 +633,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -724,11 +652,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -743,11 +671,11 @@ def line(self):
         -------
         plotly.graph_objs.scatter.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def marker(self):
@@ -762,11 +690,11 @@ def marker(self):
         -------
         plotly.graph_objs.scatter.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -788,11 +716,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -806,11 +734,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def mode(self):
@@ -832,11 +760,11 @@ def mode(self):
         -------
         Any
         """
-        return self["mode"]
+        return self['mode']
 
     @mode.setter
     def mode(self, val):
-        self["mode"] = val
+        self['mode'] = val
 
     @property
     def name(self):
@@ -852,11 +780,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def offsetgroup(self):
@@ -873,11 +801,11 @@ def offsetgroup(self):
         -------
         str
         """
-        return self["offsetgroup"]
+        return self['offsetgroup']
 
     @offsetgroup.setter
     def offsetgroup(self, val):
-        self["offsetgroup"] = val
+        self['offsetgroup'] = val
 
     @property
     def opacity(self):
@@ -891,11 +819,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def orientation(self):
@@ -916,11 +844,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def selected(self):
@@ -935,11 +863,11 @@ def selected(self):
         -------
         plotly.graph_objs.scatter.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -957,11 +885,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -976,11 +904,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stackgaps(self):
@@ -1002,11 +930,11 @@ def stackgaps(self):
         -------
         Any
         """
-        return self["stackgaps"]
+        return self['stackgaps']
 
     @stackgaps.setter
     def stackgaps(self, val):
-        self["stackgaps"] = val
+        self['stackgaps'] = val
 
     @property
     def stackgroup(self):
@@ -1032,11 +960,11 @@ def stackgroup(self):
         -------
         str
         """
-        return self["stackgroup"]
+        return self['stackgroup']
 
     @stackgroup.setter
     def stackgroup(self, val):
-        self["stackgroup"] = val
+        self['stackgroup'] = val
 
     @property
     def stream(self):
@@ -1051,11 +979,11 @@ def stream(self):
         -------
         plotly.graph_objs.scatter.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -1076,11 +1004,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -1097,11 +1025,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scatter.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textposition(self):
@@ -1120,11 +1048,11 @@ def textposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textpositionsrc(self):
@@ -1139,11 +1067,11 @@ def textpositionsrc(self):
         -------
         str
         """
-        return self["textpositionsrc"]
+        return self['textpositionsrc']
 
     @textpositionsrc.setter
     def textpositionsrc(self, val):
-        self["textpositionsrc"] = val
+        self['textpositionsrc'] = val
 
     @property
     def textsrc(self):
@@ -1157,11 +1085,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -1188,11 +1116,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -1207,11 +1135,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def uid(self):
@@ -1227,11 +1155,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1258,11 +1186,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -1277,11 +1205,11 @@ def unselected(self):
         -------
         plotly.graph_objs.scatter.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -1298,11 +1226,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -1316,11 +1244,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def x0(self):
@@ -1335,11 +1263,11 @@ def x0(self):
         -------
         Any
         """
-        return self["x0"]
+        return self['x0']
 
     @x0.setter
     def x0(self, val):
-        self["x0"] = val
+        self['x0'] = val
 
     @property
     def xaxis(self):
@@ -1358,11 +1286,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def xcalendar(self):
@@ -1380,11 +1308,11 @@ def xcalendar(self):
         -------
         Any
         """
-        return self["xcalendar"]
+        return self['xcalendar']
 
     @xcalendar.setter
     def xcalendar(self, val):
-        self["xcalendar"] = val
+        self['xcalendar'] = val
 
     @property
     def xhoverformat(self):
@@ -1409,11 +1337,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xperiod(self):
@@ -1429,11 +1357,11 @@ def xperiod(self):
         -------
         Any
         """
-        return self["xperiod"]
+        return self['xperiod']
 
     @xperiod.setter
     def xperiod(self, val):
-        self["xperiod"] = val
+        self['xperiod'] = val
 
     @property
     def xperiod0(self):
@@ -1450,11 +1378,11 @@ def xperiod0(self):
         -------
         Any
         """
-        return self["xperiod0"]
+        return self['xperiod0']
 
     @xperiod0.setter
     def xperiod0(self, val):
-        self["xperiod0"] = val
+        self['xperiod0'] = val
 
     @property
     def xperiodalignment(self):
@@ -1470,11 +1398,11 @@ def xperiodalignment(self):
         -------
         Any
         """
-        return self["xperiodalignment"]
+        return self['xperiodalignment']
 
     @xperiodalignment.setter
     def xperiodalignment(self, val):
-        self["xperiodalignment"] = val
+        self['xperiodalignment'] = val
 
     @property
     def xsrc(self):
@@ -1488,11 +1416,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -1506,11 +1434,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def y0(self):
@@ -1525,11 +1453,11 @@ def y0(self):
         -------
         Any
         """
-        return self["y0"]
+        return self['y0']
 
     @y0.setter
     def y0(self, val):
-        self["y0"] = val
+        self['y0'] = val
 
     @property
     def yaxis(self):
@@ -1548,11 +1476,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def ycalendar(self):
@@ -1570,11 +1498,11 @@ def ycalendar(self):
         -------
         Any
         """
-        return self["ycalendar"]
+        return self['ycalendar']
 
     @ycalendar.setter
     def ycalendar(self, val):
-        self["ycalendar"] = val
+        self['ycalendar'] = val
 
     @property
     def yhoverformat(self):
@@ -1599,11 +1527,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def yperiod(self):
@@ -1619,11 +1547,11 @@ def yperiod(self):
         -------
         Any
         """
-        return self["yperiod"]
+        return self['yperiod']
 
     @yperiod.setter
     def yperiod(self, val):
-        self["yperiod"] = val
+        self['yperiod'] = val
 
     @property
     def yperiod0(self):
@@ -1640,11 +1568,11 @@ def yperiod0(self):
         -------
         Any
         """
-        return self["yperiod0"]
+        return self['yperiod0']
 
     @yperiod0.setter
     def yperiod0(self, val):
-        self["yperiod0"] = val
+        self['yperiod0'] = val
 
     @property
     def yperiodalignment(self):
@@ -1660,11 +1588,11 @@ def yperiodalignment(self):
         -------
         Any
         """
-        return self["yperiodalignment"]
+        return self['yperiodalignment']
 
     @yperiodalignment.setter
     def yperiodalignment(self, val):
-        self["yperiodalignment"] = val
+        self['yperiodalignment'] = val
 
     @property
     def ysrc(self):
@@ -1678,11 +1606,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def zorder(self):
@@ -1698,15 +1626,15 @@ def zorder(self):
         -------
         int
         """
-        return self["zorder"]
+        return self['zorder']
 
     @zorder.setter
     def zorder(self, val):
-        self["zorder"] = val
+        self['zorder'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -2131,86 +2059,84 @@ def _prop_descriptions(self):
             traces with higher `zorder` appear in front of those
             with lower `zorder`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        alignmentgroup=None,
-        cliponaxis=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        error_x=None,
-        error_y=None,
-        fill=None,
-        fillcolor=None,
-        fillgradient=None,
-        fillpattern=None,
-        groupnorm=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        offsetgroup=None,
-        opacity=None,
-        orientation=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stackgaps=None,
-        stackgroup=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        zorder=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            alignmentgroup=None,
+            cliponaxis=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            error_x=None,
+            error_y=None,
+            fill=None,
+            fillcolor=None,
+            fillgradient=None,
+            fillpattern=None,
+            groupnorm=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            offsetgroup=None,
+            opacity=None,
+            orientation=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stackgaps=None,
+            stackgroup=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            zorder=None,
+            **kwargs
+        ):
         """
         Construct a new Scatter object
 
@@ -2650,9 +2576,9 @@ def __init__(
         -------
         Scatter
         """
-        super().__init__("scatter")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('scatter')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2662,92 +2588,93 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Scatter
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Scatter`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("alignmentgroup", arg, alignmentgroup)
-        self._set_property("cliponaxis", arg, cliponaxis)
-        self._set_property("connectgaps", arg, connectgaps)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("dx", arg, dx)
-        self._set_property("dy", arg, dy)
-        self._set_property("error_x", arg, error_x)
-        self._set_property("error_y", arg, error_y)
-        self._set_property("fill", arg, fill)
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("fillgradient", arg, fillgradient)
-        self._set_property("fillpattern", arg, fillpattern)
-        self._set_property("groupnorm", arg, groupnorm)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hoveron", arg, hoveron)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("mode", arg, mode)
-        self._set_property("name", arg, name)
-        self._set_property("offsetgroup", arg, offsetgroup)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stackgaps", arg, stackgaps)
-        self._set_property("stackgroup", arg, stackgroup)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textpositionsrc", arg, textpositionsrc)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("x0", arg, x0)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("xcalendar", arg, xcalendar)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xperiod", arg, xperiod)
-        self._set_property("xperiod0", arg, xperiod0)
-        self._set_property("xperiodalignment", arg, xperiodalignment)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("y0", arg, y0)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("ycalendar", arg, ycalendar)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("yperiod", arg, yperiod)
-        self._set_property("yperiod0", arg, yperiod0)
-        self._set_property("yperiodalignment", arg, yperiodalignment)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("zorder", arg, zorder)
-
-        self._props["type"] = "scatter"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Scatter`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('alignmentgroup', arg, alignmentgroup)
+        self._set_property('cliponaxis', arg, cliponaxis)
+        self._set_property('connectgaps', arg, connectgaps)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('dx', arg, dx)
+        self._set_property('dy', arg, dy)
+        self._set_property('error_x', arg, error_x)
+        self._set_property('error_y', arg, error_y)
+        self._set_property('fill', arg, fill)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('fillgradient', arg, fillgradient)
+        self._set_property('fillpattern', arg, fillpattern)
+        self._set_property('groupnorm', arg, groupnorm)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hoveron', arg, hoveron)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('mode', arg, mode)
+        self._set_property('name', arg, name)
+        self._set_property('offsetgroup', arg, offsetgroup)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stackgaps', arg, stackgaps)
+        self._set_property('stackgroup', arg, stackgroup)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textpositionsrc', arg, textpositionsrc)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('x0', arg, x0)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('xcalendar', arg, xcalendar)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xperiod', arg, xperiod)
+        self._set_property('xperiod0', arg, xperiod0)
+        self._set_property('xperiodalignment', arg, xperiodalignment)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('y0', arg, y0)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('ycalendar', arg, ycalendar)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('yperiod', arg, yperiod)
+        self._set_property('yperiod0', arg, yperiod0)
+        self._set_property('yperiodalignment', arg, yperiodalignment)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('zorder', arg, zorder)
+
+
+        self._props['type'] = 'scatter'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_scatter3d.py b/plotly/graph_objs/_scatter3d.py
index 8c01f1b85d7..f36c0f04587 100644
--- a/plotly/graph_objs/_scatter3d.py
+++ b/plotly/graph_objs/_scatter3d.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,66 +11,9 @@
 
 class Scatter3d(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "scatter3d"
-    _valid_props = {
-        "connectgaps",
-        "customdata",
-        "customdatasrc",
-        "error_x",
-        "error_y",
-        "error_z",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "marker",
-        "meta",
-        "metasrc",
-        "mode",
-        "name",
-        "opacity",
-        "projection",
-        "scene",
-        "showlegend",
-        "stream",
-        "surfaceaxis",
-        "surfacecolor",
-        "text",
-        "textfont",
-        "textposition",
-        "textpositionsrc",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-        "x",
-        "xcalendar",
-        "xhoverformat",
-        "xsrc",
-        "y",
-        "ycalendar",
-        "yhoverformat",
-        "ysrc",
-        "z",
-        "zcalendar",
-        "zhoverformat",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'scatter3d'
+    _valid_props = {"connectgaps", "customdata", "customdatasrc", "error_x", "error_y", "error_z", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "marker", "meta", "metasrc", "mode", "name", "opacity", "projection", "scene", "showlegend", "stream", "surfaceaxis", "surfacecolor", "text", "textfont", "textposition", "textpositionsrc", "textsrc", "texttemplate", "texttemplatesrc", "type", "uid", "uirevision", "visible", "x", "xcalendar", "xhoverformat", "xsrc", "y", "ycalendar", "yhoverformat", "ysrc", "z", "zcalendar", "zhoverformat", "zsrc"}
 
     @property
     def connectgaps(self):
@@ -81,11 +28,11 @@ def connectgaps(self):
         -------
         bool
         """
-        return self["connectgaps"]
+        return self['connectgaps']
 
     @connectgaps.setter
     def connectgaps(self, val):
-        self["connectgaps"] = val
+        self['connectgaps'] = val
 
     @property
     def customdata(self):
@@ -102,11 +49,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -121,11 +68,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def error_x(self):
@@ -140,11 +87,11 @@ def error_x(self):
         -------
         plotly.graph_objs.scatter3d.ErrorX
         """
-        return self["error_x"]
+        return self['error_x']
 
     @error_x.setter
     def error_x(self, val):
-        self["error_x"] = val
+        self['error_x'] = val
 
     @property
     def error_y(self):
@@ -159,11 +106,11 @@ def error_y(self):
         -------
         plotly.graph_objs.scatter3d.ErrorY
         """
-        return self["error_y"]
+        return self['error_y']
 
     @error_y.setter
     def error_y(self, val):
-        self["error_y"] = val
+        self['error_y'] = val
 
     @property
     def error_z(self):
@@ -178,11 +125,11 @@ def error_z(self):
         -------
         plotly.graph_objs.scatter3d.ErrorZ
         """
-        return self["error_z"]
+        return self['error_z']
 
     @error_z.setter
     def error_z(self, val):
-        self["error_z"] = val
+        self['error_z'] = val
 
     @property
     def hoverinfo(self):
@@ -202,11 +149,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -221,11 +168,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -240,11 +187,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.scatter3d.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -282,11 +229,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -301,11 +248,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -325,11 +272,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -344,11 +291,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -364,11 +311,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -382,11 +329,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -405,11 +352,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -426,11 +373,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -445,11 +392,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.scatter3d.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -470,11 +417,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -489,11 +436,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -508,11 +455,11 @@ def line(self):
         -------
         plotly.graph_objs.scatter3d.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def marker(self):
@@ -527,11 +474,11 @@ def marker(self):
         -------
         plotly.graph_objs.scatter3d.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -553,11 +500,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -571,11 +518,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def mode(self):
@@ -597,11 +544,11 @@ def mode(self):
         -------
         Any
         """
-        return self["mode"]
+        return self['mode']
 
     @mode.setter
     def mode(self, val):
-        self["mode"] = val
+        self['mode'] = val
 
     @property
     def name(self):
@@ -617,11 +564,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -635,11 +582,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def projection(self):
@@ -654,11 +601,11 @@ def projection(self):
         -------
         plotly.graph_objs.scatter3d.Projection
         """
-        return self["projection"]
+        return self['projection']
 
     @projection.setter
     def projection(self, val):
-        self["projection"] = val
+        self['projection'] = val
 
     @property
     def scene(self):
@@ -677,11 +624,11 @@ def scene(self):
         -------
         str
         """
-        return self["scene"]
+        return self['scene']
 
     @scene.setter
     def scene(self, val):
-        self["scene"] = val
+        self['scene'] = val
 
     @property
     def showlegend(self):
@@ -696,11 +643,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -715,11 +662,11 @@ def stream(self):
         -------
         plotly.graph_objs.scatter3d.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def surfaceaxis(self):
@@ -736,11 +683,11 @@ def surfaceaxis(self):
         -------
         Any
         """
-        return self["surfaceaxis"]
+        return self['surfaceaxis']
 
     @surfaceaxis.setter
     def surfaceaxis(self, val):
-        self["surfaceaxis"] = val
+        self['surfaceaxis'] = val
 
     @property
     def surfacecolor(self):
@@ -758,11 +705,11 @@ def surfacecolor(self):
         -------
         str
         """
-        return self["surfacecolor"]
+        return self['surfacecolor']
 
     @surfacecolor.setter
     def surfacecolor(self, val):
-        self["surfacecolor"] = val
+        self['surfacecolor'] = val
 
     @property
     def text(self):
@@ -783,11 +730,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -804,11 +751,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scatter3d.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textposition(self):
@@ -827,11 +774,11 @@ def textposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textpositionsrc(self):
@@ -846,11 +793,11 @@ def textpositionsrc(self):
         -------
         str
         """
-        return self["textpositionsrc"]
+        return self['textpositionsrc']
 
     @textpositionsrc.setter
     def textpositionsrc(self, val):
-        self["textpositionsrc"] = val
+        self['textpositionsrc'] = val
 
     @property
     def textsrc(self):
@@ -864,11 +811,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -895,11 +842,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -914,11 +861,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def uid(self):
@@ -934,11 +881,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -965,11 +912,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -986,11 +933,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -1004,11 +951,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xcalendar(self):
@@ -1026,11 +973,11 @@ def xcalendar(self):
         -------
         Any
         """
-        return self["xcalendar"]
+        return self['xcalendar']
 
     @xcalendar.setter
     def xcalendar(self, val):
-        self["xcalendar"] = val
+        self['xcalendar'] = val
 
     @property
     def xhoverformat(self):
@@ -1055,11 +1002,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xsrc(self):
@@ -1073,11 +1020,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -1091,11 +1038,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def ycalendar(self):
@@ -1113,11 +1060,11 @@ def ycalendar(self):
         -------
         Any
         """
-        return self["ycalendar"]
+        return self['ycalendar']
 
     @ycalendar.setter
     def ycalendar(self, val):
-        self["ycalendar"] = val
+        self['ycalendar'] = val
 
     @property
     def yhoverformat(self):
@@ -1142,11 +1089,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def ysrc(self):
@@ -1160,11 +1107,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def z(self):
@@ -1178,11 +1125,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zcalendar(self):
@@ -1200,11 +1147,11 @@ def zcalendar(self):
         -------
         Any
         """
-        return self["zcalendar"]
+        return self['zcalendar']
 
     @zcalendar.setter
     def zcalendar(self, val):
-        self["zcalendar"] = val
+        self['zcalendar'] = val
 
     @property
     def zhoverformat(self):
@@ -1229,11 +1176,11 @@ def zhoverformat(self):
         -------
         str
         """
-        return self["zhoverformat"]
+        return self['zhoverformat']
 
     @zhoverformat.setter
     def zhoverformat(self, val):
-        self["zhoverformat"] = val
+        self['zhoverformat'] = val
 
     @property
     def zsrc(self):
@@ -1247,15 +1194,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1547,67 +1494,65 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        error_x=None,
-        error_y=None,
-        error_z=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        projection=None,
-        scene=None,
-        showlegend=None,
-        stream=None,
-        surfaceaxis=None,
-        surfacecolor=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        ycalendar=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zcalendar=None,
-        zhoverformat=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            error_x=None,
+            error_y=None,
+            error_z=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            projection=None,
+            scene=None,
+            showlegend=None,
+            stream=None,
+            surfaceaxis=None,
+            surfacecolor=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            ycalendar=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zcalendar=None,
+            zhoverformat=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Scatter3d object
 
@@ -1914,9 +1859,9 @@ def __init__(
         -------
         Scatter3d
         """
-        super().__init__("scatter3d")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('scatter3d')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1926,73 +1871,74 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Scatter3d
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Scatter3d`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("connectgaps", arg, connectgaps)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("error_x", arg, error_x)
-        self._set_property("error_y", arg, error_y)
-        self._set_property("error_z", arg, error_z)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("mode", arg, mode)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("projection", arg, projection)
-        self._set_property("scene", arg, scene)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("surfaceaxis", arg, surfaceaxis)
-        self._set_property("surfacecolor", arg, surfacecolor)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textpositionsrc", arg, textpositionsrc)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("xcalendar", arg, xcalendar)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("ycalendar", arg, ycalendar)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("z", arg, z)
-        self._set_property("zcalendar", arg, zcalendar)
-        self._set_property("zhoverformat", arg, zhoverformat)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "scatter3d"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Scatter3d`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('connectgaps', arg, connectgaps)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('error_x', arg, error_x)
+        self._set_property('error_y', arg, error_y)
+        self._set_property('error_z', arg, error_z)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('mode', arg, mode)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('projection', arg, projection)
+        self._set_property('scene', arg, scene)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('surfaceaxis', arg, surfaceaxis)
+        self._set_property('surfacecolor', arg, surfacecolor)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textpositionsrc', arg, textpositionsrc)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('xcalendar', arg, xcalendar)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('ycalendar', arg, ycalendar)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('z', arg, z)
+        self._set_property('zcalendar', arg, zcalendar)
+        self._set_property('zhoverformat', arg, zhoverformat)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'scatter3d'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_scattercarpet.py b/plotly/graph_objs/_scattercarpet.py
index 5d838adf51b..15eb2ce556e 100644
--- a/plotly/graph_objs/_scattercarpet.py
+++ b/plotly/graph_objs/_scattercarpet.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,61 +11,9 @@
 
 class Scattercarpet(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "scattercarpet"
-    _valid_props = {
-        "a",
-        "asrc",
-        "b",
-        "bsrc",
-        "carpet",
-        "connectgaps",
-        "customdata",
-        "customdatasrc",
-        "fill",
-        "fillcolor",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hoveron",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "marker",
-        "meta",
-        "metasrc",
-        "mode",
-        "name",
-        "opacity",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "stream",
-        "text",
-        "textfont",
-        "textposition",
-        "textpositionsrc",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-        "xaxis",
-        "yaxis",
-        "zorder",
-    }
+    _parent_path_str = ''
+    _path_str = 'scattercarpet'
+    _valid_props = {"a", "asrc", "b", "bsrc", "carpet", "connectgaps", "customdata", "customdatasrc", "fill", "fillcolor", "hoverinfo", "hoverinfosrc", "hoverlabel", "hoveron", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "marker", "meta", "metasrc", "mode", "name", "opacity", "selected", "selectedpoints", "showlegend", "stream", "text", "textfont", "textposition", "textpositionsrc", "textsrc", "texttemplate", "texttemplatesrc", "type", "uid", "uirevision", "unselected", "visible", "xaxis", "yaxis", "zorder"}
 
     @property
     def a(self):
@@ -75,11 +27,11 @@ def a(self):
         -------
         numpy.ndarray
         """
-        return self["a"]
+        return self['a']
 
     @a.setter
     def a(self, val):
-        self["a"] = val
+        self['a'] = val
 
     @property
     def asrc(self):
@@ -93,11 +45,11 @@ def asrc(self):
         -------
         str
         """
-        return self["asrc"]
+        return self['asrc']
 
     @asrc.setter
     def asrc(self, val):
-        self["asrc"] = val
+        self['asrc'] = val
 
     @property
     def b(self):
@@ -111,11 +63,11 @@ def b(self):
         -------
         numpy.ndarray
         """
-        return self["b"]
+        return self['b']
 
     @b.setter
     def b(self, val):
-        self["b"] = val
+        self['b'] = val
 
     @property
     def bsrc(self):
@@ -129,11 +81,11 @@ def bsrc(self):
         -------
         str
         """
-        return self["bsrc"]
+        return self['bsrc']
 
     @bsrc.setter
     def bsrc(self, val):
-        self["bsrc"] = val
+        self['bsrc'] = val
 
     @property
     def carpet(self):
@@ -150,11 +102,11 @@ def carpet(self):
         -------
         str
         """
-        return self["carpet"]
+        return self['carpet']
 
     @carpet.setter
     def carpet(self, val):
-        self["carpet"] = val
+        self['carpet'] = val
 
     @property
     def connectgaps(self):
@@ -169,11 +121,11 @@ def connectgaps(self):
         -------
         bool
         """
-        return self["connectgaps"]
+        return self['connectgaps']
 
     @connectgaps.setter
     def connectgaps(self, val):
-        self["connectgaps"] = val
+        self['connectgaps'] = val
 
     @property
     def customdata(self):
@@ -190,11 +142,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -209,11 +161,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def fill(self):
@@ -236,11 +188,11 @@ def fill(self):
         -------
         Any
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def fillcolor(self):
@@ -260,11 +212,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def hoverinfo(self):
@@ -284,11 +236,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -303,11 +255,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -322,11 +274,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.scattercarpet.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hoveron(self):
@@ -345,11 +297,11 @@ def hoveron(self):
         -------
         Any
         """
-        return self["hoveron"]
+        return self['hoveron']
 
     @hoveron.setter
     def hoveron(self, val):
-        self["hoveron"] = val
+        self['hoveron'] = val
 
     @property
     def hovertemplate(self):
@@ -387,11 +339,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -406,11 +358,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -430,11 +382,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -449,11 +401,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -469,11 +421,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -487,11 +439,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -510,11 +462,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -531,11 +483,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -550,11 +502,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.scattercarpet.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -575,11 +527,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -594,11 +546,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -613,11 +565,11 @@ def line(self):
         -------
         plotly.graph_objs.scattercarpet.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def marker(self):
@@ -632,11 +584,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattercarpet.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -658,11 +610,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -676,11 +628,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def mode(self):
@@ -702,11 +654,11 @@ def mode(self):
         -------
         Any
         """
-        return self["mode"]
+        return self['mode']
 
     @mode.setter
     def mode(self, val):
-        self["mode"] = val
+        self['mode'] = val
 
     @property
     def name(self):
@@ -722,11 +674,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -740,11 +692,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def selected(self):
@@ -759,11 +711,11 @@ def selected(self):
         -------
         plotly.graph_objs.scattercarpet.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -781,11 +733,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -800,11 +752,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -819,11 +771,11 @@ def stream(self):
         -------
         plotly.graph_objs.scattercarpet.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -844,11 +796,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -865,11 +817,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scattercarpet.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textposition(self):
@@ -888,11 +840,11 @@ def textposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textpositionsrc(self):
@@ -907,11 +859,11 @@ def textpositionsrc(self):
         -------
         str
         """
-        return self["textpositionsrc"]
+        return self['textpositionsrc']
 
     @textpositionsrc.setter
     def textpositionsrc(self, val):
-        self["textpositionsrc"] = val
+        self['textpositionsrc'] = val
 
     @property
     def textsrc(self):
@@ -925,11 +877,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -958,11 +910,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -977,11 +929,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def uid(self):
@@ -997,11 +949,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1028,11 +980,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -1047,11 +999,11 @@ def unselected(self):
         -------
         plotly.graph_objs.scattercarpet.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -1068,11 +1020,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def xaxis(self):
@@ -1091,11 +1043,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def yaxis(self):
@@ -1114,11 +1066,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def zorder(self):
@@ -1134,15 +1086,15 @@ def zorder(self):
         -------
         int
         """
-        return self["zorder"]
+        return self['zorder']
 
     @zorder.setter
     def zorder(self, val):
-        self["zorder"] = val
+        self['zorder'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1413,62 +1365,60 @@ def _prop_descriptions(self):
             traces with higher `zorder` appear in front of those
             with lower `zorder`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        a=None,
-        asrc=None,
-        b=None,
-        bsrc=None,
-        carpet=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        xaxis=None,
-        yaxis=None,
-        zorder=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            a=None,
+            asrc=None,
+            b=None,
+            bsrc=None,
+            carpet=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            xaxis=None,
+            yaxis=None,
+            zorder=None,
+            **kwargs
+        ):
         """
         Construct a new Scattercarpet object
 
@@ -1750,9 +1700,9 @@ def __init__(
         -------
         Scattercarpet
         """
-        super().__init__("scattercarpet")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('scattercarpet')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1762,68 +1712,69 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Scattercarpet
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Scattercarpet`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("a", arg, a)
-        self._set_property("asrc", arg, asrc)
-        self._set_property("b", arg, b)
-        self._set_property("bsrc", arg, bsrc)
-        self._set_property("carpet", arg, carpet)
-        self._set_property("connectgaps", arg, connectgaps)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("fill", arg, fill)
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hoveron", arg, hoveron)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("mode", arg, mode)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textpositionsrc", arg, textpositionsrc)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("zorder", arg, zorder)
-
-        self._props["type"] = "scattercarpet"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Scattercarpet`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('a', arg, a)
+        self._set_property('asrc', arg, asrc)
+        self._set_property('b', arg, b)
+        self._set_property('bsrc', arg, bsrc)
+        self._set_property('carpet', arg, carpet)
+        self._set_property('connectgaps', arg, connectgaps)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('fill', arg, fill)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hoveron', arg, hoveron)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('mode', arg, mode)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textpositionsrc', arg, textpositionsrc)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('zorder', arg, zorder)
+
+
+        self._props['type'] = 'scattercarpet'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_scattergeo.py b/plotly/graph_objs/_scattergeo.py
index d63e89f2328..8e3f9f44186 100644
--- a/plotly/graph_objs/_scattergeo.py
+++ b/plotly/graph_objs/_scattergeo.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,62 +11,9 @@
 
 class Scattergeo(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "scattergeo"
-    _valid_props = {
-        "connectgaps",
-        "customdata",
-        "customdatasrc",
-        "featureidkey",
-        "fill",
-        "fillcolor",
-        "geo",
-        "geojson",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "lat",
-        "latsrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "locationmode",
-        "locations",
-        "locationssrc",
-        "lon",
-        "lonsrc",
-        "marker",
-        "meta",
-        "metasrc",
-        "mode",
-        "name",
-        "opacity",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "stream",
-        "text",
-        "textfont",
-        "textposition",
-        "textpositionsrc",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'scattergeo'
+    _valid_props = {"connectgaps", "customdata", "customdatasrc", "featureidkey", "fill", "fillcolor", "geo", "geojson", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "lat", "latsrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "locationmode", "locations", "locationssrc", "lon", "lonsrc", "marker", "meta", "metasrc", "mode", "name", "opacity", "selected", "selectedpoints", "showlegend", "stream", "text", "textfont", "textposition", "textpositionsrc", "textsrc", "texttemplate", "texttemplatesrc", "type", "uid", "uirevision", "unselected", "visible"}
 
     @property
     def connectgaps(self):
@@ -77,11 +28,11 @@ def connectgaps(self):
         -------
         bool
         """
-        return self["connectgaps"]
+        return self['connectgaps']
 
     @connectgaps.setter
     def connectgaps(self, val):
-        self["connectgaps"] = val
+        self['connectgaps'] = val
 
     @property
     def customdata(self):
@@ -98,11 +49,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -117,11 +68,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def featureidkey(self):
@@ -139,11 +90,11 @@ def featureidkey(self):
         -------
         str
         """
-        return self["featureidkey"]
+        return self['featureidkey']
 
     @featureidkey.setter
     def featureidkey(self, val):
-        self["featureidkey"] = val
+        self['featureidkey'] = val
 
     @property
     def fill(self):
@@ -160,11 +111,11 @@ def fill(self):
         -------
         Any
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def fillcolor(self):
@@ -184,11 +135,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def geo(self):
@@ -207,11 +158,11 @@ def geo(self):
         -------
         str
         """
-        return self["geo"]
+        return self['geo']
 
     @geo.setter
     def geo(self, val):
-        self["geo"] = val
+        self['geo'] = val
 
     @property
     def geojson(self):
@@ -229,11 +180,11 @@ def geojson(self):
         -------
         Any
         """
-        return self["geojson"]
+        return self['geojson']
 
     @geojson.setter
     def geojson(self, val):
-        self["geojson"] = val
+        self['geojson'] = val
 
     @property
     def hoverinfo(self):
@@ -253,11 +204,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -272,11 +223,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -291,11 +242,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.scattergeo.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -333,11 +284,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -352,11 +303,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -377,11 +328,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -396,11 +347,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -416,11 +367,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -434,11 +385,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def lat(self):
@@ -452,11 +403,11 @@ def lat(self):
         -------
         numpy.ndarray
         """
-        return self["lat"]
+        return self['lat']
 
     @lat.setter
     def lat(self, val):
-        self["lat"] = val
+        self['lat'] = val
 
     @property
     def latsrc(self):
@@ -470,11 +421,11 @@ def latsrc(self):
         -------
         str
         """
-        return self["latsrc"]
+        return self['latsrc']
 
     @latsrc.setter
     def latsrc(self, val):
-        self["latsrc"] = val
+        self['latsrc'] = val
 
     @property
     def legend(self):
@@ -493,11 +444,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -514,11 +465,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -533,11 +484,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.scattergeo.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -558,11 +509,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -577,11 +528,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -596,11 +547,11 @@ def line(self):
         -------
         plotly.graph_objs.scattergeo.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def locationmode(self):
@@ -619,11 +570,11 @@ def locationmode(self):
         -------
         Any
         """
-        return self["locationmode"]
+        return self['locationmode']
 
     @locationmode.setter
     def locationmode(self, val):
-        self["locationmode"] = val
+        self['locationmode'] = val
 
     @property
     def locations(self):
@@ -639,11 +590,11 @@ def locations(self):
         -------
         numpy.ndarray
         """
-        return self["locations"]
+        return self['locations']
 
     @locations.setter
     def locations(self, val):
-        self["locations"] = val
+        self['locations'] = val
 
     @property
     def locationssrc(self):
@@ -658,11 +609,11 @@ def locationssrc(self):
         -------
         str
         """
-        return self["locationssrc"]
+        return self['locationssrc']
 
     @locationssrc.setter
     def locationssrc(self, val):
-        self["locationssrc"] = val
+        self['locationssrc'] = val
 
     @property
     def lon(self):
@@ -676,11 +627,11 @@ def lon(self):
         -------
         numpy.ndarray
         """
-        return self["lon"]
+        return self['lon']
 
     @lon.setter
     def lon(self, val):
-        self["lon"] = val
+        self['lon'] = val
 
     @property
     def lonsrc(self):
@@ -694,11 +645,11 @@ def lonsrc(self):
         -------
         str
         """
-        return self["lonsrc"]
+        return self['lonsrc']
 
     @lonsrc.setter
     def lonsrc(self, val):
-        self["lonsrc"] = val
+        self['lonsrc'] = val
 
     @property
     def marker(self):
@@ -713,11 +664,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattergeo.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -739,11 +690,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -757,11 +708,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def mode(self):
@@ -783,11 +734,11 @@ def mode(self):
         -------
         Any
         """
-        return self["mode"]
+        return self['mode']
 
     @mode.setter
     def mode(self, val):
-        self["mode"] = val
+        self['mode'] = val
 
     @property
     def name(self):
@@ -803,11 +754,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -821,11 +772,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def selected(self):
@@ -840,11 +791,11 @@ def selected(self):
         -------
         plotly.graph_objs.scattergeo.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -862,11 +813,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -881,11 +832,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -900,11 +851,11 @@ def stream(self):
         -------
         plotly.graph_objs.scattergeo.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -926,11 +877,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -947,11 +898,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scattergeo.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textposition(self):
@@ -970,11 +921,11 @@ def textposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textpositionsrc(self):
@@ -989,11 +940,11 @@ def textpositionsrc(self):
         -------
         str
         """
-        return self["textpositionsrc"]
+        return self['textpositionsrc']
 
     @textpositionsrc.setter
     def textpositionsrc(self, val):
-        self["textpositionsrc"] = val
+        self['textpositionsrc'] = val
 
     @property
     def textsrc(self):
@@ -1007,11 +958,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -1040,11 +991,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -1059,11 +1010,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def uid(self):
@@ -1079,11 +1030,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1110,11 +1061,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -1129,11 +1080,11 @@ def unselected(self):
         -------
         plotly.graph_objs.scattergeo.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -1150,15 +1101,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1433,63 +1384,61 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        featureidkey=None,
-        fill=None,
-        fillcolor=None,
-        geo=None,
-        geojson=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        lat=None,
-        latsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        locationmode=None,
-        locations=None,
-        locationssrc=None,
-        lon=None,
-        lonsrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            featureidkey=None,
+            fill=None,
+            fillcolor=None,
+            geo=None,
+            geojson=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            lat=None,
+            latsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            locationmode=None,
+            locations=None,
+            locationssrc=None,
+            lon=None,
+            lonsrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Scattergeo object
 
@@ -1777,9 +1726,9 @@ def __init__(
         -------
         Scattergeo
         """
-        super().__init__("scattergeo")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('scattergeo')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1789,69 +1738,70 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Scattergeo
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Scattergeo`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("connectgaps", arg, connectgaps)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("featureidkey", arg, featureidkey)
-        self._set_property("fill", arg, fill)
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("geo", arg, geo)
-        self._set_property("geojson", arg, geojson)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("lat", arg, lat)
-        self._set_property("latsrc", arg, latsrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("locationmode", arg, locationmode)
-        self._set_property("locations", arg, locations)
-        self._set_property("locationssrc", arg, locationssrc)
-        self._set_property("lon", arg, lon)
-        self._set_property("lonsrc", arg, lonsrc)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("mode", arg, mode)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textpositionsrc", arg, textpositionsrc)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "scattergeo"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Scattergeo`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('connectgaps', arg, connectgaps)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('featureidkey', arg, featureidkey)
+        self._set_property('fill', arg, fill)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('geo', arg, geo)
+        self._set_property('geojson', arg, geojson)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('lat', arg, lat)
+        self._set_property('latsrc', arg, latsrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('locationmode', arg, locationmode)
+        self._set_property('locations', arg, locations)
+        self._set_property('locationssrc', arg, locationssrc)
+        self._set_property('lon', arg, lon)
+        self._set_property('lonsrc', arg, lonsrc)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('mode', arg, mode)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textpositionsrc', arg, textpositionsrc)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'scattergeo'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_scattergl.py b/plotly/graph_objs/_scattergl.py
index f161fd75d42..af5cfbba956 100644
--- a/plotly/graph_objs/_scattergl.py
+++ b/plotly/graph_objs/_scattergl.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,74 +11,9 @@
 
 class Scattergl(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "scattergl"
-    _valid_props = {
-        "connectgaps",
-        "customdata",
-        "customdatasrc",
-        "dx",
-        "dy",
-        "error_x",
-        "error_y",
-        "fill",
-        "fillcolor",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "marker",
-        "meta",
-        "metasrc",
-        "mode",
-        "name",
-        "opacity",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "stream",
-        "text",
-        "textfont",
-        "textposition",
-        "textpositionsrc",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-        "x",
-        "x0",
-        "xaxis",
-        "xcalendar",
-        "xhoverformat",
-        "xperiod",
-        "xperiod0",
-        "xperiodalignment",
-        "xsrc",
-        "y",
-        "y0",
-        "yaxis",
-        "ycalendar",
-        "yhoverformat",
-        "yperiod",
-        "yperiod0",
-        "yperiodalignment",
-        "ysrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'scattergl'
+    _valid_props = {"connectgaps", "customdata", "customdatasrc", "dx", "dy", "error_x", "error_y", "fill", "fillcolor", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "marker", "meta", "metasrc", "mode", "name", "opacity", "selected", "selectedpoints", "showlegend", "stream", "text", "textfont", "textposition", "textpositionsrc", "textsrc", "texttemplate", "texttemplatesrc", "type", "uid", "uirevision", "unselected", "visible", "x", "x0", "xaxis", "xcalendar", "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", "xsrc", "y", "y0", "yaxis", "ycalendar", "yhoverformat", "yperiod", "yperiod0", "yperiodalignment", "ysrc"}
 
     @property
     def connectgaps(self):
@@ -89,11 +28,11 @@ def connectgaps(self):
         -------
         bool
         """
-        return self["connectgaps"]
+        return self['connectgaps']
 
     @connectgaps.setter
     def connectgaps(self, val):
-        self["connectgaps"] = val
+        self['connectgaps'] = val
 
     @property
     def customdata(self):
@@ -110,11 +49,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -129,11 +68,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def dx(self):
@@ -147,11 +86,11 @@ def dx(self):
         -------
         int|float
         """
-        return self["dx"]
+        return self['dx']
 
     @dx.setter
     def dx(self, val):
-        self["dx"] = val
+        self['dx'] = val
 
     @property
     def dy(self):
@@ -165,11 +104,11 @@ def dy(self):
         -------
         int|float
         """
-        return self["dy"]
+        return self['dy']
 
     @dy.setter
     def dy(self, val):
-        self["dy"] = val
+        self['dy'] = val
 
     @property
     def error_x(self):
@@ -184,11 +123,11 @@ def error_x(self):
         -------
         plotly.graph_objs.scattergl.ErrorX
         """
-        return self["error_x"]
+        return self['error_x']
 
     @error_x.setter
     def error_x(self, val):
-        self["error_x"] = val
+        self['error_x'] = val
 
     @property
     def error_y(self):
@@ -203,11 +142,11 @@ def error_y(self):
         -------
         plotly.graph_objs.scattergl.ErrorY
         """
-        return self["error_y"]
+        return self['error_y']
 
     @error_y.setter
     def error_y(self, val):
-        self["error_y"] = val
+        self['error_y'] = val
 
     @property
     def fill(self):
@@ -241,11 +180,11 @@ def fill(self):
         -------
         Any
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def fillcolor(self):
@@ -265,11 +204,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def hoverinfo(self):
@@ -289,11 +228,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -308,11 +247,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -327,11 +266,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.scattergl.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -369,11 +308,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -388,11 +327,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -412,11 +351,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -431,11 +370,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -451,11 +390,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -469,11 +408,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -492,11 +431,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -513,11 +452,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -532,11 +471,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.scattergl.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -557,11 +496,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -576,11 +515,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -595,11 +534,11 @@ def line(self):
         -------
         plotly.graph_objs.scattergl.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def marker(self):
@@ -614,11 +553,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattergl.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -640,11 +579,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -658,11 +597,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def mode(self):
@@ -679,11 +618,11 @@ def mode(self):
         -------
         Any
         """
-        return self["mode"]
+        return self['mode']
 
     @mode.setter
     def mode(self, val):
-        self["mode"] = val
+        self['mode'] = val
 
     @property
     def name(self):
@@ -699,11 +638,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -717,11 +656,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def selected(self):
@@ -736,11 +675,11 @@ def selected(self):
         -------
         plotly.graph_objs.scattergl.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -758,11 +697,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -777,11 +716,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -796,11 +735,11 @@ def stream(self):
         -------
         plotly.graph_objs.scattergl.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -821,11 +760,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -842,11 +781,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scattergl.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textposition(self):
@@ -865,11 +804,11 @@ def textposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textpositionsrc(self):
@@ -884,11 +823,11 @@ def textpositionsrc(self):
         -------
         str
         """
-        return self["textpositionsrc"]
+        return self['textpositionsrc']
 
     @textpositionsrc.setter
     def textpositionsrc(self, val):
-        self["textpositionsrc"] = val
+        self['textpositionsrc'] = val
 
     @property
     def textsrc(self):
@@ -902,11 +841,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -933,11 +872,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -952,11 +891,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def uid(self):
@@ -972,11 +911,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1003,11 +942,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -1022,11 +961,11 @@ def unselected(self):
         -------
         plotly.graph_objs.scattergl.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -1043,11 +982,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -1061,11 +1000,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def x0(self):
@@ -1080,11 +1019,11 @@ def x0(self):
         -------
         Any
         """
-        return self["x0"]
+        return self['x0']
 
     @x0.setter
     def x0(self, val):
-        self["x0"] = val
+        self['x0'] = val
 
     @property
     def xaxis(self):
@@ -1103,11 +1042,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def xcalendar(self):
@@ -1125,11 +1064,11 @@ def xcalendar(self):
         -------
         Any
         """
-        return self["xcalendar"]
+        return self['xcalendar']
 
     @xcalendar.setter
     def xcalendar(self, val):
-        self["xcalendar"] = val
+        self['xcalendar'] = val
 
     @property
     def xhoverformat(self):
@@ -1154,11 +1093,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xperiod(self):
@@ -1174,11 +1113,11 @@ def xperiod(self):
         -------
         Any
         """
-        return self["xperiod"]
+        return self['xperiod']
 
     @xperiod.setter
     def xperiod(self, val):
-        self["xperiod"] = val
+        self['xperiod'] = val
 
     @property
     def xperiod0(self):
@@ -1195,11 +1134,11 @@ def xperiod0(self):
         -------
         Any
         """
-        return self["xperiod0"]
+        return self['xperiod0']
 
     @xperiod0.setter
     def xperiod0(self, val):
-        self["xperiod0"] = val
+        self['xperiod0'] = val
 
     @property
     def xperiodalignment(self):
@@ -1215,11 +1154,11 @@ def xperiodalignment(self):
         -------
         Any
         """
-        return self["xperiodalignment"]
+        return self['xperiodalignment']
 
     @xperiodalignment.setter
     def xperiodalignment(self, val):
-        self["xperiodalignment"] = val
+        self['xperiodalignment'] = val
 
     @property
     def xsrc(self):
@@ -1233,11 +1172,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -1251,11 +1190,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def y0(self):
@@ -1270,11 +1209,11 @@ def y0(self):
         -------
         Any
         """
-        return self["y0"]
+        return self['y0']
 
     @y0.setter
     def y0(self, val):
-        self["y0"] = val
+        self['y0'] = val
 
     @property
     def yaxis(self):
@@ -1293,11 +1232,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def ycalendar(self):
@@ -1315,11 +1254,11 @@ def ycalendar(self):
         -------
         Any
         """
-        return self["ycalendar"]
+        return self['ycalendar']
 
     @ycalendar.setter
     def ycalendar(self, val):
-        self["ycalendar"] = val
+        self['ycalendar'] = val
 
     @property
     def yhoverformat(self):
@@ -1344,11 +1283,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def yperiod(self):
@@ -1364,11 +1303,11 @@ def yperiod(self):
         -------
         Any
         """
-        return self["yperiod"]
+        return self['yperiod']
 
     @yperiod.setter
     def yperiod(self, val):
-        self["yperiod"] = val
+        self['yperiod'] = val
 
     @property
     def yperiod0(self):
@@ -1385,11 +1324,11 @@ def yperiod0(self):
         -------
         Any
         """
-        return self["yperiod0"]
+        return self['yperiod0']
 
     @yperiod0.setter
     def yperiod0(self, val):
-        self["yperiod0"] = val
+        self['yperiod0'] = val
 
     @property
     def yperiodalignment(self):
@@ -1405,11 +1344,11 @@ def yperiodalignment(self):
         -------
         Any
         """
-        return self["yperiodalignment"]
+        return self['yperiodalignment']
 
     @yperiodalignment.setter
     def yperiodalignment(self, val):
-        self["yperiodalignment"] = val
+        self['yperiodalignment'] = val
 
     @property
     def ysrc(self):
@@ -1423,15 +1362,15 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1774,75 +1713,73 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `y`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        dx=None,
-        dy=None,
-        error_x=None,
-        error_y=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        ycalendar=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            dx=None,
+            dy=None,
+            error_x=None,
+            error_y=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            ycalendar=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            **kwargs
+        ):
         """
         Construct a new Scattergl object
 
@@ -2198,9 +2135,9 @@ def __init__(
         -------
         Scattergl
         """
-        super().__init__("scattergl")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('scattergl')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2210,81 +2147,82 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Scattergl
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Scattergl`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("connectgaps", arg, connectgaps)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("dx", arg, dx)
-        self._set_property("dy", arg, dy)
-        self._set_property("error_x", arg, error_x)
-        self._set_property("error_y", arg, error_y)
-        self._set_property("fill", arg, fill)
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("mode", arg, mode)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textpositionsrc", arg, textpositionsrc)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("x0", arg, x0)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("xcalendar", arg, xcalendar)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xperiod", arg, xperiod)
-        self._set_property("xperiod0", arg, xperiod0)
-        self._set_property("xperiodalignment", arg, xperiodalignment)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("y0", arg, y0)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("ycalendar", arg, ycalendar)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("yperiod", arg, yperiod)
-        self._set_property("yperiod0", arg, yperiod0)
-        self._set_property("yperiodalignment", arg, yperiodalignment)
-        self._set_property("ysrc", arg, ysrc)
-
-        self._props["type"] = "scattergl"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Scattergl`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('connectgaps', arg, connectgaps)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('dx', arg, dx)
+        self._set_property('dy', arg, dy)
+        self._set_property('error_x', arg, error_x)
+        self._set_property('error_y', arg, error_y)
+        self._set_property('fill', arg, fill)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('mode', arg, mode)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textpositionsrc', arg, textpositionsrc)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('x0', arg, x0)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('xcalendar', arg, xcalendar)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xperiod', arg, xperiod)
+        self._set_property('xperiod0', arg, xperiod0)
+        self._set_property('xperiodalignment', arg, xperiodalignment)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('y0', arg, y0)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('ycalendar', arg, ycalendar)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('yperiod', arg, yperiod)
+        self._set_property('yperiod0', arg, yperiod0)
+        self._set_property('yperiodalignment', arg, yperiodalignment)
+        self._set_property('ysrc', arg, ysrc)
+
+
+        self._props['type'] = 'scattergl'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_scattermap.py b/plotly/graph_objs/_scattermap.py
index e244e57dc85..0b940d00425 100644
--- a/plotly/graph_objs/_scattermap.py
+++ b/plotly/graph_objs/_scattermap.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,58 +11,9 @@
 
 class Scattermap(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "scattermap"
-    _valid_props = {
-        "below",
-        "cluster",
-        "connectgaps",
-        "customdata",
-        "customdatasrc",
-        "fill",
-        "fillcolor",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "lat",
-        "latsrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "lon",
-        "lonsrc",
-        "marker",
-        "meta",
-        "metasrc",
-        "mode",
-        "name",
-        "opacity",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "stream",
-        "subplot",
-        "text",
-        "textfont",
-        "textposition",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'scattermap'
+    _valid_props = {"below", "cluster", "connectgaps", "customdata", "customdatasrc", "fill", "fillcolor", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "lat", "latsrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "lon", "lonsrc", "marker", "meta", "metasrc", "mode", "name", "opacity", "selected", "selectedpoints", "showlegend", "stream", "subplot", "text", "textfont", "textposition", "textsrc", "texttemplate", "texttemplatesrc", "type", "uid", "uirevision", "unselected", "visible"}
 
     @property
     def below(self):
@@ -76,11 +31,11 @@ def below(self):
         -------
         str
         """
-        return self["below"]
+        return self['below']
 
     @below.setter
     def below(self, val):
-        self["below"] = val
+        self['below'] = val
 
     @property
     def cluster(self):
@@ -95,11 +50,11 @@ def cluster(self):
         -------
         plotly.graph_objs.scattermap.Cluster
         """
-        return self["cluster"]
+        return self['cluster']
 
     @cluster.setter
     def cluster(self, val):
-        self["cluster"] = val
+        self['cluster'] = val
 
     @property
     def connectgaps(self):
@@ -114,11 +69,11 @@ def connectgaps(self):
         -------
         bool
         """
-        return self["connectgaps"]
+        return self['connectgaps']
 
     @connectgaps.setter
     def connectgaps(self, val):
-        self["connectgaps"] = val
+        self['connectgaps'] = val
 
     @property
     def customdata(self):
@@ -135,11 +90,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -154,11 +109,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def fill(self):
@@ -175,11 +130,11 @@ def fill(self):
         -------
         Any
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def fillcolor(self):
@@ -199,11 +154,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def hoverinfo(self):
@@ -223,11 +178,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -242,11 +197,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -261,11 +216,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.scattermap.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -303,11 +258,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -322,11 +277,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -346,11 +301,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -365,11 +320,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -385,11 +340,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -403,11 +358,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def lat(self):
@@ -421,11 +376,11 @@ def lat(self):
         -------
         numpy.ndarray
         """
-        return self["lat"]
+        return self['lat']
 
     @lat.setter
     def lat(self, val):
-        self["lat"] = val
+        self['lat'] = val
 
     @property
     def latsrc(self):
@@ -439,11 +394,11 @@ def latsrc(self):
         -------
         str
         """
-        return self["latsrc"]
+        return self['latsrc']
 
     @latsrc.setter
     def latsrc(self, val):
-        self["latsrc"] = val
+        self['latsrc'] = val
 
     @property
     def legend(self):
@@ -462,11 +417,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -483,11 +438,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -502,11 +457,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.scattermap.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -527,11 +482,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -546,11 +501,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -565,11 +520,11 @@ def line(self):
         -------
         plotly.graph_objs.scattermap.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def lon(self):
@@ -583,11 +538,11 @@ def lon(self):
         -------
         numpy.ndarray
         """
-        return self["lon"]
+        return self['lon']
 
     @lon.setter
     def lon(self, val):
-        self["lon"] = val
+        self['lon'] = val
 
     @property
     def lonsrc(self):
@@ -601,11 +556,11 @@ def lonsrc(self):
         -------
         str
         """
-        return self["lonsrc"]
+        return self['lonsrc']
 
     @lonsrc.setter
     def lonsrc(self, val):
-        self["lonsrc"] = val
+        self['lonsrc'] = val
 
     @property
     def marker(self):
@@ -620,11 +575,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattermap.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -646,11 +601,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -664,11 +619,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def mode(self):
@@ -688,11 +643,11 @@ def mode(self):
         -------
         Any
         """
-        return self["mode"]
+        return self['mode']
 
     @mode.setter
     def mode(self, val):
-        self["mode"] = val
+        self['mode'] = val
 
     @property
     def name(self):
@@ -708,11 +663,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -726,11 +681,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def selected(self):
@@ -745,11 +700,11 @@ def selected(self):
         -------
         plotly.graph_objs.scattermap.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -767,11 +722,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -786,11 +741,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -805,11 +760,11 @@ def stream(self):
         -------
         plotly.graph_objs.scattermap.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def subplot(self):
@@ -828,11 +783,11 @@ def subplot(self):
         -------
         str
         """
-        return self["subplot"]
+        return self['subplot']
 
     @subplot.setter
     def subplot(self, val):
-        self["subplot"] = val
+        self['subplot'] = val
 
     @property
     def text(self):
@@ -853,11 +808,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -876,11 +831,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scattermap.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textposition(self):
@@ -898,11 +853,11 @@ def textposition(self):
         -------
         Any
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textsrc(self):
@@ -916,11 +871,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -949,11 +904,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -968,11 +923,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def uid(self):
@@ -988,11 +943,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1019,11 +974,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -1038,11 +993,11 @@ def unselected(self):
         -------
         plotly.graph_objs.scattermap.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -1059,15 +1014,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1319,59 +1274,57 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        below=None,
-        cluster=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        lat=None,
-        latsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        lon=None,
-        lonsrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            below=None,
+            cluster=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            lat=None,
+            latsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            lon=None,
+            lonsrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Scattermap object
 
@@ -1635,9 +1588,9 @@ def __init__(
         -------
         Scattermap
         """
-        super().__init__("scattermap")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('scattermap')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1647,65 +1600,66 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Scattermap
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Scattermap`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("below", arg, below)
-        self._set_property("cluster", arg, cluster)
-        self._set_property("connectgaps", arg, connectgaps)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("fill", arg, fill)
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("lat", arg, lat)
-        self._set_property("latsrc", arg, latsrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("lon", arg, lon)
-        self._set_property("lonsrc", arg, lonsrc)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("mode", arg, mode)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("subplot", arg, subplot)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "scattermap"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Scattermap`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('below', arg, below)
+        self._set_property('cluster', arg, cluster)
+        self._set_property('connectgaps', arg, connectgaps)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('fill', arg, fill)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('lat', arg, lat)
+        self._set_property('latsrc', arg, latsrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('lon', arg, lon)
+        self._set_property('lonsrc', arg, lonsrc)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('mode', arg, mode)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('subplot', arg, subplot)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'scattermap'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_scattermapbox.py b/plotly/graph_objs/_scattermapbox.py
index 345c02fa5bb..3ccaa87ccd7 100644
--- a/plotly/graph_objs/_scattermapbox.py
+++ b/plotly/graph_objs/_scattermapbox.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -8,58 +12,9 @@
 
 class Scattermapbox(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "scattermapbox"
-    _valid_props = {
-        "below",
-        "cluster",
-        "connectgaps",
-        "customdata",
-        "customdatasrc",
-        "fill",
-        "fillcolor",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "lat",
-        "latsrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "lon",
-        "lonsrc",
-        "marker",
-        "meta",
-        "metasrc",
-        "mode",
-        "name",
-        "opacity",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "stream",
-        "subplot",
-        "text",
-        "textfont",
-        "textposition",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'scattermapbox'
+    _valid_props = {"below", "cluster", "connectgaps", "customdata", "customdatasrc", "fill", "fillcolor", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "lat", "latsrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "lon", "lonsrc", "marker", "meta", "metasrc", "mode", "name", "opacity", "selected", "selectedpoints", "showlegend", "stream", "subplot", "text", "textfont", "textposition", "textsrc", "texttemplate", "texttemplatesrc", "type", "uid", "uirevision", "unselected", "visible"}
 
     @property
     def below(self):
@@ -78,11 +33,11 @@ def below(self):
         -------
         str
         """
-        return self["below"]
+        return self['below']
 
     @below.setter
     def below(self, val):
-        self["below"] = val
+        self['below'] = val
 
     @property
     def cluster(self):
@@ -97,11 +52,11 @@ def cluster(self):
         -------
         plotly.graph_objs.scattermapbox.Cluster
         """
-        return self["cluster"]
+        return self['cluster']
 
     @cluster.setter
     def cluster(self, val):
-        self["cluster"] = val
+        self['cluster'] = val
 
     @property
     def connectgaps(self):
@@ -116,11 +71,11 @@ def connectgaps(self):
         -------
         bool
         """
-        return self["connectgaps"]
+        return self['connectgaps']
 
     @connectgaps.setter
     def connectgaps(self, val):
-        self["connectgaps"] = val
+        self['connectgaps'] = val
 
     @property
     def customdata(self):
@@ -137,11 +92,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -156,11 +111,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def fill(self):
@@ -177,11 +132,11 @@ def fill(self):
         -------
         Any
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def fillcolor(self):
@@ -201,11 +156,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def hoverinfo(self):
@@ -225,11 +180,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -244,11 +199,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -263,11 +218,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.scattermapbox.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -305,11 +260,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -324,11 +279,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -348,11 +303,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -367,11 +322,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -387,11 +342,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -405,11 +360,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def lat(self):
@@ -423,11 +378,11 @@ def lat(self):
         -------
         numpy.ndarray
         """
-        return self["lat"]
+        return self['lat']
 
     @lat.setter
     def lat(self, val):
-        self["lat"] = val
+        self['lat'] = val
 
     @property
     def latsrc(self):
@@ -441,11 +396,11 @@ def latsrc(self):
         -------
         str
         """
-        return self["latsrc"]
+        return self['latsrc']
 
     @latsrc.setter
     def latsrc(self, val):
-        self["latsrc"] = val
+        self['latsrc'] = val
 
     @property
     def legend(self):
@@ -464,11 +419,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -485,11 +440,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -504,11 +459,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.scattermapbox.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -529,11 +484,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -548,11 +503,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -567,11 +522,11 @@ def line(self):
         -------
         plotly.graph_objs.scattermapbox.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def lon(self):
@@ -585,11 +540,11 @@ def lon(self):
         -------
         numpy.ndarray
         """
-        return self["lon"]
+        return self['lon']
 
     @lon.setter
     def lon(self, val):
-        self["lon"] = val
+        self['lon'] = val
 
     @property
     def lonsrc(self):
@@ -603,11 +558,11 @@ def lonsrc(self):
         -------
         str
         """
-        return self["lonsrc"]
+        return self['lonsrc']
 
     @lonsrc.setter
     def lonsrc(self, val):
-        self["lonsrc"] = val
+        self['lonsrc'] = val
 
     @property
     def marker(self):
@@ -622,11 +577,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattermapbox.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -648,11 +603,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -666,11 +621,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def mode(self):
@@ -690,11 +645,11 @@ def mode(self):
         -------
         Any
         """
-        return self["mode"]
+        return self['mode']
 
     @mode.setter
     def mode(self, val):
-        self["mode"] = val
+        self['mode'] = val
 
     @property
     def name(self):
@@ -710,11 +665,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -728,11 +683,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def selected(self):
@@ -747,11 +702,11 @@ def selected(self):
         -------
         plotly.graph_objs.scattermapbox.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -769,11 +724,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -788,11 +743,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -807,11 +762,11 @@ def stream(self):
         -------
         plotly.graph_objs.scattermapbox.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def subplot(self):
@@ -834,11 +789,11 @@ def subplot(self):
         -------
         str
         """
-        return self["subplot"]
+        return self['subplot']
 
     @subplot.setter
     def subplot(self, val):
-        self["subplot"] = val
+        self['subplot'] = val
 
     @property
     def text(self):
@@ -859,11 +814,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -882,11 +837,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scattermapbox.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textposition(self):
@@ -904,11 +859,11 @@ def textposition(self):
         -------
         Any
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textsrc(self):
@@ -922,11 +877,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -955,11 +910,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -974,11 +929,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def uid(self):
@@ -994,11 +949,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1025,11 +980,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -1044,11 +999,11 @@ def unselected(self):
         -------
         plotly.graph_objs.scattermapbox.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -1065,15 +1020,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1330,59 +1285,57 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        below=None,
-        cluster=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        lat=None,
-        latsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        lon=None,
-        lonsrc=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            below=None,
+            cluster=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            lat=None,
+            latsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            lon=None,
+            lonsrc=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Scattermapbox object
 
@@ -1655,9 +1608,9 @@ def __init__(
         -------
         Scattermapbox
         """
-        super().__init__("scattermapbox")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('scattermapbox')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1667,66 +1620,67 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Scattermapbox
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Scattermapbox`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("below", arg, below)
-        self._set_property("cluster", arg, cluster)
-        self._set_property("connectgaps", arg, connectgaps)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("fill", arg, fill)
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("lat", arg, lat)
-        self._set_property("latsrc", arg, latsrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("lon", arg, lon)
-        self._set_property("lonsrc", arg, lonsrc)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("mode", arg, mode)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("subplot", arg, subplot)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "scattermapbox"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Scattermapbox`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('below', arg, below)
+        self._set_property('cluster', arg, cluster)
+        self._set_property('connectgaps', arg, connectgaps)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('fill', arg, fill)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('lat', arg, lat)
+        self._set_property('latsrc', arg, latsrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('lon', arg, lon)
+        self._set_property('lonsrc', arg, lonsrc)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('mode', arg, mode)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('subplot', arg, subplot)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'scattermapbox'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
 
diff --git a/plotly/graph_objs/_scatterpolar.py b/plotly/graph_objs/_scatterpolar.py
index 946df6293e5..ade7b7f315c 100644
--- a/plotly/graph_objs/_scatterpolar.py
+++ b/plotly/graph_objs/_scatterpolar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,64 +11,9 @@
 
 class Scatterpolar(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "scatterpolar"
-    _valid_props = {
-        "cliponaxis",
-        "connectgaps",
-        "customdata",
-        "customdatasrc",
-        "dr",
-        "dtheta",
-        "fill",
-        "fillcolor",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hoveron",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "marker",
-        "meta",
-        "metasrc",
-        "mode",
-        "name",
-        "opacity",
-        "r",
-        "r0",
-        "rsrc",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "stream",
-        "subplot",
-        "text",
-        "textfont",
-        "textposition",
-        "textpositionsrc",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "theta",
-        "theta0",
-        "thetasrc",
-        "thetaunit",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'scatterpolar'
+    _valid_props = {"cliponaxis", "connectgaps", "customdata", "customdatasrc", "dr", "dtheta", "fill", "fillcolor", "hoverinfo", "hoverinfosrc", "hoverlabel", "hoveron", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "marker", "meta", "metasrc", "mode", "name", "opacity", "r", "r0", "rsrc", "selected", "selectedpoints", "showlegend", "stream", "subplot", "text", "textfont", "textposition", "textpositionsrc", "textsrc", "texttemplate", "texttemplatesrc", "theta", "theta0", "thetasrc", "thetaunit", "type", "uid", "uirevision", "unselected", "visible"}
 
     @property
     def cliponaxis(self):
@@ -81,11 +30,11 @@ def cliponaxis(self):
         -------
         bool
         """
-        return self["cliponaxis"]
+        return self['cliponaxis']
 
     @cliponaxis.setter
     def cliponaxis(self, val):
-        self["cliponaxis"] = val
+        self['cliponaxis'] = val
 
     @property
     def connectgaps(self):
@@ -100,11 +49,11 @@ def connectgaps(self):
         -------
         bool
         """
-        return self["connectgaps"]
+        return self['connectgaps']
 
     @connectgaps.setter
     def connectgaps(self, val):
-        self["connectgaps"] = val
+        self['connectgaps'] = val
 
     @property
     def customdata(self):
@@ -121,11 +70,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -140,11 +89,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def dr(self):
@@ -158,11 +107,11 @@ def dr(self):
         -------
         int|float
         """
-        return self["dr"]
+        return self['dr']
 
     @dr.setter
     def dr(self, val):
-        self["dr"] = val
+        self['dr'] = val
 
     @property
     def dtheta(self):
@@ -178,11 +127,11 @@ def dtheta(self):
         -------
         int|float
         """
-        return self["dtheta"]
+        return self['dtheta']
 
     @dtheta.setter
     def dtheta(self, val):
-        self["dtheta"] = val
+        self['dtheta'] = val
 
     @property
     def fill(self):
@@ -205,11 +154,11 @@ def fill(self):
         -------
         Any
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def fillcolor(self):
@@ -229,11 +178,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def hoverinfo(self):
@@ -253,11 +202,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -272,11 +221,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -291,11 +240,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.scatterpolar.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hoveron(self):
@@ -314,11 +263,11 @@ def hoveron(self):
         -------
         Any
         """
-        return self["hoveron"]
+        return self['hoveron']
 
     @hoveron.setter
     def hoveron(self, val):
-        self["hoveron"] = val
+        self['hoveron'] = val
 
     @property
     def hovertemplate(self):
@@ -356,11 +305,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -375,11 +324,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -399,11 +348,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -418,11 +367,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -438,11 +387,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -456,11 +405,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -479,11 +428,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -500,11 +449,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -519,11 +468,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.scatterpolar.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -544,11 +493,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -563,11 +512,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -582,11 +531,11 @@ def line(self):
         -------
         plotly.graph_objs.scatterpolar.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def marker(self):
@@ -601,11 +550,11 @@ def marker(self):
         -------
         plotly.graph_objs.scatterpolar.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -627,11 +576,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -645,11 +594,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def mode(self):
@@ -671,11 +620,11 @@ def mode(self):
         -------
         Any
         """
-        return self["mode"]
+        return self['mode']
 
     @mode.setter
     def mode(self, val):
-        self["mode"] = val
+        self['mode'] = val
 
     @property
     def name(self):
@@ -691,11 +640,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -709,11 +658,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def r(self):
@@ -727,11 +676,11 @@ def r(self):
         -------
         numpy.ndarray
         """
-        return self["r"]
+        return self['r']
 
     @r.setter
     def r(self, val):
-        self["r"] = val
+        self['r'] = val
 
     @property
     def r0(self):
@@ -746,11 +695,11 @@ def r0(self):
         -------
         Any
         """
-        return self["r0"]
+        return self['r0']
 
     @r0.setter
     def r0(self, val):
-        self["r0"] = val
+        self['r0'] = val
 
     @property
     def rsrc(self):
@@ -764,11 +713,11 @@ def rsrc(self):
         -------
         str
         """
-        return self["rsrc"]
+        return self['rsrc']
 
     @rsrc.setter
     def rsrc(self, val):
-        self["rsrc"] = val
+        self['rsrc'] = val
 
     @property
     def selected(self):
@@ -783,11 +732,11 @@ def selected(self):
         -------
         plotly.graph_objs.scatterpolar.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -805,11 +754,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -824,11 +773,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -843,11 +792,11 @@ def stream(self):
         -------
         plotly.graph_objs.scatterpolar.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def subplot(self):
@@ -866,11 +815,11 @@ def subplot(self):
         -------
         str
         """
-        return self["subplot"]
+        return self['subplot']
 
     @subplot.setter
     def subplot(self, val):
-        self["subplot"] = val
+        self['subplot'] = val
 
     @property
     def text(self):
@@ -891,11 +840,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -912,11 +861,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scatterpolar.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textposition(self):
@@ -935,11 +884,11 @@ def textposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textpositionsrc(self):
@@ -954,11 +903,11 @@ def textpositionsrc(self):
         -------
         str
         """
-        return self["textpositionsrc"]
+        return self['textpositionsrc']
 
     @textpositionsrc.setter
     def textpositionsrc(self, val):
-        self["textpositionsrc"] = val
+        self['textpositionsrc'] = val
 
     @property
     def textsrc(self):
@@ -972,11 +921,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -1005,11 +954,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -1024,11 +973,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def theta(self):
@@ -1042,11 +991,11 @@ def theta(self):
         -------
         numpy.ndarray
         """
-        return self["theta"]
+        return self['theta']
 
     @theta.setter
     def theta(self, val):
-        self["theta"] = val
+        self['theta'] = val
 
     @property
     def theta0(self):
@@ -1061,11 +1010,11 @@ def theta0(self):
         -------
         Any
         """
-        return self["theta0"]
+        return self['theta0']
 
     @theta0.setter
     def theta0(self, val):
-        self["theta0"] = val
+        self['theta0'] = val
 
     @property
     def thetasrc(self):
@@ -1079,11 +1028,11 @@ def thetasrc(self):
         -------
         str
         """
-        return self["thetasrc"]
+        return self['thetasrc']
 
     @thetasrc.setter
     def thetasrc(self, val):
-        self["thetasrc"] = val
+        self['thetasrc'] = val
 
     @property
     def thetaunit(self):
@@ -1099,11 +1048,11 @@ def thetaunit(self):
         -------
         Any
         """
-        return self["thetaunit"]
+        return self['thetaunit']
 
     @thetaunit.setter
     def thetaunit(self, val):
-        self["thetaunit"] = val
+        self['thetaunit'] = val
 
     @property
     def uid(self):
@@ -1119,11 +1068,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1150,11 +1099,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -1169,11 +1118,11 @@ def unselected(self):
         -------
         plotly.graph_objs.scatterpolar.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -1190,15 +1139,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1479,65 +1428,63 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        cliponaxis=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        dr=None,
-        dtheta=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        r=None,
-        r0=None,
-        rsrc=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        theta=None,
-        theta0=None,
-        thetasrc=None,
-        thetaunit=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            cliponaxis=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            dr=None,
+            dtheta=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            r=None,
+            r0=None,
+            rsrc=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            theta=None,
+            theta0=None,
+            thetasrc=None,
+            thetaunit=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Scatterpolar object
 
@@ -1834,9 +1781,9 @@ def __init__(
         -------
         Scatterpolar
         """
-        super().__init__("scatterpolar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('scatterpolar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1846,71 +1793,72 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Scatterpolar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Scatterpolar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("cliponaxis", arg, cliponaxis)
-        self._set_property("connectgaps", arg, connectgaps)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("dr", arg, dr)
-        self._set_property("dtheta", arg, dtheta)
-        self._set_property("fill", arg, fill)
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hoveron", arg, hoveron)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("mode", arg, mode)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("r", arg, r)
-        self._set_property("r0", arg, r0)
-        self._set_property("rsrc", arg, rsrc)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("subplot", arg, subplot)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textpositionsrc", arg, textpositionsrc)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("theta", arg, theta)
-        self._set_property("theta0", arg, theta0)
-        self._set_property("thetasrc", arg, thetasrc)
-        self._set_property("thetaunit", arg, thetaunit)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "scatterpolar"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Scatterpolar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('cliponaxis', arg, cliponaxis)
+        self._set_property('connectgaps', arg, connectgaps)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('dr', arg, dr)
+        self._set_property('dtheta', arg, dtheta)
+        self._set_property('fill', arg, fill)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hoveron', arg, hoveron)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('mode', arg, mode)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('r', arg, r)
+        self._set_property('r0', arg, r0)
+        self._set_property('rsrc', arg, rsrc)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('subplot', arg, subplot)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textpositionsrc', arg, textpositionsrc)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('theta', arg, theta)
+        self._set_property('theta0', arg, theta0)
+        self._set_property('thetasrc', arg, thetasrc)
+        self._set_property('thetaunit', arg, thetaunit)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'scatterpolar'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_scatterpolargl.py b/plotly/graph_objs/_scatterpolargl.py
index eb81a753b58..b998a34e587 100644
--- a/plotly/graph_objs/_scatterpolargl.py
+++ b/plotly/graph_objs/_scatterpolargl.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,62 +11,9 @@
 
 class Scatterpolargl(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "scatterpolargl"
-    _valid_props = {
-        "connectgaps",
-        "customdata",
-        "customdatasrc",
-        "dr",
-        "dtheta",
-        "fill",
-        "fillcolor",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "marker",
-        "meta",
-        "metasrc",
-        "mode",
-        "name",
-        "opacity",
-        "r",
-        "r0",
-        "rsrc",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "stream",
-        "subplot",
-        "text",
-        "textfont",
-        "textposition",
-        "textpositionsrc",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "theta",
-        "theta0",
-        "thetasrc",
-        "thetaunit",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'scatterpolargl'
+    _valid_props = {"connectgaps", "customdata", "customdatasrc", "dr", "dtheta", "fill", "fillcolor", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "marker", "meta", "metasrc", "mode", "name", "opacity", "r", "r0", "rsrc", "selected", "selectedpoints", "showlegend", "stream", "subplot", "text", "textfont", "textposition", "textpositionsrc", "textsrc", "texttemplate", "texttemplatesrc", "theta", "theta0", "thetasrc", "thetaunit", "type", "uid", "uirevision", "unselected", "visible"}
 
     @property
     def connectgaps(self):
@@ -77,11 +28,11 @@ def connectgaps(self):
         -------
         bool
         """
-        return self["connectgaps"]
+        return self['connectgaps']
 
     @connectgaps.setter
     def connectgaps(self, val):
-        self["connectgaps"] = val
+        self['connectgaps'] = val
 
     @property
     def customdata(self):
@@ -98,11 +49,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -117,11 +68,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def dr(self):
@@ -135,11 +86,11 @@ def dr(self):
         -------
         int|float
         """
-        return self["dr"]
+        return self['dr']
 
     @dr.setter
     def dr(self, val):
-        self["dr"] = val
+        self['dr'] = val
 
     @property
     def dtheta(self):
@@ -155,11 +106,11 @@ def dtheta(self):
         -------
         int|float
         """
-        return self["dtheta"]
+        return self['dtheta']
 
     @dtheta.setter
     def dtheta(self, val):
-        self["dtheta"] = val
+        self['dtheta'] = val
 
     @property
     def fill(self):
@@ -193,11 +144,11 @@ def fill(self):
         -------
         Any
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def fillcolor(self):
@@ -217,11 +168,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def hoverinfo(self):
@@ -241,11 +192,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -260,11 +211,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -279,11 +230,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.scatterpolargl.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -321,11 +272,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -340,11 +291,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -364,11 +315,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -383,11 +334,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -403,11 +354,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -421,11 +372,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -444,11 +395,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -465,11 +416,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -484,11 +435,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.scatterpolargl.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -509,11 +460,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -528,11 +479,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -547,11 +498,11 @@ def line(self):
         -------
         plotly.graph_objs.scatterpolargl.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def marker(self):
@@ -566,11 +517,11 @@ def marker(self):
         -------
         plotly.graph_objs.scatterpolargl.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -592,11 +543,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -610,11 +561,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def mode(self):
@@ -636,11 +587,11 @@ def mode(self):
         -------
         Any
         """
-        return self["mode"]
+        return self['mode']
 
     @mode.setter
     def mode(self, val):
-        self["mode"] = val
+        self['mode'] = val
 
     @property
     def name(self):
@@ -656,11 +607,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -674,11 +625,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def r(self):
@@ -692,11 +643,11 @@ def r(self):
         -------
         numpy.ndarray
         """
-        return self["r"]
+        return self['r']
 
     @r.setter
     def r(self, val):
-        self["r"] = val
+        self['r'] = val
 
     @property
     def r0(self):
@@ -711,11 +662,11 @@ def r0(self):
         -------
         Any
         """
-        return self["r0"]
+        return self['r0']
 
     @r0.setter
     def r0(self, val):
-        self["r0"] = val
+        self['r0'] = val
 
     @property
     def rsrc(self):
@@ -729,11 +680,11 @@ def rsrc(self):
         -------
         str
         """
-        return self["rsrc"]
+        return self['rsrc']
 
     @rsrc.setter
     def rsrc(self, val):
-        self["rsrc"] = val
+        self['rsrc'] = val
 
     @property
     def selected(self):
@@ -748,11 +699,11 @@ def selected(self):
         -------
         plotly.graph_objs.scatterpolargl.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -770,11 +721,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -789,11 +740,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -808,11 +759,11 @@ def stream(self):
         -------
         plotly.graph_objs.scatterpolargl.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def subplot(self):
@@ -831,11 +782,11 @@ def subplot(self):
         -------
         str
         """
-        return self["subplot"]
+        return self['subplot']
 
     @subplot.setter
     def subplot(self, val):
-        self["subplot"] = val
+        self['subplot'] = val
 
     @property
     def text(self):
@@ -856,11 +807,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -877,11 +828,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scatterpolargl.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textposition(self):
@@ -900,11 +851,11 @@ def textposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textpositionsrc(self):
@@ -919,11 +870,11 @@ def textpositionsrc(self):
         -------
         str
         """
-        return self["textpositionsrc"]
+        return self['textpositionsrc']
 
     @textpositionsrc.setter
     def textpositionsrc(self, val):
-        self["textpositionsrc"] = val
+        self['textpositionsrc'] = val
 
     @property
     def textsrc(self):
@@ -937,11 +888,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -970,11 +921,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -989,11 +940,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def theta(self):
@@ -1007,11 +958,11 @@ def theta(self):
         -------
         numpy.ndarray
         """
-        return self["theta"]
+        return self['theta']
 
     @theta.setter
     def theta(self, val):
-        self["theta"] = val
+        self['theta'] = val
 
     @property
     def theta0(self):
@@ -1026,11 +977,11 @@ def theta0(self):
         -------
         Any
         """
-        return self["theta0"]
+        return self['theta0']
 
     @theta0.setter
     def theta0(self, val):
-        self["theta0"] = val
+        self['theta0'] = val
 
     @property
     def thetasrc(self):
@@ -1044,11 +995,11 @@ def thetasrc(self):
         -------
         str
         """
-        return self["thetasrc"]
+        return self['thetasrc']
 
     @thetasrc.setter
     def thetasrc(self, val):
-        self["thetasrc"] = val
+        self['thetasrc'] = val
 
     @property
     def thetaunit(self):
@@ -1064,11 +1015,11 @@ def thetaunit(self):
         -------
         Any
         """
-        return self["thetaunit"]
+        return self['thetaunit']
 
     @thetaunit.setter
     def thetaunit(self, val):
-        self["thetaunit"] = val
+        self['thetaunit'] = val
 
     @property
     def uid(self):
@@ -1084,11 +1035,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1115,11 +1066,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -1134,11 +1085,11 @@ def unselected(self):
         -------
         plotly.graph_objs.scatterpolargl.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -1155,15 +1106,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1444,63 +1395,61 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        dr=None,
-        dtheta=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        r=None,
-        r0=None,
-        rsrc=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        theta=None,
-        theta0=None,
-        thetasrc=None,
-        thetaunit=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            dr=None,
+            dtheta=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            r=None,
+            r0=None,
+            rsrc=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            theta=None,
+            theta0=None,
+            thetasrc=None,
+            thetaunit=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Scatterpolargl object
 
@@ -1797,9 +1746,9 @@ def __init__(
         -------
         Scatterpolargl
         """
-        super().__init__("scatterpolargl")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('scatterpolargl')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1809,69 +1758,70 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Scatterpolargl
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Scatterpolargl`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("connectgaps", arg, connectgaps)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("dr", arg, dr)
-        self._set_property("dtheta", arg, dtheta)
-        self._set_property("fill", arg, fill)
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("mode", arg, mode)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("r", arg, r)
-        self._set_property("r0", arg, r0)
-        self._set_property("rsrc", arg, rsrc)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("subplot", arg, subplot)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textpositionsrc", arg, textpositionsrc)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("theta", arg, theta)
-        self._set_property("theta0", arg, theta0)
-        self._set_property("thetasrc", arg, thetasrc)
-        self._set_property("thetaunit", arg, thetaunit)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "scatterpolargl"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Scatterpolargl`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('connectgaps', arg, connectgaps)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('dr', arg, dr)
+        self._set_property('dtheta', arg, dtheta)
+        self._set_property('fill', arg, fill)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('mode', arg, mode)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('r', arg, r)
+        self._set_property('r0', arg, r0)
+        self._set_property('rsrc', arg, rsrc)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('subplot', arg, subplot)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textpositionsrc', arg, textpositionsrc)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('theta', arg, theta)
+        self._set_property('theta0', arg, theta0)
+        self._set_property('thetasrc', arg, thetasrc)
+        self._set_property('thetaunit', arg, thetaunit)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'scatterpolargl'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_scattersmith.py b/plotly/graph_objs/_scattersmith.py
index 6646e9dd6b0..fc5a80bcb09 100644
--- a/plotly/graph_objs/_scattersmith.py
+++ b/plotly/graph_objs/_scattersmith.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class Scattersmith(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "scattersmith"
-    _valid_props = {
-        "cliponaxis",
-        "connectgaps",
-        "customdata",
-        "customdatasrc",
-        "fill",
-        "fillcolor",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hoveron",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "imag",
-        "imagsrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "marker",
-        "meta",
-        "metasrc",
-        "mode",
-        "name",
-        "opacity",
-        "real",
-        "realsrc",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "stream",
-        "subplot",
-        "text",
-        "textfont",
-        "textposition",
-        "textpositionsrc",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'scattersmith'
+    _valid_props = {"cliponaxis", "connectgaps", "customdata", "customdatasrc", "fill", "fillcolor", "hoverinfo", "hoverinfosrc", "hoverlabel", "hoveron", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "imag", "imagsrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "marker", "meta", "metasrc", "mode", "name", "opacity", "real", "realsrc", "selected", "selectedpoints", "showlegend", "stream", "subplot", "text", "textfont", "textposition", "textpositionsrc", "textsrc", "texttemplate", "texttemplatesrc", "type", "uid", "uirevision", "unselected", "visible"}
 
     @property
     def cliponaxis(self):
@@ -76,11 +30,11 @@ def cliponaxis(self):
         -------
         bool
         """
-        return self["cliponaxis"]
+        return self['cliponaxis']
 
     @cliponaxis.setter
     def cliponaxis(self, val):
-        self["cliponaxis"] = val
+        self['cliponaxis'] = val
 
     @property
     def connectgaps(self):
@@ -95,11 +49,11 @@ def connectgaps(self):
         -------
         bool
         """
-        return self["connectgaps"]
+        return self['connectgaps']
 
     @connectgaps.setter
     def connectgaps(self, val):
-        self["connectgaps"] = val
+        self['connectgaps'] = val
 
     @property
     def customdata(self):
@@ -116,11 +70,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -135,11 +89,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def fill(self):
@@ -162,11 +116,11 @@ def fill(self):
         -------
         Any
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def fillcolor(self):
@@ -186,11 +140,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def hoverinfo(self):
@@ -210,11 +164,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -229,11 +183,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -248,11 +202,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.scattersmith.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hoveron(self):
@@ -271,11 +225,11 @@ def hoveron(self):
         -------
         Any
         """
-        return self["hoveron"]
+        return self['hoveron']
 
     @hoveron.setter
     def hoveron(self, val):
-        self["hoveron"] = val
+        self['hoveron'] = val
 
     @property
     def hovertemplate(self):
@@ -313,11 +267,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -332,11 +286,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -356,11 +310,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -375,11 +329,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -395,11 +349,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -413,11 +367,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def imag(self):
@@ -433,11 +387,11 @@ def imag(self):
         -------
         numpy.ndarray
         """
-        return self["imag"]
+        return self['imag']
 
     @imag.setter
     def imag(self, val):
-        self["imag"] = val
+        self['imag'] = val
 
     @property
     def imagsrc(self):
@@ -451,11 +405,11 @@ def imagsrc(self):
         -------
         str
         """
-        return self["imagsrc"]
+        return self['imagsrc']
 
     @imagsrc.setter
     def imagsrc(self, val):
-        self["imagsrc"] = val
+        self['imagsrc'] = val
 
     @property
     def legend(self):
@@ -474,11 +428,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -495,11 +449,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -514,11 +468,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.scattersmith.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -539,11 +493,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -558,11 +512,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -577,11 +531,11 @@ def line(self):
         -------
         plotly.graph_objs.scattersmith.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def marker(self):
@@ -596,11 +550,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattersmith.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -622,11 +576,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -640,11 +594,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def mode(self):
@@ -666,11 +620,11 @@ def mode(self):
         -------
         Any
         """
-        return self["mode"]
+        return self['mode']
 
     @mode.setter
     def mode(self, val):
-        self["mode"] = val
+        self['mode'] = val
 
     @property
     def name(self):
@@ -686,11 +640,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -704,11 +658,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def real(self):
@@ -723,11 +677,11 @@ def real(self):
         -------
         numpy.ndarray
         """
-        return self["real"]
+        return self['real']
 
     @real.setter
     def real(self, val):
-        self["real"] = val
+        self['real'] = val
 
     @property
     def realsrc(self):
@@ -741,11 +695,11 @@ def realsrc(self):
         -------
         str
         """
-        return self["realsrc"]
+        return self['realsrc']
 
     @realsrc.setter
     def realsrc(self, val):
-        self["realsrc"] = val
+        self['realsrc'] = val
 
     @property
     def selected(self):
@@ -760,11 +714,11 @@ def selected(self):
         -------
         plotly.graph_objs.scattersmith.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -782,11 +736,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -801,11 +755,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -820,11 +774,11 @@ def stream(self):
         -------
         plotly.graph_objs.scattersmith.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def subplot(self):
@@ -843,11 +797,11 @@ def subplot(self):
         -------
         str
         """
-        return self["subplot"]
+        return self['subplot']
 
     @subplot.setter
     def subplot(self, val):
-        self["subplot"] = val
+        self['subplot'] = val
 
     @property
     def text(self):
@@ -868,11 +822,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -889,11 +843,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scattersmith.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textposition(self):
@@ -912,11 +866,11 @@ def textposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textpositionsrc(self):
@@ -931,11 +885,11 @@ def textpositionsrc(self):
         -------
         str
         """
-        return self["textpositionsrc"]
+        return self['textpositionsrc']
 
     @textpositionsrc.setter
     def textpositionsrc(self, val):
-        self["textpositionsrc"] = val
+        self['textpositionsrc'] = val
 
     @property
     def textsrc(self):
@@ -949,11 +903,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -982,11 +936,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -1001,11 +955,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def uid(self):
@@ -1021,11 +975,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1052,11 +1006,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -1071,11 +1025,11 @@ def unselected(self):
         -------
         plotly.graph_objs.scattersmith.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -1092,15 +1046,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1368,60 +1322,58 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        cliponaxis=None,
-        connectgaps=None,
-        customdata=None,
-        customdatasrc=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        imag=None,
-        imagsrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        real=None,
-        realsrc=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            cliponaxis=None,
+            connectgaps=None,
+            customdata=None,
+            customdatasrc=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            imag=None,
+            imagsrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            real=None,
+            realsrc=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Scattersmith object
 
@@ -1705,9 +1657,9 @@ def __init__(
         -------
         Scattersmith
         """
-        super().__init__("scattersmith")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('scattersmith')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1717,66 +1669,67 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Scattersmith
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Scattersmith`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("cliponaxis", arg, cliponaxis)
-        self._set_property("connectgaps", arg, connectgaps)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("fill", arg, fill)
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hoveron", arg, hoveron)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("imag", arg, imag)
-        self._set_property("imagsrc", arg, imagsrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("mode", arg, mode)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("real", arg, real)
-        self._set_property("realsrc", arg, realsrc)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("subplot", arg, subplot)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textpositionsrc", arg, textpositionsrc)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "scattersmith"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Scattersmith`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('cliponaxis', arg, cliponaxis)
+        self._set_property('connectgaps', arg, connectgaps)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('fill', arg, fill)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hoveron', arg, hoveron)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('imag', arg, imag)
+        self._set_property('imagsrc', arg, imagsrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('mode', arg, mode)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('real', arg, real)
+        self._set_property('realsrc', arg, realsrc)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('subplot', arg, subplot)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textpositionsrc', arg, textpositionsrc)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'scattersmith'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_scatterternary.py b/plotly/graph_objs/_scatterternary.py
index 753c0a2f3eb..47a79d42a32 100644
--- a/plotly/graph_objs/_scatterternary.py
+++ b/plotly/graph_objs/_scatterternary.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,62 +11,9 @@
 
 class Scatterternary(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "scatterternary"
-    _valid_props = {
-        "a",
-        "asrc",
-        "b",
-        "bsrc",
-        "c",
-        "cliponaxis",
-        "connectgaps",
-        "csrc",
-        "customdata",
-        "customdatasrc",
-        "fill",
-        "fillcolor",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hoveron",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "marker",
-        "meta",
-        "metasrc",
-        "mode",
-        "name",
-        "opacity",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "stream",
-        "subplot",
-        "sum",
-        "text",
-        "textfont",
-        "textposition",
-        "textpositionsrc",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'scatterternary'
+    _valid_props = {"a", "asrc", "b", "bsrc", "c", "cliponaxis", "connectgaps", "csrc", "customdata", "customdatasrc", "fill", "fillcolor", "hoverinfo", "hoverinfosrc", "hoverlabel", "hoveron", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "marker", "meta", "metasrc", "mode", "name", "opacity", "selected", "selectedpoints", "showlegend", "stream", "subplot", "sum", "text", "textfont", "textposition", "textpositionsrc", "textsrc", "texttemplate", "texttemplatesrc", "type", "uid", "uirevision", "unselected", "visible"}
 
     @property
     def a(self):
@@ -79,11 +30,11 @@ def a(self):
         -------
         numpy.ndarray
         """
-        return self["a"]
+        return self['a']
 
     @a.setter
     def a(self, val):
-        self["a"] = val
+        self['a'] = val
 
     @property
     def asrc(self):
@@ -97,11 +48,11 @@ def asrc(self):
         -------
         str
         """
-        return self["asrc"]
+        return self['asrc']
 
     @asrc.setter
     def asrc(self, val):
-        self["asrc"] = val
+        self['asrc'] = val
 
     @property
     def b(self):
@@ -118,11 +69,11 @@ def b(self):
         -------
         numpy.ndarray
         """
-        return self["b"]
+        return self['b']
 
     @b.setter
     def b(self, val):
-        self["b"] = val
+        self['b'] = val
 
     @property
     def bsrc(self):
@@ -136,11 +87,11 @@ def bsrc(self):
         -------
         str
         """
-        return self["bsrc"]
+        return self['bsrc']
 
     @bsrc.setter
     def bsrc(self, val):
-        self["bsrc"] = val
+        self['bsrc'] = val
 
     @property
     def c(self):
@@ -157,11 +108,11 @@ def c(self):
         -------
         numpy.ndarray
         """
-        return self["c"]
+        return self['c']
 
     @c.setter
     def c(self, val):
-        self["c"] = val
+        self['c'] = val
 
     @property
     def cliponaxis(self):
@@ -178,11 +129,11 @@ def cliponaxis(self):
         -------
         bool
         """
-        return self["cliponaxis"]
+        return self['cliponaxis']
 
     @cliponaxis.setter
     def cliponaxis(self, val):
-        self["cliponaxis"] = val
+        self['cliponaxis'] = val
 
     @property
     def connectgaps(self):
@@ -197,11 +148,11 @@ def connectgaps(self):
         -------
         bool
         """
-        return self["connectgaps"]
+        return self['connectgaps']
 
     @connectgaps.setter
     def connectgaps(self, val):
-        self["connectgaps"] = val
+        self['connectgaps'] = val
 
     @property
     def csrc(self):
@@ -215,11 +166,11 @@ def csrc(self):
         -------
         str
         """
-        return self["csrc"]
+        return self['csrc']
 
     @csrc.setter
     def csrc(self, val):
-        self["csrc"] = val
+        self['csrc'] = val
 
     @property
     def customdata(self):
@@ -236,11 +187,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -255,11 +206,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def fill(self):
@@ -282,11 +233,11 @@ def fill(self):
         -------
         Any
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def fillcolor(self):
@@ -306,11 +257,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def hoverinfo(self):
@@ -330,11 +281,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -349,11 +300,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -368,11 +319,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.scatterternary.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hoveron(self):
@@ -391,11 +342,11 @@ def hoveron(self):
         -------
         Any
         """
-        return self["hoveron"]
+        return self['hoveron']
 
     @hoveron.setter
     def hoveron(self, val):
-        self["hoveron"] = val
+        self['hoveron'] = val
 
     @property
     def hovertemplate(self):
@@ -433,11 +384,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -452,11 +403,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -476,11 +427,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -495,11 +446,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -515,11 +466,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -533,11 +484,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -556,11 +507,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -577,11 +528,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -596,11 +547,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.scatterternary.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -621,11 +572,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -640,11 +591,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -659,11 +610,11 @@ def line(self):
         -------
         plotly.graph_objs.scatterternary.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def marker(self):
@@ -678,11 +629,11 @@ def marker(self):
         -------
         plotly.graph_objs.scatterternary.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -704,11 +655,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -722,11 +673,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def mode(self):
@@ -748,11 +699,11 @@ def mode(self):
         -------
         Any
         """
-        return self["mode"]
+        return self['mode']
 
     @mode.setter
     def mode(self, val):
-        self["mode"] = val
+        self['mode'] = val
 
     @property
     def name(self):
@@ -768,11 +719,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -786,11 +737,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def selected(self):
@@ -805,11 +756,11 @@ def selected(self):
         -------
         plotly.graph_objs.scatterternary.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -827,11 +778,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -846,11 +797,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -865,11 +816,11 @@ def stream(self):
         -------
         plotly.graph_objs.scatterternary.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def subplot(self):
@@ -888,11 +839,11 @@ def subplot(self):
         -------
         str
         """
-        return self["subplot"]
+        return self['subplot']
 
     @subplot.setter
     def subplot(self, val):
-        self["subplot"] = val
+        self['subplot'] = val
 
     @property
     def sum(self):
@@ -910,11 +861,11 @@ def sum(self):
         -------
         int|float
         """
-        return self["sum"]
+        return self['sum']
 
     @sum.setter
     def sum(self, val):
-        self["sum"] = val
+        self['sum'] = val
 
     @property
     def text(self):
@@ -935,11 +886,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -956,11 +907,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scatterternary.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textposition(self):
@@ -979,11 +930,11 @@ def textposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textpositionsrc(self):
@@ -998,11 +949,11 @@ def textpositionsrc(self):
         -------
         str
         """
-        return self["textpositionsrc"]
+        return self['textpositionsrc']
 
     @textpositionsrc.setter
     def textpositionsrc(self, val):
-        self["textpositionsrc"] = val
+        self['textpositionsrc'] = val
 
     @property
     def textsrc(self):
@@ -1016,11 +967,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -1049,11 +1000,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -1068,11 +1019,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def uid(self):
@@ -1088,11 +1039,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1119,11 +1070,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -1138,11 +1089,11 @@ def unselected(self):
         -------
         plotly.graph_objs.scatterternary.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -1159,15 +1110,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1455,63 +1406,61 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        a=None,
-        asrc=None,
-        b=None,
-        bsrc=None,
-        c=None,
-        cliponaxis=None,
-        connectgaps=None,
-        csrc=None,
-        customdata=None,
-        customdatasrc=None,
-        fill=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        mode=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        subplot=None,
-        sum=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            a=None,
+            asrc=None,
+            b=None,
+            bsrc=None,
+            c=None,
+            cliponaxis=None,
+            connectgaps=None,
+            csrc=None,
+            customdata=None,
+            customdatasrc=None,
+            fill=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            mode=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            subplot=None,
+            sum=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Scatterternary object
 
@@ -1812,9 +1761,9 @@ def __init__(
         -------
         Scatterternary
         """
-        super().__init__("scatterternary")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('scatterternary')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1824,69 +1773,70 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Scatterternary
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Scatterternary`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("a", arg, a)
-        self._set_property("asrc", arg, asrc)
-        self._set_property("b", arg, b)
-        self._set_property("bsrc", arg, bsrc)
-        self._set_property("c", arg, c)
-        self._set_property("cliponaxis", arg, cliponaxis)
-        self._set_property("connectgaps", arg, connectgaps)
-        self._set_property("csrc", arg, csrc)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("fill", arg, fill)
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hoveron", arg, hoveron)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("mode", arg, mode)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("subplot", arg, subplot)
-        self._set_property("sum", arg, sum)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textpositionsrc", arg, textpositionsrc)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "scatterternary"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Scatterternary`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('a', arg, a)
+        self._set_property('asrc', arg, asrc)
+        self._set_property('b', arg, b)
+        self._set_property('bsrc', arg, bsrc)
+        self._set_property('c', arg, c)
+        self._set_property('cliponaxis', arg, cliponaxis)
+        self._set_property('connectgaps', arg, connectgaps)
+        self._set_property('csrc', arg, csrc)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('fill', arg, fill)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hoveron', arg, hoveron)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('mode', arg, mode)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('subplot', arg, subplot)
+        self._set_property('sum', arg, sum)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textpositionsrc', arg, textpositionsrc)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'scatterternary'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_splom.py b/plotly/graph_objs/_splom.py
index 4072b32c520..9e0a32f942c 100644
--- a/plotly/graph_objs/_splom.py
+++ b/plotly/graph_objs/_splom.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,51 +11,9 @@
 
 class Splom(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "splom"
-    _valid_props = {
-        "customdata",
-        "customdatasrc",
-        "diagonal",
-        "dimensiondefaults",
-        "dimensions",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "marker",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "showlowerhalf",
-        "showupperhalf",
-        "stream",
-        "text",
-        "textsrc",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-        "xaxes",
-        "xhoverformat",
-        "yaxes",
-        "yhoverformat",
-    }
+    _parent_path_str = ''
+    _path_str = 'splom'
+    _valid_props = {"customdata", "customdatasrc", "diagonal", "dimensiondefaults", "dimensions", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "marker", "meta", "metasrc", "name", "opacity", "selected", "selectedpoints", "showlegend", "showlowerhalf", "showupperhalf", "stream", "text", "textsrc", "type", "uid", "uirevision", "unselected", "visible", "xaxes", "xhoverformat", "yaxes", "yhoverformat"}
 
     @property
     def customdata(self):
@@ -68,11 +30,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -87,11 +49,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def diagonal(self):
@@ -106,11 +68,11 @@ def diagonal(self):
         -------
         plotly.graph_objs.splom.Diagonal
         """
-        return self["diagonal"]
+        return self['diagonal']
 
     @diagonal.setter
     def diagonal(self, val):
-        self["diagonal"] = val
+        self['diagonal'] = val
 
     @property
     def dimensions(self):
@@ -125,11 +87,11 @@ def dimensions(self):
         -------
         tuple[plotly.graph_objs.splom.Dimension]
         """
-        return self["dimensions"]
+        return self['dimensions']
 
     @dimensions.setter
     def dimensions(self, val):
-        self["dimensions"] = val
+        self['dimensions'] = val
 
     @property
     def dimensiondefaults(self):
@@ -148,11 +110,11 @@ def dimensiondefaults(self):
         -------
         plotly.graph_objs.splom.Dimension
         """
-        return self["dimensiondefaults"]
+        return self['dimensiondefaults']
 
     @dimensiondefaults.setter
     def dimensiondefaults(self, val):
-        self["dimensiondefaults"] = val
+        self['dimensiondefaults'] = val
 
     @property
     def hoverinfo(self):
@@ -172,11 +134,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -191,11 +153,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -210,11 +172,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.splom.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -252,11 +214,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -271,11 +233,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -291,11 +253,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -310,11 +272,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -330,11 +292,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -348,11 +310,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -371,11 +333,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -392,11 +354,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -411,11 +373,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.splom.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -436,11 +398,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -455,11 +417,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def marker(self):
@@ -474,11 +436,11 @@ def marker(self):
         -------
         plotly.graph_objs.splom.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meta(self):
@@ -500,11 +462,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -518,11 +480,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -538,11 +500,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -556,11 +518,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def selected(self):
@@ -575,11 +537,11 @@ def selected(self):
         -------
         plotly.graph_objs.splom.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -597,11 +559,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -616,11 +578,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showlowerhalf(self):
@@ -635,11 +597,11 @@ def showlowerhalf(self):
         -------
         bool
         """
-        return self["showlowerhalf"]
+        return self['showlowerhalf']
 
     @showlowerhalf.setter
     def showlowerhalf(self, val):
-        self["showlowerhalf"] = val
+        self['showlowerhalf'] = val
 
     @property
     def showupperhalf(self):
@@ -654,11 +616,11 @@ def showupperhalf(self):
         -------
         bool
         """
-        return self["showupperhalf"]
+        return self['showupperhalf']
 
     @showupperhalf.setter
     def showupperhalf(self, val):
-        self["showupperhalf"] = val
+        self['showupperhalf'] = val
 
     @property
     def stream(self):
@@ -673,11 +635,11 @@ def stream(self):
         -------
         plotly.graph_objs.splom.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -696,11 +658,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -714,11 +676,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def uid(self):
@@ -734,11 +696,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -765,11 +727,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -784,11 +746,11 @@ def unselected(self):
         -------
         plotly.graph_objs.splom.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -805,11 +767,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def xaxes(self):
@@ -832,11 +794,11 @@ def xaxes(self):
         -------
         list
         """
-        return self["xaxes"]
+        return self['xaxes']
 
     @xaxes.setter
     def xaxes(self, val):
-        self["xaxes"] = val
+        self['xaxes'] = val
 
     @property
     def xhoverformat(self):
@@ -861,11 +823,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def yaxes(self):
@@ -888,11 +850,11 @@ def yaxes(self):
         -------
         list
         """
-        return self["yaxes"]
+        return self['yaxes']
 
     @yaxes.setter
     def yaxes(self, val):
-        self["yaxes"] = val
+        self['yaxes'] = val
 
     @property
     def yhoverformat(self):
@@ -917,15 +879,15 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1159,52 +1121,50 @@ def _prop_descriptions(self):
             display *09~15~23.46*By default the values are
             formatted using `yaxis.hoverformat`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        customdata=None,
-        customdatasrc=None,
-        diagonal=None,
-        dimensions=None,
-        dimensiondefaults=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        marker=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        showlowerhalf=None,
-        showupperhalf=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        xaxes=None,
-        xhoverformat=None,
-        yaxes=None,
-        yhoverformat=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            customdata=None,
+            customdatasrc=None,
+            diagonal=None,
+            dimensions=None,
+            dimensiondefaults=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            marker=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            showlowerhalf=None,
+            showupperhalf=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            xaxes=None,
+            xhoverformat=None,
+            yaxes=None,
+            yhoverformat=None,
+            **kwargs
+        ):
         """
         Construct a new Splom object
 
@@ -1454,9 +1414,9 @@ def __init__(
         -------
         Splom
         """
-        super().__init__("splom")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('splom')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1466,58 +1426,59 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Splom
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Splom`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("diagonal", arg, diagonal)
-        self._set_property("dimensions", arg, dimensions)
-        self._set_property("dimensiondefaults", arg, dimensiondefaults)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("marker", arg, marker)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showlowerhalf", arg, showlowerhalf)
-        self._set_property("showupperhalf", arg, showupperhalf)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-        self._set_property("xaxes", arg, xaxes)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("yaxes", arg, yaxes)
-        self._set_property("yhoverformat", arg, yhoverformat)
-
-        self._props["type"] = "splom"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Splom`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('diagonal', arg, diagonal)
+        self._set_property('dimensions', arg, dimensions)
+        self._set_property('dimensiondefaults', arg, dimensiondefaults)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('marker', arg, marker)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showlowerhalf', arg, showlowerhalf)
+        self._set_property('showupperhalf', arg, showupperhalf)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+        self._set_property('xaxes', arg, xaxes)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('yaxes', arg, yaxes)
+        self._set_property('yhoverformat', arg, yhoverformat)
+
+
+        self._props['type'] = 'splom'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_streamtube.py b/plotly/graph_objs/_streamtube.py
index eacfa1649fa..d18459de4d1 100644
--- a/plotly/graph_objs/_streamtube.py
+++ b/plotly/graph_objs/_streamtube.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,70 +11,9 @@
 
 class Streamtube(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "streamtube"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "customdata",
-        "customdatasrc",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "lighting",
-        "lightposition",
-        "maxdisplayed",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "reversescale",
-        "scene",
-        "showlegend",
-        "showscale",
-        "sizeref",
-        "starts",
-        "stream",
-        "text",
-        "type",
-        "u",
-        "uhoverformat",
-        "uid",
-        "uirevision",
-        "usrc",
-        "v",
-        "vhoverformat",
-        "visible",
-        "vsrc",
-        "w",
-        "whoverformat",
-        "wsrc",
-        "x",
-        "xhoverformat",
-        "xsrc",
-        "y",
-        "yhoverformat",
-        "ysrc",
-        "z",
-        "zhoverformat",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'streamtube'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "coloraxis", "colorbar", "colorscale", "customdata", "customdatasrc", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "lighting", "lightposition", "maxdisplayed", "meta", "metasrc", "name", "opacity", "reversescale", "scene", "showlegend", "showscale", "sizeref", "starts", "stream", "text", "type", "u", "uhoverformat", "uid", "uirevision", "usrc", "v", "vhoverformat", "visible", "vsrc", "w", "whoverformat", "wsrc", "x", "xhoverformat", "xsrc", "y", "yhoverformat", "ysrc", "z", "zhoverformat", "zsrc"}
 
     @property
     def autocolorscale(self):
@@ -89,11 +32,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -110,11 +53,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -130,11 +73,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -151,11 +94,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -171,11 +114,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def coloraxis(self):
@@ -196,11 +139,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -215,11 +158,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.streamtube.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -266,11 +209,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def customdata(self):
@@ -287,11 +230,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -306,11 +249,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def hoverinfo(self):
@@ -330,11 +273,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -349,11 +292,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -368,11 +311,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.streamtube.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -413,11 +356,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -432,11 +375,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -451,11 +394,11 @@ def hovertext(self):
         -------
         str
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def ids(self):
@@ -471,11 +414,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -489,11 +432,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -512,11 +455,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -533,11 +476,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -552,11 +495,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.streamtube.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -577,11 +520,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -596,11 +539,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def lighting(self):
@@ -615,11 +558,11 @@ def lighting(self):
         -------
         plotly.graph_objs.streamtube.Lighting
         """
-        return self["lighting"]
+        return self['lighting']
 
     @lighting.setter
     def lighting(self, val):
-        self["lighting"] = val
+        self['lighting'] = val
 
     @property
     def lightposition(self):
@@ -634,11 +577,11 @@ def lightposition(self):
         -------
         plotly.graph_objs.streamtube.Lightposition
         """
-        return self["lightposition"]
+        return self['lightposition']
 
     @lightposition.setter
     def lightposition(self, val):
-        self["lightposition"] = val
+        self['lightposition'] = val
 
     @property
     def maxdisplayed(self):
@@ -653,11 +596,11 @@ def maxdisplayed(self):
         -------
         int
         """
-        return self["maxdisplayed"]
+        return self['maxdisplayed']
 
     @maxdisplayed.setter
     def maxdisplayed(self, val):
-        self["maxdisplayed"] = val
+        self['maxdisplayed'] = val
 
     @property
     def meta(self):
@@ -679,11 +622,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -697,11 +640,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -717,11 +660,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -740,11 +683,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def reversescale(self):
@@ -760,11 +703,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def scene(self):
@@ -783,11 +726,11 @@ def scene(self):
         -------
         str
         """
-        return self["scene"]
+        return self['scene']
 
     @scene.setter
     def scene(self, val):
-        self["scene"] = val
+        self['scene'] = val
 
     @property
     def showlegend(self):
@@ -802,11 +745,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showscale(self):
@@ -821,11 +764,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def sizeref(self):
@@ -841,11 +784,11 @@ def sizeref(self):
         -------
         int|float
         """
-        return self["sizeref"]
+        return self['sizeref']
 
     @sizeref.setter
     def sizeref(self, val):
-        self["sizeref"] = val
+        self['sizeref'] = val
 
     @property
     def starts(self):
@@ -860,11 +803,11 @@ def starts(self):
         -------
         plotly.graph_objs.streamtube.Starts
         """
-        return self["starts"]
+        return self['starts']
 
     @starts.setter
     def starts(self, val):
-        self["starts"] = val
+        self['starts'] = val
 
     @property
     def stream(self):
@@ -879,11 +822,11 @@ def stream(self):
         -------
         plotly.graph_objs.streamtube.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -901,11 +844,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def u(self):
@@ -919,11 +862,11 @@ def u(self):
         -------
         numpy.ndarray
         """
-        return self["u"]
+        return self['u']
 
     @u.setter
     def u(self, val):
-        self["u"] = val
+        self['u'] = val
 
     @property
     def uhoverformat(self):
@@ -942,11 +885,11 @@ def uhoverformat(self):
         -------
         str
         """
-        return self["uhoverformat"]
+        return self['uhoverformat']
 
     @uhoverformat.setter
     def uhoverformat(self, val):
-        self["uhoverformat"] = val
+        self['uhoverformat'] = val
 
     @property
     def uid(self):
@@ -962,11 +905,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -993,11 +936,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def usrc(self):
@@ -1011,11 +954,11 @@ def usrc(self):
         -------
         str
         """
-        return self["usrc"]
+        return self['usrc']
 
     @usrc.setter
     def usrc(self, val):
-        self["usrc"] = val
+        self['usrc'] = val
 
     @property
     def v(self):
@@ -1029,11 +972,11 @@ def v(self):
         -------
         numpy.ndarray
         """
-        return self["v"]
+        return self['v']
 
     @v.setter
     def v(self, val):
-        self["v"] = val
+        self['v'] = val
 
     @property
     def vhoverformat(self):
@@ -1052,11 +995,11 @@ def vhoverformat(self):
         -------
         str
         """
-        return self["vhoverformat"]
+        return self['vhoverformat']
 
     @vhoverformat.setter
     def vhoverformat(self, val):
-        self["vhoverformat"] = val
+        self['vhoverformat'] = val
 
     @property
     def visible(self):
@@ -1073,11 +1016,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def vsrc(self):
@@ -1091,11 +1034,11 @@ def vsrc(self):
         -------
         str
         """
-        return self["vsrc"]
+        return self['vsrc']
 
     @vsrc.setter
     def vsrc(self, val):
-        self["vsrc"] = val
+        self['vsrc'] = val
 
     @property
     def w(self):
@@ -1109,11 +1052,11 @@ def w(self):
         -------
         numpy.ndarray
         """
-        return self["w"]
+        return self['w']
 
     @w.setter
     def w(self, val):
-        self["w"] = val
+        self['w'] = val
 
     @property
     def whoverformat(self):
@@ -1132,11 +1075,11 @@ def whoverformat(self):
         -------
         str
         """
-        return self["whoverformat"]
+        return self['whoverformat']
 
     @whoverformat.setter
     def whoverformat(self, val):
-        self["whoverformat"] = val
+        self['whoverformat'] = val
 
     @property
     def wsrc(self):
@@ -1150,11 +1093,11 @@ def wsrc(self):
         -------
         str
         """
-        return self["wsrc"]
+        return self['wsrc']
 
     @wsrc.setter
     def wsrc(self, val):
-        self["wsrc"] = val
+        self['wsrc'] = val
 
     @property
     def x(self):
@@ -1168,11 +1111,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xhoverformat(self):
@@ -1197,11 +1140,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xsrc(self):
@@ -1215,11 +1158,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -1233,11 +1176,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yhoverformat(self):
@@ -1262,11 +1205,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def ysrc(self):
@@ -1280,11 +1223,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def z(self):
@@ -1298,11 +1241,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zhoverformat(self):
@@ -1327,11 +1270,11 @@ def zhoverformat(self):
         -------
         str
         """
-        return self["zhoverformat"]
+        return self['zhoverformat']
 
     @zhoverformat.setter
     def zhoverformat(self, val):
-        self["zhoverformat"] = val
+        self['zhoverformat'] = val
 
     @property
     def zsrc(self):
@@ -1345,15 +1288,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1676,71 +1619,69 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        customdata=None,
-        customdatasrc=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        maxdisplayed=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        sizeref=None,
-        starts=None,
-        stream=None,
-        text=None,
-        u=None,
-        uhoverformat=None,
-        uid=None,
-        uirevision=None,
-        usrc=None,
-        v=None,
-        vhoverformat=None,
-        visible=None,
-        vsrc=None,
-        w=None,
-        whoverformat=None,
-        wsrc=None,
-        x=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zhoverformat=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            customdata=None,
+            customdatasrc=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            maxdisplayed=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            sizeref=None,
+            starts=None,
+            stream=None,
+            text=None,
+            u=None,
+            uhoverformat=None,
+            uid=None,
+            uirevision=None,
+            usrc=None,
+            v=None,
+            vhoverformat=None,
+            visible=None,
+            vsrc=None,
+            w=None,
+            whoverformat=None,
+            wsrc=None,
+            x=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zhoverformat=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Streamtube object
 
@@ -2081,9 +2022,9 @@ def __init__(
         -------
         Streamtube
         """
-        super().__init__("streamtube")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('streamtube')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2093,77 +2034,78 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Streamtube
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Streamtube`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("lighting", arg, lighting)
-        self._set_property("lightposition", arg, lightposition)
-        self._set_property("maxdisplayed", arg, maxdisplayed)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("scene", arg, scene)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("sizeref", arg, sizeref)
-        self._set_property("starts", arg, starts)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("u", arg, u)
-        self._set_property("uhoverformat", arg, uhoverformat)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("usrc", arg, usrc)
-        self._set_property("v", arg, v)
-        self._set_property("vhoverformat", arg, vhoverformat)
-        self._set_property("visible", arg, visible)
-        self._set_property("vsrc", arg, vsrc)
-        self._set_property("w", arg, w)
-        self._set_property("whoverformat", arg, whoverformat)
-        self._set_property("wsrc", arg, wsrc)
-        self._set_property("x", arg, x)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("z", arg, z)
-        self._set_property("zhoverformat", arg, zhoverformat)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "streamtube"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Streamtube`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('lighting', arg, lighting)
+        self._set_property('lightposition', arg, lightposition)
+        self._set_property('maxdisplayed', arg, maxdisplayed)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('scene', arg, scene)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('sizeref', arg, sizeref)
+        self._set_property('starts', arg, starts)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('u', arg, u)
+        self._set_property('uhoverformat', arg, uhoverformat)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('usrc', arg, usrc)
+        self._set_property('v', arg, v)
+        self._set_property('vhoverformat', arg, vhoverformat)
+        self._set_property('visible', arg, visible)
+        self._set_property('vsrc', arg, vsrc)
+        self._set_property('w', arg, w)
+        self._set_property('whoverformat', arg, whoverformat)
+        self._set_property('wsrc', arg, wsrc)
+        self._set_property('x', arg, x)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('z', arg, z)
+        self._set_property('zhoverformat', arg, zhoverformat)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'streamtube'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_sunburst.py b/plotly/graph_objs/_sunburst.py
index 932729a7346..627a4d67db9 100644
--- a/plotly/graph_objs/_sunburst.py
+++ b/plotly/graph_objs/_sunburst.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class Sunburst(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "sunburst"
-    _valid_props = {
-        "branchvalues",
-        "count",
-        "customdata",
-        "customdatasrc",
-        "domain",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "insidetextfont",
-        "insidetextorientation",
-        "labels",
-        "labelssrc",
-        "leaf",
-        "legend",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "level",
-        "marker",
-        "maxdepth",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "outsidetextfont",
-        "parents",
-        "parentssrc",
-        "root",
-        "rotation",
-        "sort",
-        "stream",
-        "text",
-        "textfont",
-        "textinfo",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "type",
-        "uid",
-        "uirevision",
-        "values",
-        "valuessrc",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'sunburst'
+    _valid_props = {"branchvalues", "count", "customdata", "customdatasrc", "domain", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "insidetextfont", "insidetextorientation", "labels", "labelssrc", "leaf", "legend", "legendgrouptitle", "legendrank", "legendwidth", "level", "marker", "maxdepth", "meta", "metasrc", "name", "opacity", "outsidetextfont", "parents", "parentssrc", "root", "rotation", "sort", "stream", "text", "textfont", "textinfo", "textsrc", "texttemplate", "texttemplatesrc", "type", "uid", "uirevision", "values", "valuessrc", "visible"}
 
     @property
     def branchvalues(self):
@@ -79,11 +33,11 @@ def branchvalues(self):
         -------
         Any
         """
-        return self["branchvalues"]
+        return self['branchvalues']
 
     @branchvalues.setter
     def branchvalues(self, val):
-        self["branchvalues"] = val
+        self['branchvalues'] = val
 
     @property
     def count(self):
@@ -101,11 +55,11 @@ def count(self):
         -------
         Any
         """
-        return self["count"]
+        return self['count']
 
     @count.setter
     def count(self, val):
-        self["count"] = val
+        self['count'] = val
 
     @property
     def customdata(self):
@@ -122,11 +76,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -141,11 +95,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def domain(self):
@@ -160,11 +114,11 @@ def domain(self):
         -------
         plotly.graph_objs.sunburst.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def hoverinfo(self):
@@ -184,11 +138,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -203,11 +157,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -222,11 +176,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.sunburst.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -267,11 +221,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -286,11 +240,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -310,11 +264,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -329,11 +283,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -349,11 +303,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -367,11 +321,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def insidetextfont(self):
@@ -388,11 +342,11 @@ def insidetextfont(self):
         -------
         plotly.graph_objs.sunburst.Insidetextfont
         """
-        return self["insidetextfont"]
+        return self['insidetextfont']
 
     @insidetextfont.setter
     def insidetextfont(self, val):
-        self["insidetextfont"] = val
+        self['insidetextfont'] = val
 
     @property
     def insidetextorientation(self):
@@ -414,11 +368,11 @@ def insidetextorientation(self):
         -------
         Any
         """
-        return self["insidetextorientation"]
+        return self['insidetextorientation']
 
     @insidetextorientation.setter
     def insidetextorientation(self, val):
-        self["insidetextorientation"] = val
+        self['insidetextorientation'] = val
 
     @property
     def labels(self):
@@ -432,11 +386,11 @@ def labels(self):
         -------
         numpy.ndarray
         """
-        return self["labels"]
+        return self['labels']
 
     @labels.setter
     def labels(self, val):
-        self["labels"] = val
+        self['labels'] = val
 
     @property
     def labelssrc(self):
@@ -450,11 +404,11 @@ def labelssrc(self):
         -------
         str
         """
-        return self["labelssrc"]
+        return self['labelssrc']
 
     @labelssrc.setter
     def labelssrc(self, val):
-        self["labelssrc"] = val
+        self['labelssrc'] = val
 
     @property
     def leaf(self):
@@ -469,11 +423,11 @@ def leaf(self):
         -------
         plotly.graph_objs.sunburst.Leaf
         """
-        return self["leaf"]
+        return self['leaf']
 
     @leaf.setter
     def leaf(self, val):
-        self["leaf"] = val
+        self['leaf'] = val
 
     @property
     def legend(self):
@@ -492,11 +446,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgrouptitle(self):
@@ -511,11 +465,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.sunburst.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -536,11 +490,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -555,11 +509,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def level(self):
@@ -575,11 +529,11 @@ def level(self):
         -------
         Any
         """
-        return self["level"]
+        return self['level']
 
     @level.setter
     def level(self, val):
-        self["level"] = val
+        self['level'] = val
 
     @property
     def marker(self):
@@ -594,11 +548,11 @@ def marker(self):
         -------
         plotly.graph_objs.sunburst.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def maxdepth(self):
@@ -613,11 +567,11 @@ def maxdepth(self):
         -------
         int
         """
-        return self["maxdepth"]
+        return self['maxdepth']
 
     @maxdepth.setter
     def maxdepth(self, val):
-        self["maxdepth"] = val
+        self['maxdepth'] = val
 
     @property
     def meta(self):
@@ -639,11 +593,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -657,11 +611,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -677,11 +631,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -695,11 +649,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def outsidetextfont(self):
@@ -720,11 +674,11 @@ def outsidetextfont(self):
         -------
         plotly.graph_objs.sunburst.Outsidetextfont
         """
-        return self["outsidetextfont"]
+        return self['outsidetextfont']
 
     @outsidetextfont.setter
     def outsidetextfont(self, val):
-        self["outsidetextfont"] = val
+        self['outsidetextfont'] = val
 
     @property
     def parents(self):
@@ -743,11 +697,11 @@ def parents(self):
         -------
         numpy.ndarray
         """
-        return self["parents"]
+        return self['parents']
 
     @parents.setter
     def parents(self, val):
-        self["parents"] = val
+        self['parents'] = val
 
     @property
     def parentssrc(self):
@@ -761,11 +715,11 @@ def parentssrc(self):
         -------
         str
         """
-        return self["parentssrc"]
+        return self['parentssrc']
 
     @parentssrc.setter
     def parentssrc(self, val):
-        self["parentssrc"] = val
+        self['parentssrc'] = val
 
     @property
     def root(self):
@@ -780,11 +734,11 @@ def root(self):
         -------
         plotly.graph_objs.sunburst.Root
         """
-        return self["root"]
+        return self['root']
 
     @root.setter
     def root(self, val):
-        self["root"] = val
+        self['root'] = val
 
     @property
     def rotation(self):
@@ -801,11 +755,11 @@ def rotation(self):
         -------
         int|float
         """
-        return self["rotation"]
+        return self['rotation']
 
     @rotation.setter
     def rotation(self, val):
-        self["rotation"] = val
+        self['rotation'] = val
 
     @property
     def sort(self):
@@ -820,11 +774,11 @@ def sort(self):
         -------
         bool
         """
-        return self["sort"]
+        return self['sort']
 
     @sort.setter
     def sort(self, val):
-        self["sort"] = val
+        self['sort'] = val
 
     @property
     def stream(self):
@@ -839,11 +793,11 @@ def stream(self):
         -------
         plotly.graph_objs.sunburst.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -861,11 +815,11 @@ def text(self):
         -------
         numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -882,11 +836,11 @@ def textfont(self):
         -------
         plotly.graph_objs.sunburst.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textinfo(self):
@@ -903,11 +857,11 @@ def textinfo(self):
         -------
         Any
         """
-        return self["textinfo"]
+        return self['textinfo']
 
     @textinfo.setter
     def textinfo(self, val):
-        self["textinfo"] = val
+        self['textinfo'] = val
 
     @property
     def textsrc(self):
@@ -921,11 +875,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -955,11 +909,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -974,11 +928,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def uid(self):
@@ -994,11 +948,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1025,11 +979,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def values(self):
@@ -1044,11 +998,11 @@ def values(self):
         -------
         numpy.ndarray
         """
-        return self["values"]
+        return self['values']
 
     @values.setter
     def values(self, val):
-        self["values"] = val
+        self['values'] = val
 
     @property
     def valuessrc(self):
@@ -1062,11 +1016,11 @@ def valuessrc(self):
         -------
         str
         """
-        return self["valuessrc"]
+        return self['valuessrc']
 
     @valuessrc.setter
     def valuessrc(self, val):
-        self["valuessrc"] = val
+        self['valuessrc'] = val
 
     @property
     def visible(self):
@@ -1083,15 +1037,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1356,60 +1310,58 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        branchvalues=None,
-        count=None,
-        customdata=None,
-        customdatasrc=None,
-        domain=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextfont=None,
-        insidetextorientation=None,
-        labels=None,
-        labelssrc=None,
-        leaf=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        level=None,
-        marker=None,
-        maxdepth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        outsidetextfont=None,
-        parents=None,
-        parentssrc=None,
-        root=None,
-        rotation=None,
-        sort=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textinfo=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        uid=None,
-        uirevision=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            branchvalues=None,
+            count=None,
+            customdata=None,
+            customdatasrc=None,
+            domain=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextfont=None,
+            insidetextorientation=None,
+            labels=None,
+            labelssrc=None,
+            leaf=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            level=None,
+            marker=None,
+            maxdepth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            outsidetextfont=None,
+            parents=None,
+            parentssrc=None,
+            root=None,
+            rotation=None,
+            sort=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textinfo=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            uid=None,
+            uirevision=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Sunburst object
 
@@ -1686,9 +1638,9 @@ def __init__(
         -------
         Sunburst
         """
-        super().__init__("sunburst")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('sunburst')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1698,66 +1650,67 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Sunburst
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Sunburst`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("branchvalues", arg, branchvalues)
-        self._set_property("count", arg, count)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("domain", arg, domain)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("insidetextfont", arg, insidetextfont)
-        self._set_property("insidetextorientation", arg, insidetextorientation)
-        self._set_property("labels", arg, labels)
-        self._set_property("labelssrc", arg, labelssrc)
-        self._set_property("leaf", arg, leaf)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("level", arg, level)
-        self._set_property("marker", arg, marker)
-        self._set_property("maxdepth", arg, maxdepth)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("outsidetextfont", arg, outsidetextfont)
-        self._set_property("parents", arg, parents)
-        self._set_property("parentssrc", arg, parentssrc)
-        self._set_property("root", arg, root)
-        self._set_property("rotation", arg, rotation)
-        self._set_property("sort", arg, sort)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textinfo", arg, textinfo)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("values", arg, values)
-        self._set_property("valuessrc", arg, valuessrc)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "sunburst"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Sunburst`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('branchvalues', arg, branchvalues)
+        self._set_property('count', arg, count)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('domain', arg, domain)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('insidetextfont', arg, insidetextfont)
+        self._set_property('insidetextorientation', arg, insidetextorientation)
+        self._set_property('labels', arg, labels)
+        self._set_property('labelssrc', arg, labelssrc)
+        self._set_property('leaf', arg, leaf)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('level', arg, level)
+        self._set_property('marker', arg, marker)
+        self._set_property('maxdepth', arg, maxdepth)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('outsidetextfont', arg, outsidetextfont)
+        self._set_property('parents', arg, parents)
+        self._set_property('parentssrc', arg, parentssrc)
+        self._set_property('root', arg, root)
+        self._set_property('rotation', arg, rotation)
+        self._set_property('sort', arg, sort)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textinfo', arg, textinfo)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('values', arg, values)
+        self._set_property('valuessrc', arg, valuessrc)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'sunburst'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_surface.py b/plotly/graph_objs/_surface.py
index 3569472bbe2..eab14809bf8 100644
--- a/plotly/graph_objs/_surface.py
+++ b/plotly/graph_objs/_surface.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,69 +11,9 @@
 
 class Surface(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "surface"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "connectgaps",
-        "contours",
-        "customdata",
-        "customdatasrc",
-        "hidesurface",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "lighting",
-        "lightposition",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "opacityscale",
-        "reversescale",
-        "scene",
-        "showlegend",
-        "showscale",
-        "stream",
-        "surfacecolor",
-        "surfacecolorsrc",
-        "text",
-        "textsrc",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-        "x",
-        "xcalendar",
-        "xhoverformat",
-        "xsrc",
-        "y",
-        "ycalendar",
-        "yhoverformat",
-        "ysrc",
-        "z",
-        "zcalendar",
-        "zhoverformat",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'surface'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "coloraxis", "colorbar", "colorscale", "connectgaps", "contours", "customdata", "customdatasrc", "hidesurface", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "lighting", "lightposition", "meta", "metasrc", "name", "opacity", "opacityscale", "reversescale", "scene", "showlegend", "showscale", "stream", "surfacecolor", "surfacecolorsrc", "text", "textsrc", "type", "uid", "uirevision", "visible", "x", "xcalendar", "xhoverformat", "xsrc", "y", "ycalendar", "yhoverformat", "ysrc", "z", "zcalendar", "zhoverformat", "zsrc"}
 
     @property
     def autocolorscale(self):
@@ -88,11 +32,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -109,11 +53,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -129,11 +73,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -150,11 +94,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -170,11 +114,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def coloraxis(self):
@@ -195,11 +139,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -214,11 +158,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.surface.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -265,11 +209,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def connectgaps(self):
@@ -284,11 +228,11 @@ def connectgaps(self):
         -------
         bool
         """
-        return self["connectgaps"]
+        return self['connectgaps']
 
     @connectgaps.setter
     def connectgaps(self, val):
-        self["connectgaps"] = val
+        self['connectgaps'] = val
 
     @property
     def contours(self):
@@ -303,11 +247,11 @@ def contours(self):
         -------
         plotly.graph_objs.surface.Contours
         """
-        return self["contours"]
+        return self['contours']
 
     @contours.setter
     def contours(self, val):
-        self["contours"] = val
+        self['contours'] = val
 
     @property
     def customdata(self):
@@ -324,11 +268,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -343,11 +287,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def hidesurface(self):
@@ -363,11 +307,11 @@ def hidesurface(self):
         -------
         bool
         """
-        return self["hidesurface"]
+        return self['hidesurface']
 
     @hidesurface.setter
     def hidesurface(self, val):
-        self["hidesurface"] = val
+        self['hidesurface'] = val
 
     @property
     def hoverinfo(self):
@@ -387,11 +331,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -406,11 +350,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -425,11 +369,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.surface.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -467,11 +411,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -486,11 +430,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -506,11 +450,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -525,11 +469,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -545,11 +489,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -563,11 +507,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -586,11 +530,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -607,11 +551,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -626,11 +570,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.surface.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -651,11 +595,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -670,11 +614,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def lighting(self):
@@ -689,11 +633,11 @@ def lighting(self):
         -------
         plotly.graph_objs.surface.Lighting
         """
-        return self["lighting"]
+        return self['lighting']
 
     @lighting.setter
     def lighting(self, val):
-        self["lighting"] = val
+        self['lighting'] = val
 
     @property
     def lightposition(self):
@@ -708,11 +652,11 @@ def lightposition(self):
         -------
         plotly.graph_objs.surface.Lightposition
         """
-        return self["lightposition"]
+        return self['lightposition']
 
     @lightposition.setter
     def lightposition(self, val):
-        self["lightposition"] = val
+        self['lightposition'] = val
 
     @property
     def meta(self):
@@ -734,11 +678,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -752,11 +696,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -772,11 +716,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -795,11 +739,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacityscale(self):
@@ -820,11 +764,11 @@ def opacityscale(self):
         -------
         Any
         """
-        return self["opacityscale"]
+        return self['opacityscale']
 
     @opacityscale.setter
     def opacityscale(self, val):
-        self["opacityscale"] = val
+        self['opacityscale'] = val
 
     @property
     def reversescale(self):
@@ -840,11 +784,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def scene(self):
@@ -863,11 +807,11 @@ def scene(self):
         -------
         str
         """
-        return self["scene"]
+        return self['scene']
 
     @scene.setter
     def scene(self, val):
-        self["scene"] = val
+        self['scene'] = val
 
     @property
     def showlegend(self):
@@ -882,11 +826,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showscale(self):
@@ -901,11 +845,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def stream(self):
@@ -920,11 +864,11 @@ def stream(self):
         -------
         plotly.graph_objs.surface.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def surfacecolor(self):
@@ -939,11 +883,11 @@ def surfacecolor(self):
         -------
         numpy.ndarray
         """
-        return self["surfacecolor"]
+        return self['surfacecolor']
 
     @surfacecolor.setter
     def surfacecolor(self, val):
-        self["surfacecolor"] = val
+        self['surfacecolor'] = val
 
     @property
     def surfacecolorsrc(self):
@@ -958,11 +902,11 @@ def surfacecolorsrc(self):
         -------
         str
         """
-        return self["surfacecolorsrc"]
+        return self['surfacecolorsrc']
 
     @surfacecolorsrc.setter
     def surfacecolorsrc(self, val):
-        self["surfacecolorsrc"] = val
+        self['surfacecolorsrc'] = val
 
     @property
     def text(self):
@@ -980,11 +924,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -998,11 +942,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def uid(self):
@@ -1018,11 +962,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1049,11 +993,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -1070,11 +1014,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -1088,11 +1032,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xcalendar(self):
@@ -1110,11 +1054,11 @@ def xcalendar(self):
         -------
         Any
         """
-        return self["xcalendar"]
+        return self['xcalendar']
 
     @xcalendar.setter
     def xcalendar(self, val):
-        self["xcalendar"] = val
+        self['xcalendar'] = val
 
     @property
     def xhoverformat(self):
@@ -1139,11 +1083,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xsrc(self):
@@ -1157,11 +1101,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -1175,11 +1119,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def ycalendar(self):
@@ -1197,11 +1141,11 @@ def ycalendar(self):
         -------
         Any
         """
-        return self["ycalendar"]
+        return self['ycalendar']
 
     @ycalendar.setter
     def ycalendar(self, val):
-        self["ycalendar"] = val
+        self['ycalendar'] = val
 
     @property
     def yhoverformat(self):
@@ -1226,11 +1170,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def ysrc(self):
@@ -1244,11 +1188,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def z(self):
@@ -1262,11 +1206,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zcalendar(self):
@@ -1284,11 +1228,11 @@ def zcalendar(self):
         -------
         Any
         """
-        return self["zcalendar"]
+        return self['zcalendar']
 
     @zcalendar.setter
     def zcalendar(self, val):
-        self["zcalendar"] = val
+        self['zcalendar'] = val
 
     @property
     def zhoverformat(self):
@@ -1313,11 +1257,11 @@ def zhoverformat(self):
         -------
         str
         """
-        return self["zhoverformat"]
+        return self['zhoverformat']
 
     @zhoverformat.setter
     def zhoverformat(self, val):
-        self["zhoverformat"] = val
+        self['zhoverformat'] = val
 
     @property
     def zsrc(self):
@@ -1331,15 +1275,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1656,70 +1600,68 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        connectgaps=None,
-        contours=None,
-        customdata=None,
-        customdatasrc=None,
-        hidesurface=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        opacityscale=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        stream=None,
-        surfacecolor=None,
-        surfacecolorsrc=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        x=None,
-        xcalendar=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        ycalendar=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zcalendar=None,
-        zhoverformat=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            connectgaps=None,
+            contours=None,
+            customdata=None,
+            customdatasrc=None,
+            hidesurface=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            opacityscale=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            stream=None,
+            surfacecolor=None,
+            surfacecolorsrc=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            x=None,
+            xcalendar=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            ycalendar=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zcalendar=None,
+            zhoverformat=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Surface object
 
@@ -2054,9 +1996,9 @@ def __init__(
         -------
         Surface
         """
-        super().__init__("surface")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('surface')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2066,76 +2008,77 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Surface
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Surface`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("connectgaps", arg, connectgaps)
-        self._set_property("contours", arg, contours)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("hidesurface", arg, hidesurface)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("lighting", arg, lighting)
-        self._set_property("lightposition", arg, lightposition)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacityscale", arg, opacityscale)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("scene", arg, scene)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("stream", arg, stream)
-        self._set_property("surfacecolor", arg, surfacecolor)
-        self._set_property("surfacecolorsrc", arg, surfacecolorsrc)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("xcalendar", arg, xcalendar)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("ycalendar", arg, ycalendar)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("z", arg, z)
-        self._set_property("zcalendar", arg, zcalendar)
-        self._set_property("zhoverformat", arg, zhoverformat)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "surface"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Surface`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('connectgaps', arg, connectgaps)
+        self._set_property('contours', arg, contours)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('hidesurface', arg, hidesurface)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('lighting', arg, lighting)
+        self._set_property('lightposition', arg, lightposition)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacityscale', arg, opacityscale)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('scene', arg, scene)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('stream', arg, stream)
+        self._set_property('surfacecolor', arg, surfacecolor)
+        self._set_property('surfacecolorsrc', arg, surfacecolorsrc)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('xcalendar', arg, xcalendar)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('ycalendar', arg, ycalendar)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('z', arg, z)
+        self._set_property('zcalendar', arg, zcalendar)
+        self._set_property('zhoverformat', arg, zhoverformat)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'surface'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_table.py b/plotly/graph_objs/_table.py
index 9bdb4b78be9..e71d4693aea 100644
--- a/plotly/graph_objs/_table.py
+++ b/plotly/graph_objs/_table.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,36 +11,9 @@
 
 class Table(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "table"
-    _valid_props = {
-        "cells",
-        "columnorder",
-        "columnordersrc",
-        "columnwidth",
-        "columnwidthsrc",
-        "customdata",
-        "customdatasrc",
-        "domain",
-        "header",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "ids",
-        "idssrc",
-        "legend",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "meta",
-        "metasrc",
-        "name",
-        "stream",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'table'
+    _valid_props = {"cells", "columnorder", "columnordersrc", "columnwidth", "columnwidthsrc", "customdata", "customdatasrc", "domain", "header", "hoverinfo", "hoverinfosrc", "hoverlabel", "ids", "idssrc", "legend", "legendgrouptitle", "legendrank", "legendwidth", "meta", "metasrc", "name", "stream", "type", "uid", "uirevision", "visible"}
 
     @property
     def cells(self):
@@ -51,11 +28,11 @@ def cells(self):
         -------
         plotly.graph_objs.table.Cells
         """
-        return self["cells"]
+        return self['cells']
 
     @cells.setter
     def cells(self, val):
-        self["cells"] = val
+        self['cells'] = val
 
     @property
     def columnorder(self):
@@ -72,11 +49,11 @@ def columnorder(self):
         -------
         numpy.ndarray
         """
-        return self["columnorder"]
+        return self['columnorder']
 
     @columnorder.setter
     def columnorder(self, val):
-        self["columnorder"] = val
+        self['columnorder'] = val
 
     @property
     def columnordersrc(self):
@@ -91,11 +68,11 @@ def columnordersrc(self):
         -------
         str
         """
-        return self["columnordersrc"]
+        return self['columnordersrc']
 
     @columnordersrc.setter
     def columnordersrc(self, val):
-        self["columnordersrc"] = val
+        self['columnordersrc'] = val
 
     @property
     def columnwidth(self):
@@ -111,11 +88,11 @@ def columnwidth(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["columnwidth"]
+        return self['columnwidth']
 
     @columnwidth.setter
     def columnwidth(self, val):
-        self["columnwidth"] = val
+        self['columnwidth'] = val
 
     @property
     def columnwidthsrc(self):
@@ -130,11 +107,11 @@ def columnwidthsrc(self):
         -------
         str
         """
-        return self["columnwidthsrc"]
+        return self['columnwidthsrc']
 
     @columnwidthsrc.setter
     def columnwidthsrc(self, val):
-        self["columnwidthsrc"] = val
+        self['columnwidthsrc'] = val
 
     @property
     def customdata(self):
@@ -151,11 +128,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -170,11 +147,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def domain(self):
@@ -189,11 +166,11 @@ def domain(self):
         -------
         plotly.graph_objs.table.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def header(self):
@@ -208,11 +185,11 @@ def header(self):
         -------
         plotly.graph_objs.table.Header
         """
-        return self["header"]
+        return self['header']
 
     @header.setter
     def header(self, val):
-        self["header"] = val
+        self['header'] = val
 
     @property
     def hoverinfo(self):
@@ -232,11 +209,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -251,11 +228,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -270,11 +247,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.table.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def ids(self):
@@ -290,11 +267,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -308,11 +285,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def legend(self):
@@ -331,11 +308,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgrouptitle(self):
@@ -350,11 +327,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.table.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -375,11 +352,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -394,11 +371,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def meta(self):
@@ -420,11 +397,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -438,11 +415,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -458,11 +435,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def stream(self):
@@ -477,11 +454,11 @@ def stream(self):
         -------
         plotly.graph_objs.table.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def uid(self):
@@ -497,11 +474,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -528,11 +505,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -549,15 +526,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -685,37 +662,35 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        cells=None,
-        columnorder=None,
-        columnordersrc=None,
-        columnwidth=None,
-        columnwidthsrc=None,
-        customdata=None,
-        customdatasrc=None,
-        domain=None,
-        header=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        ids=None,
-        idssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        stream=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            cells=None,
+            columnorder=None,
+            columnordersrc=None,
+            columnwidth=None,
+            columnwidthsrc=None,
+            customdata=None,
+            customdatasrc=None,
+            domain=None,
+            header=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            ids=None,
+            idssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            stream=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Table object
 
@@ -857,9 +832,9 @@ def __init__(
         -------
         Table
         """
-        super().__init__("table")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('table')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -869,43 +844,44 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Table
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Table`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("cells", arg, cells)
-        self._set_property("columnorder", arg, columnorder)
-        self._set_property("columnordersrc", arg, columnordersrc)
-        self._set_property("columnwidth", arg, columnwidth)
-        self._set_property("columnwidthsrc", arg, columnwidthsrc)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("domain", arg, domain)
-        self._set_property("header", arg, header)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("stream", arg, stream)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "table"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Table`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('cells', arg, cells)
+        self._set_property('columnorder', arg, columnorder)
+        self._set_property('columnordersrc', arg, columnordersrc)
+        self._set_property('columnwidth', arg, columnwidth)
+        self._set_property('columnwidthsrc', arg, columnwidthsrc)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('domain', arg, domain)
+        self._set_property('header', arg, header)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('stream', arg, stream)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'table'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_treemap.py b/plotly/graph_objs/_treemap.py
index a8b0a069169..1a445ca2bba 100644
--- a/plotly/graph_objs/_treemap.py
+++ b/plotly/graph_objs/_treemap.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class Treemap(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "treemap"
-    _valid_props = {
-        "branchvalues",
-        "count",
-        "customdata",
-        "customdatasrc",
-        "domain",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "insidetextfont",
-        "labels",
-        "labelssrc",
-        "legend",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "level",
-        "marker",
-        "maxdepth",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "outsidetextfont",
-        "parents",
-        "parentssrc",
-        "pathbar",
-        "root",
-        "sort",
-        "stream",
-        "text",
-        "textfont",
-        "textinfo",
-        "textposition",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "tiling",
-        "type",
-        "uid",
-        "uirevision",
-        "values",
-        "valuessrc",
-        "visible",
-    }
+    _parent_path_str = ''
+    _path_str = 'treemap'
+    _valid_props = {"branchvalues", "count", "customdata", "customdatasrc", "domain", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "insidetextfont", "labels", "labelssrc", "legend", "legendgrouptitle", "legendrank", "legendwidth", "level", "marker", "maxdepth", "meta", "metasrc", "name", "opacity", "outsidetextfont", "parents", "parentssrc", "pathbar", "root", "sort", "stream", "text", "textfont", "textinfo", "textposition", "textsrc", "texttemplate", "texttemplatesrc", "tiling", "type", "uid", "uirevision", "values", "valuessrc", "visible"}
 
     @property
     def branchvalues(self):
@@ -79,11 +33,11 @@ def branchvalues(self):
         -------
         Any
         """
-        return self["branchvalues"]
+        return self['branchvalues']
 
     @branchvalues.setter
     def branchvalues(self, val):
-        self["branchvalues"] = val
+        self['branchvalues'] = val
 
     @property
     def count(self):
@@ -101,11 +55,11 @@ def count(self):
         -------
         Any
         """
-        return self["count"]
+        return self['count']
 
     @count.setter
     def count(self, val):
-        self["count"] = val
+        self['count'] = val
 
     @property
     def customdata(self):
@@ -122,11 +76,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -141,11 +95,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def domain(self):
@@ -160,11 +114,11 @@ def domain(self):
         -------
         plotly.graph_objs.treemap.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def hoverinfo(self):
@@ -184,11 +138,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -203,11 +157,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -222,11 +176,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.treemap.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -267,11 +221,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -286,11 +240,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -310,11 +264,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -329,11 +283,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -349,11 +303,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -367,11 +321,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def insidetextfont(self):
@@ -388,11 +342,11 @@ def insidetextfont(self):
         -------
         plotly.graph_objs.treemap.Insidetextfont
         """
-        return self["insidetextfont"]
+        return self['insidetextfont']
 
     @insidetextfont.setter
     def insidetextfont(self, val):
-        self["insidetextfont"] = val
+        self['insidetextfont'] = val
 
     @property
     def labels(self):
@@ -406,11 +360,11 @@ def labels(self):
         -------
         numpy.ndarray
         """
-        return self["labels"]
+        return self['labels']
 
     @labels.setter
     def labels(self, val):
-        self["labels"] = val
+        self['labels'] = val
 
     @property
     def labelssrc(self):
@@ -424,11 +378,11 @@ def labelssrc(self):
         -------
         str
         """
-        return self["labelssrc"]
+        return self['labelssrc']
 
     @labelssrc.setter
     def labelssrc(self, val):
-        self["labelssrc"] = val
+        self['labelssrc'] = val
 
     @property
     def legend(self):
@@ -447,11 +401,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgrouptitle(self):
@@ -466,11 +420,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.treemap.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -491,11 +445,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -510,11 +464,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def level(self):
@@ -530,11 +484,11 @@ def level(self):
         -------
         Any
         """
-        return self["level"]
+        return self['level']
 
     @level.setter
     def level(self, val):
-        self["level"] = val
+        self['level'] = val
 
     @property
     def marker(self):
@@ -549,11 +503,11 @@ def marker(self):
         -------
         plotly.graph_objs.treemap.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def maxdepth(self):
@@ -568,11 +522,11 @@ def maxdepth(self):
         -------
         int
         """
-        return self["maxdepth"]
+        return self['maxdepth']
 
     @maxdepth.setter
     def maxdepth(self, val):
-        self["maxdepth"] = val
+        self['maxdepth'] = val
 
     @property
     def meta(self):
@@ -594,11 +548,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -612,11 +566,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -632,11 +586,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -650,11 +604,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def outsidetextfont(self):
@@ -675,11 +629,11 @@ def outsidetextfont(self):
         -------
         plotly.graph_objs.treemap.Outsidetextfont
         """
-        return self["outsidetextfont"]
+        return self['outsidetextfont']
 
     @outsidetextfont.setter
     def outsidetextfont(self, val):
-        self["outsidetextfont"] = val
+        self['outsidetextfont'] = val
 
     @property
     def parents(self):
@@ -698,11 +652,11 @@ def parents(self):
         -------
         numpy.ndarray
         """
-        return self["parents"]
+        return self['parents']
 
     @parents.setter
     def parents(self, val):
-        self["parents"] = val
+        self['parents'] = val
 
     @property
     def parentssrc(self):
@@ -716,11 +670,11 @@ def parentssrc(self):
         -------
         str
         """
-        return self["parentssrc"]
+        return self['parentssrc']
 
     @parentssrc.setter
     def parentssrc(self, val):
-        self["parentssrc"] = val
+        self['parentssrc'] = val
 
     @property
     def pathbar(self):
@@ -735,11 +689,11 @@ def pathbar(self):
         -------
         plotly.graph_objs.treemap.Pathbar
         """
-        return self["pathbar"]
+        return self['pathbar']
 
     @pathbar.setter
     def pathbar(self, val):
-        self["pathbar"] = val
+        self['pathbar'] = val
 
     @property
     def root(self):
@@ -754,11 +708,11 @@ def root(self):
         -------
         plotly.graph_objs.treemap.Root
         """
-        return self["root"]
+        return self['root']
 
     @root.setter
     def root(self, val):
-        self["root"] = val
+        self['root'] = val
 
     @property
     def sort(self):
@@ -773,11 +727,11 @@ def sort(self):
         -------
         bool
         """
-        return self["sort"]
+        return self['sort']
 
     @sort.setter
     def sort(self, val):
-        self["sort"] = val
+        self['sort'] = val
 
     @property
     def stream(self):
@@ -792,11 +746,11 @@ def stream(self):
         -------
         plotly.graph_objs.treemap.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -814,11 +768,11 @@ def text(self):
         -------
         numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -835,11 +789,11 @@ def textfont(self):
         -------
         plotly.graph_objs.treemap.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textinfo(self):
@@ -856,11 +810,11 @@ def textinfo(self):
         -------
         Any
         """
-        return self["textinfo"]
+        return self['textinfo']
 
     @textinfo.setter
     def textinfo(self, val):
-        self["textinfo"] = val
+        self['textinfo'] = val
 
     @property
     def textposition(self):
@@ -877,11 +831,11 @@ def textposition(self):
         -------
         Any
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textsrc(self):
@@ -895,11 +849,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -929,11 +883,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -948,11 +902,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def tiling(self):
@@ -967,11 +921,11 @@ def tiling(self):
         -------
         plotly.graph_objs.treemap.Tiling
         """
-        return self["tiling"]
+        return self['tiling']
 
     @tiling.setter
     def tiling(self, val):
-        self["tiling"] = val
+        self['tiling'] = val
 
     @property
     def uid(self):
@@ -987,11 +941,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1018,11 +972,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def values(self):
@@ -1037,11 +991,11 @@ def values(self):
         -------
         numpy.ndarray
         """
-        return self["values"]
+        return self['values']
 
     @values.setter
     def values(self, val):
-        self["values"] = val
+        self['values'] = val
 
     @property
     def valuessrc(self):
@@ -1055,11 +1009,11 @@ def valuessrc(self):
         -------
         str
         """
-        return self["valuessrc"]
+        return self['valuessrc']
 
     @valuessrc.setter
     def valuessrc(self, val):
-        self["valuessrc"] = val
+        self['valuessrc'] = val
 
     @property
     def visible(self):
@@ -1076,15 +1030,15 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1341,60 +1295,58 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        branchvalues=None,
-        count=None,
-        customdata=None,
-        customdatasrc=None,
-        domain=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        insidetextfont=None,
-        labels=None,
-        labelssrc=None,
-        legend=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        level=None,
-        marker=None,
-        maxdepth=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        outsidetextfont=None,
-        parents=None,
-        parentssrc=None,
-        pathbar=None,
-        root=None,
-        sort=None,
-        stream=None,
-        text=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        tiling=None,
-        uid=None,
-        uirevision=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            branchvalues=None,
+            count=None,
+            customdata=None,
+            customdatasrc=None,
+            domain=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            insidetextfont=None,
+            labels=None,
+            labelssrc=None,
+            legend=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            level=None,
+            marker=None,
+            maxdepth=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            outsidetextfont=None,
+            parents=None,
+            parentssrc=None,
+            pathbar=None,
+            root=None,
+            sort=None,
+            stream=None,
+            text=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            tiling=None,
+            uid=None,
+            uirevision=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Treemap object
 
@@ -1664,9 +1616,9 @@ def __init__(
         -------
         Treemap
         """
-        super().__init__("treemap")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('treemap')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1676,66 +1628,67 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Treemap
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Treemap`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("branchvalues", arg, branchvalues)
-        self._set_property("count", arg, count)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("domain", arg, domain)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("insidetextfont", arg, insidetextfont)
-        self._set_property("labels", arg, labels)
-        self._set_property("labelssrc", arg, labelssrc)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("level", arg, level)
-        self._set_property("marker", arg, marker)
-        self._set_property("maxdepth", arg, maxdepth)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("outsidetextfont", arg, outsidetextfont)
-        self._set_property("parents", arg, parents)
-        self._set_property("parentssrc", arg, parentssrc)
-        self._set_property("pathbar", arg, pathbar)
-        self._set_property("root", arg, root)
-        self._set_property("sort", arg, sort)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textinfo", arg, textinfo)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("tiling", arg, tiling)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("values", arg, values)
-        self._set_property("valuessrc", arg, valuessrc)
-        self._set_property("visible", arg, visible)
-
-        self._props["type"] = "treemap"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Treemap`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('branchvalues', arg, branchvalues)
+        self._set_property('count', arg, count)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('domain', arg, domain)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('insidetextfont', arg, insidetextfont)
+        self._set_property('labels', arg, labels)
+        self._set_property('labelssrc', arg, labelssrc)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('level', arg, level)
+        self._set_property('marker', arg, marker)
+        self._set_property('maxdepth', arg, maxdepth)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('outsidetextfont', arg, outsidetextfont)
+        self._set_property('parents', arg, parents)
+        self._set_property('parentssrc', arg, parentssrc)
+        self._set_property('pathbar', arg, pathbar)
+        self._set_property('root', arg, root)
+        self._set_property('sort', arg, sort)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textinfo', arg, textinfo)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('tiling', arg, tiling)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('values', arg, values)
+        self._set_property('valuessrc', arg, valuessrc)
+        self._set_property('visible', arg, visible)
+
+
+        self._props['type'] = 'treemap'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_violin.py b/plotly/graph_objs/_violin.py
index 9223d4d7b56..bf19f8bfe23 100644
--- a/plotly/graph_objs/_violin.py
+++ b/plotly/graph_objs/_violin.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,72 +11,9 @@
 
 class Violin(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "violin"
-    _valid_props = {
-        "alignmentgroup",
-        "bandwidth",
-        "box",
-        "customdata",
-        "customdatasrc",
-        "fillcolor",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hoveron",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "jitter",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "marker",
-        "meanline",
-        "meta",
-        "metasrc",
-        "name",
-        "offsetgroup",
-        "opacity",
-        "orientation",
-        "pointpos",
-        "points",
-        "quartilemethod",
-        "scalegroup",
-        "scalemode",
-        "selected",
-        "selectedpoints",
-        "showlegend",
-        "side",
-        "span",
-        "spanmode",
-        "stream",
-        "text",
-        "textsrc",
-        "type",
-        "uid",
-        "uirevision",
-        "unselected",
-        "visible",
-        "width",
-        "x",
-        "x0",
-        "xaxis",
-        "xhoverformat",
-        "xsrc",
-        "y",
-        "y0",
-        "yaxis",
-        "yhoverformat",
-        "ysrc",
-        "zorder",
-    }
+    _parent_path_str = ''
+    _path_str = 'violin'
+    _valid_props = {"alignmentgroup", "bandwidth", "box", "customdata", "customdatasrc", "fillcolor", "hoverinfo", "hoverinfosrc", "hoverlabel", "hoveron", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "jitter", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "marker", "meanline", "meta", "metasrc", "name", "offsetgroup", "opacity", "orientation", "pointpos", "points", "quartilemethod", "scalegroup", "scalemode", "selected", "selectedpoints", "showlegend", "side", "span", "spanmode", "stream", "text", "textsrc", "type", "uid", "uirevision", "unselected", "visible", "width", "x", "x0", "xaxis", "xhoverformat", "xsrc", "y", "y0", "yaxis", "yhoverformat", "ysrc", "zorder"}
 
     @property
     def alignmentgroup(self):
@@ -89,11 +30,11 @@ def alignmentgroup(self):
         -------
         str
         """
-        return self["alignmentgroup"]
+        return self['alignmentgroup']
 
     @alignmentgroup.setter
     def alignmentgroup(self, val):
-        self["alignmentgroup"] = val
+        self['alignmentgroup'] = val
 
     @property
     def bandwidth(self):
@@ -109,11 +50,11 @@ def bandwidth(self):
         -------
         int|float
         """
-        return self["bandwidth"]
+        return self['bandwidth']
 
     @bandwidth.setter
     def bandwidth(self, val):
-        self["bandwidth"] = val
+        self['bandwidth'] = val
 
     @property
     def box(self):
@@ -128,11 +69,11 @@ def box(self):
         -------
         plotly.graph_objs.violin.Box
         """
-        return self["box"]
+        return self['box']
 
     @box.setter
     def box(self, val):
-        self["box"] = val
+        self['box'] = val
 
     @property
     def customdata(self):
@@ -149,11 +90,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -168,11 +109,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def fillcolor(self):
@@ -192,11 +133,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def hoverinfo(self):
@@ -216,11 +157,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -235,11 +176,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -254,11 +195,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.violin.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hoveron(self):
@@ -277,11 +218,11 @@ def hoveron(self):
         -------
         Any
         """
-        return self["hoveron"]
+        return self['hoveron']
 
     @hoveron.setter
     def hoveron(self, val):
-        self["hoveron"] = val
+        self['hoveron'] = val
 
     @property
     def hovertemplate(self):
@@ -319,11 +260,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -338,11 +279,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -358,11 +299,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -377,11 +318,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -397,11 +338,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -415,11 +356,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def jitter(self):
@@ -436,11 +377,11 @@ def jitter(self):
         -------
         int|float
         """
-        return self["jitter"]
+        return self['jitter']
 
     @jitter.setter
     def jitter(self, val):
-        self["jitter"] = val
+        self['jitter'] = val
 
     @property
     def legend(self):
@@ -459,11 +400,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -480,11 +421,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -499,11 +440,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.violin.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -524,11 +465,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -543,11 +484,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -562,11 +503,11 @@ def line(self):
         -------
         plotly.graph_objs.violin.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def marker(self):
@@ -581,11 +522,11 @@ def marker(self):
         -------
         plotly.graph_objs.violin.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def meanline(self):
@@ -600,11 +541,11 @@ def meanline(self):
         -------
         plotly.graph_objs.violin.Meanline
         """
-        return self["meanline"]
+        return self['meanline']
 
     @meanline.setter
     def meanline(self, val):
-        self["meanline"] = val
+        self['meanline'] = val
 
     @property
     def meta(self):
@@ -626,11 +567,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -644,11 +585,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -669,11 +610,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def offsetgroup(self):
@@ -690,11 +631,11 @@ def offsetgroup(self):
         -------
         str
         """
-        return self["offsetgroup"]
+        return self['offsetgroup']
 
     @offsetgroup.setter
     def offsetgroup(self, val):
-        self["offsetgroup"] = val
+        self['offsetgroup'] = val
 
     @property
     def opacity(self):
@@ -708,11 +649,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def orientation(self):
@@ -728,11 +669,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def pointpos(self):
@@ -750,11 +691,11 @@ def pointpos(self):
         -------
         int|float
         """
-        return self["pointpos"]
+        return self['pointpos']
 
     @pointpos.setter
     def pointpos(self, val):
-        self["pointpos"] = val
+        self['pointpos'] = val
 
     @property
     def points(self):
@@ -776,11 +717,11 @@ def points(self):
         -------
         Any
         """
-        return self["points"]
+        return self['points']
 
     @points.setter
     def points(self, val):
-        self["points"] = val
+        self['points'] = val
 
     @property
     def quartilemethod(self):
@@ -806,11 +747,11 @@ def quartilemethod(self):
         -------
         Any
         """
-        return self["quartilemethod"]
+        return self['quartilemethod']
 
     @quartilemethod.setter
     def quartilemethod(self, val):
-        self["quartilemethod"] = val
+        self['quartilemethod'] = val
 
     @property
     def scalegroup(self):
@@ -830,11 +771,11 @@ def scalegroup(self):
         -------
         str
         """
-        return self["scalegroup"]
+        return self['scalegroup']
 
     @scalegroup.setter
     def scalegroup(self, val):
-        self["scalegroup"] = val
+        self['scalegroup'] = val
 
     @property
     def scalemode(self):
@@ -852,11 +793,11 @@ def scalemode(self):
         -------
         Any
         """
-        return self["scalemode"]
+        return self['scalemode']
 
     @scalemode.setter
     def scalemode(self, val):
-        self["scalemode"] = val
+        self['scalemode'] = val
 
     @property
     def selected(self):
@@ -871,11 +812,11 @@ def selected(self):
         -------
         plotly.graph_objs.violin.Selected
         """
-        return self["selected"]
+        return self['selected']
 
     @selected.setter
     def selected(self, val):
-        self["selected"] = val
+        self['selected'] = val
 
     @property
     def selectedpoints(self):
@@ -893,11 +834,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -912,11 +853,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def side(self):
@@ -934,34 +875,34 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def span(self):
         """
-            Sets the span in data space for which the density function will
-            be computed. Has an effect only when `spanmode` is set to
-            "manual".
+        Sets the span in data space for which the density function will
+        be computed. Has an effect only when `spanmode` is set to
+        "manual".
 
-            The 'span' property is an info array that may be specified as:
+        The 'span' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'span[0]' property accepts values of any type
+    (1) The 'span[1]' property accepts values of any type
 
-            * a list or tuple of 2 elements where:
-        (0) The 'span[0]' property accepts values of any type
-        (1) The 'span[1]' property accepts values of any type
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["span"]
+        return self['span']
 
     @span.setter
     def span(self, val):
-        self["span"] = val
+        self['span'] = val
 
     @property
     def spanmode(self):
@@ -982,11 +923,11 @@ def spanmode(self):
         -------
         Any
         """
-        return self["spanmode"]
+        return self['spanmode']
 
     @spanmode.setter
     def spanmode(self, val):
-        self["spanmode"] = val
+        self['spanmode'] = val
 
     @property
     def stream(self):
@@ -1001,11 +942,11 @@ def stream(self):
         -------
         plotly.graph_objs.violin.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -1025,11 +966,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -1043,11 +984,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def uid(self):
@@ -1063,11 +1004,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1094,11 +1035,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def unselected(self):
@@ -1113,11 +1054,11 @@ def unselected(self):
         -------
         plotly.graph_objs.violin.Unselected
         """
-        return self["unselected"]
+        return self['unselected']
 
     @unselected.setter
     def unselected(self, val):
-        self["unselected"] = val
+        self['unselected'] = val
 
     @property
     def visible(self):
@@ -1134,11 +1075,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -1154,11 +1095,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def x(self):
@@ -1173,11 +1114,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def x0(self):
@@ -1192,11 +1133,11 @@ def x0(self):
         -------
         Any
         """
-        return self["x0"]
+        return self['x0']
 
     @x0.setter
     def x0(self, val):
-        self["x0"] = val
+        self['x0'] = val
 
     @property
     def xaxis(self):
@@ -1215,11 +1156,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def xhoverformat(self):
@@ -1244,11 +1185,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xsrc(self):
@@ -1262,11 +1203,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -1281,11 +1222,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def y0(self):
@@ -1300,11 +1241,11 @@ def y0(self):
         -------
         Any
         """
-        return self["y0"]
+        return self['y0']
 
     @y0.setter
     def y0(self, val):
-        self["y0"] = val
+        self['y0'] = val
 
     @property
     def yaxis(self):
@@ -1323,11 +1264,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def yhoverformat(self):
@@ -1352,11 +1293,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def ysrc(self):
@@ -1370,11 +1311,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def zorder(self):
@@ -1390,15 +1331,15 @@ def zorder(self):
         -------
         int
         """
-        return self["zorder"]
+        return self['zorder']
 
     @zorder.setter
     def zorder(self, val):
-        self["zorder"] = val
+        self['zorder'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1747,73 +1688,71 @@ def _prop_descriptions(self):
             traces with higher `zorder` appear in front of those
             with lower `zorder`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        alignmentgroup=None,
-        bandwidth=None,
-        box=None,
-        customdata=None,
-        customdatasrc=None,
-        fillcolor=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hoveron=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        jitter=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        marker=None,
-        meanline=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        offsetgroup=None,
-        opacity=None,
-        orientation=None,
-        pointpos=None,
-        points=None,
-        quartilemethod=None,
-        scalegroup=None,
-        scalemode=None,
-        selected=None,
-        selectedpoints=None,
-        showlegend=None,
-        side=None,
-        span=None,
-        spanmode=None,
-        stream=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        unselected=None,
-        visible=None,
-        width=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        yhoverformat=None,
-        ysrc=None,
-        zorder=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            alignmentgroup=None,
+            bandwidth=None,
+            box=None,
+            customdata=None,
+            customdatasrc=None,
+            fillcolor=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hoveron=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            jitter=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            marker=None,
+            meanline=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            offsetgroup=None,
+            opacity=None,
+            orientation=None,
+            pointpos=None,
+            points=None,
+            quartilemethod=None,
+            scalegroup=None,
+            scalemode=None,
+            selected=None,
+            selectedpoints=None,
+            showlegend=None,
+            side=None,
+            span=None,
+            spanmode=None,
+            stream=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            unselected=None,
+            visible=None,
+            width=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            yhoverformat=None,
+            ysrc=None,
+            zorder=None,
+            **kwargs
+        ):
         """
         Construct a new Violin object
 
@@ -2177,9 +2116,9 @@ def __init__(
         -------
         Violin
         """
-        super().__init__("violin")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('violin')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2189,79 +2128,80 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Violin
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Violin`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("alignmentgroup", arg, alignmentgroup)
-        self._set_property("bandwidth", arg, bandwidth)
-        self._set_property("box", arg, box)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hoveron", arg, hoveron)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("jitter", arg, jitter)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("marker", arg, marker)
-        self._set_property("meanline", arg, meanline)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("offsetgroup", arg, offsetgroup)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("pointpos", arg, pointpos)
-        self._set_property("points", arg, points)
-        self._set_property("quartilemethod", arg, quartilemethod)
-        self._set_property("scalegroup", arg, scalegroup)
-        self._set_property("scalemode", arg, scalemode)
-        self._set_property("selected", arg, selected)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("side", arg, side)
-        self._set_property("span", arg, span)
-        self._set_property("spanmode", arg, spanmode)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("unselected", arg, unselected)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
-        self._set_property("x", arg, x)
-        self._set_property("x0", arg, x0)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("y0", arg, y0)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("zorder", arg, zorder)
-
-        self._props["type"] = "violin"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Violin`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('alignmentgroup', arg, alignmentgroup)
+        self._set_property('bandwidth', arg, bandwidth)
+        self._set_property('box', arg, box)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hoveron', arg, hoveron)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('jitter', arg, jitter)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('marker', arg, marker)
+        self._set_property('meanline', arg, meanline)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('offsetgroup', arg, offsetgroup)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('pointpos', arg, pointpos)
+        self._set_property('points', arg, points)
+        self._set_property('quartilemethod', arg, quartilemethod)
+        self._set_property('scalegroup', arg, scalegroup)
+        self._set_property('scalemode', arg, scalemode)
+        self._set_property('selected', arg, selected)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('side', arg, side)
+        self._set_property('span', arg, span)
+        self._set_property('spanmode', arg, spanmode)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('unselected', arg, unselected)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
+        self._set_property('x', arg, x)
+        self._set_property('x0', arg, x0)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('y0', arg, y0)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('zorder', arg, zorder)
+
+
+        self._props['type'] = 'violin'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_volume.py b/plotly/graph_objs/_volume.py
index 9933e9b20ad..2f3792ccf0b 100644
--- a/plotly/graph_objs/_volume.py
+++ b/plotly/graph_objs/_volume.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,72 +11,9 @@
 
 class Volume(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "volume"
-    _valid_props = {
-        "autocolorscale",
-        "caps",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "contour",
-        "customdata",
-        "customdatasrc",
-        "flatshading",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "isomax",
-        "isomin",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "lighting",
-        "lightposition",
-        "meta",
-        "metasrc",
-        "name",
-        "opacity",
-        "opacityscale",
-        "reversescale",
-        "scene",
-        "showlegend",
-        "showscale",
-        "slices",
-        "spaceframe",
-        "stream",
-        "surface",
-        "text",
-        "textsrc",
-        "type",
-        "uid",
-        "uirevision",
-        "value",
-        "valuehoverformat",
-        "valuesrc",
-        "visible",
-        "x",
-        "xhoverformat",
-        "xsrc",
-        "y",
-        "yhoverformat",
-        "ysrc",
-        "z",
-        "zhoverformat",
-        "zsrc",
-    }
+    _parent_path_str = ''
+    _path_str = 'volume'
+    _valid_props = {"autocolorscale", "caps", "cauto", "cmax", "cmid", "cmin", "coloraxis", "colorbar", "colorscale", "contour", "customdata", "customdatasrc", "flatshading", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "isomax", "isomin", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "lighting", "lightposition", "meta", "metasrc", "name", "opacity", "opacityscale", "reversescale", "scene", "showlegend", "showscale", "slices", "spaceframe", "stream", "surface", "text", "textsrc", "type", "uid", "uirevision", "value", "valuehoverformat", "valuesrc", "visible", "x", "xhoverformat", "xsrc", "y", "yhoverformat", "ysrc", "z", "zhoverformat", "zsrc"}
 
     @property
     def autocolorscale(self):
@@ -91,11 +32,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def caps(self):
@@ -110,11 +51,11 @@ def caps(self):
         -------
         plotly.graph_objs.volume.Caps
         """
-        return self["caps"]
+        return self['caps']
 
     @caps.setter
     def caps(self, val):
-        self["caps"] = val
+        self['caps'] = val
 
     @property
     def cauto(self):
@@ -131,11 +72,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -150,11 +91,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -170,11 +111,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -189,11 +130,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def coloraxis(self):
@@ -214,11 +155,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -233,11 +174,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.volume.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -284,11 +225,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def contour(self):
@@ -303,11 +244,11 @@ def contour(self):
         -------
         plotly.graph_objs.volume.Contour
         """
-        return self["contour"]
+        return self['contour']
 
     @contour.setter
     def contour(self, val):
-        self["contour"] = val
+        self['contour'] = val
 
     @property
     def customdata(self):
@@ -324,11 +265,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -343,11 +284,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def flatshading(self):
@@ -363,11 +304,11 @@ def flatshading(self):
         -------
         bool
         """
-        return self["flatshading"]
+        return self['flatshading']
 
     @flatshading.setter
     def flatshading(self, val):
-        self["flatshading"] = val
+        self['flatshading'] = val
 
     @property
     def hoverinfo(self):
@@ -387,11 +328,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -406,11 +347,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -425,11 +366,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.volume.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -467,11 +408,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -486,11 +427,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -506,11 +447,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -525,11 +466,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -545,11 +486,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -563,11 +504,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def isomax(self):
@@ -581,11 +522,11 @@ def isomax(self):
         -------
         int|float
         """
-        return self["isomax"]
+        return self['isomax']
 
     @isomax.setter
     def isomax(self, val):
-        self["isomax"] = val
+        self['isomax'] = val
 
     @property
     def isomin(self):
@@ -599,11 +540,11 @@ def isomin(self):
         -------
         int|float
         """
-        return self["isomin"]
+        return self['isomin']
 
     @isomin.setter
     def isomin(self, val):
-        self["isomin"] = val
+        self['isomin'] = val
 
     @property
     def legend(self):
@@ -622,11 +563,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -643,11 +584,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -662,11 +603,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.volume.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -687,11 +628,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -706,11 +647,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def lighting(self):
@@ -725,11 +666,11 @@ def lighting(self):
         -------
         plotly.graph_objs.volume.Lighting
         """
-        return self["lighting"]
+        return self['lighting']
 
     @lighting.setter
     def lighting(self, val):
-        self["lighting"] = val
+        self['lighting'] = val
 
     @property
     def lightposition(self):
@@ -744,11 +685,11 @@ def lightposition(self):
         -------
         plotly.graph_objs.volume.Lightposition
         """
-        return self["lightposition"]
+        return self['lightposition']
 
     @lightposition.setter
     def lightposition(self, val):
-        self["lightposition"] = val
+        self['lightposition'] = val
 
     @property
     def meta(self):
@@ -770,11 +711,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -788,11 +729,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -808,11 +749,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -831,11 +772,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacityscale(self):
@@ -856,11 +797,11 @@ def opacityscale(self):
         -------
         Any
         """
-        return self["opacityscale"]
+        return self['opacityscale']
 
     @opacityscale.setter
     def opacityscale(self, val):
-        self["opacityscale"] = val
+        self['opacityscale'] = val
 
     @property
     def reversescale(self):
@@ -876,11 +817,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def scene(self):
@@ -899,11 +840,11 @@ def scene(self):
         -------
         str
         """
-        return self["scene"]
+        return self['scene']
 
     @scene.setter
     def scene(self, val):
-        self["scene"] = val
+        self['scene'] = val
 
     @property
     def showlegend(self):
@@ -918,11 +859,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def showscale(self):
@@ -937,11 +878,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def slices(self):
@@ -956,11 +897,11 @@ def slices(self):
         -------
         plotly.graph_objs.volume.Slices
         """
-        return self["slices"]
+        return self['slices']
 
     @slices.setter
     def slices(self, val):
-        self["slices"] = val
+        self['slices'] = val
 
     @property
     def spaceframe(self):
@@ -975,11 +916,11 @@ def spaceframe(self):
         -------
         plotly.graph_objs.volume.Spaceframe
         """
-        return self["spaceframe"]
+        return self['spaceframe']
 
     @spaceframe.setter
     def spaceframe(self, val):
-        self["spaceframe"] = val
+        self['spaceframe'] = val
 
     @property
     def stream(self):
@@ -994,11 +935,11 @@ def stream(self):
         -------
         plotly.graph_objs.volume.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def surface(self):
@@ -1013,11 +954,11 @@ def surface(self):
         -------
         plotly.graph_objs.volume.Surface
         """
-        return self["surface"]
+        return self['surface']
 
     @surface.setter
     def surface(self, val):
-        self["surface"] = val
+        self['surface'] = val
 
     @property
     def text(self):
@@ -1035,11 +976,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textsrc(self):
@@ -1053,11 +994,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def uid(self):
@@ -1073,11 +1014,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1104,11 +1045,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def value(self):
@@ -1122,11 +1063,11 @@ def value(self):
         -------
         numpy.ndarray
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def valuehoverformat(self):
@@ -1145,11 +1086,11 @@ def valuehoverformat(self):
         -------
         str
         """
-        return self["valuehoverformat"]
+        return self['valuehoverformat']
 
     @valuehoverformat.setter
     def valuehoverformat(self, val):
-        self["valuehoverformat"] = val
+        self['valuehoverformat'] = val
 
     @property
     def valuesrc(self):
@@ -1163,11 +1104,11 @@ def valuesrc(self):
         -------
         str
         """
-        return self["valuesrc"]
+        return self['valuesrc']
 
     @valuesrc.setter
     def valuesrc(self, val):
-        self["valuesrc"] = val
+        self['valuesrc'] = val
 
     @property
     def visible(self):
@@ -1184,11 +1125,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -1202,11 +1143,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xhoverformat(self):
@@ -1231,11 +1172,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xsrc(self):
@@ -1249,11 +1190,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -1267,11 +1208,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yhoverformat(self):
@@ -1296,11 +1237,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def ysrc(self):
@@ -1314,11 +1255,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def z(self):
@@ -1332,11 +1273,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zhoverformat(self):
@@ -1361,11 +1302,11 @@ def zhoverformat(self):
         -------
         str
         """
-        return self["zhoverformat"]
+        return self['zhoverformat']
 
     @zhoverformat.setter
     def zhoverformat(self, val):
-        self["zhoverformat"] = val
+        self['zhoverformat'] = val
 
     @property
     def zsrc(self):
@@ -1379,15 +1320,15 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -1715,73 +1656,71 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        caps=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        contour=None,
-        customdata=None,
-        customdatasrc=None,
-        flatshading=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        isomax=None,
-        isomin=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        lighting=None,
-        lightposition=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        opacity=None,
-        opacityscale=None,
-        reversescale=None,
-        scene=None,
-        showlegend=None,
-        showscale=None,
-        slices=None,
-        spaceframe=None,
-        stream=None,
-        surface=None,
-        text=None,
-        textsrc=None,
-        uid=None,
-        uirevision=None,
-        value=None,
-        valuehoverformat=None,
-        valuesrc=None,
-        visible=None,
-        x=None,
-        xhoverformat=None,
-        xsrc=None,
-        y=None,
-        yhoverformat=None,
-        ysrc=None,
-        z=None,
-        zhoverformat=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            caps=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            contour=None,
+            customdata=None,
+            customdatasrc=None,
+            flatshading=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            isomax=None,
+            isomin=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            lighting=None,
+            lightposition=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            opacity=None,
+            opacityscale=None,
+            reversescale=None,
+            scene=None,
+            showlegend=None,
+            showscale=None,
+            slices=None,
+            spaceframe=None,
+            stream=None,
+            surface=None,
+            text=None,
+            textsrc=None,
+            uid=None,
+            uirevision=None,
+            value=None,
+            valuehoverformat=None,
+            valuesrc=None,
+            visible=None,
+            x=None,
+            xhoverformat=None,
+            xsrc=None,
+            y=None,
+            yhoverformat=None,
+            ysrc=None,
+            z=None,
+            zhoverformat=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Volume object
 
@@ -2124,9 +2063,9 @@ def __init__(
         -------
         Volume
         """
-        super().__init__("volume")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('volume')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2136,79 +2075,80 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Volume
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Volume`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("caps", arg, caps)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("contour", arg, contour)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("flatshading", arg, flatshading)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("isomax", arg, isomax)
-        self._set_property("isomin", arg, isomin)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("lighting", arg, lighting)
-        self._set_property("lightposition", arg, lightposition)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacityscale", arg, opacityscale)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("scene", arg, scene)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("slices", arg, slices)
-        self._set_property("spaceframe", arg, spaceframe)
-        self._set_property("stream", arg, stream)
-        self._set_property("surface", arg, surface)
-        self._set_property("text", arg, text)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("value", arg, value)
-        self._set_property("valuehoverformat", arg, valuehoverformat)
-        self._set_property("valuesrc", arg, valuesrc)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("z", arg, z)
-        self._set_property("zhoverformat", arg, zhoverformat)
-        self._set_property("zsrc", arg, zsrc)
-
-        self._props["type"] = "volume"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Volume`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('caps', arg, caps)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('contour', arg, contour)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('flatshading', arg, flatshading)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('isomax', arg, isomax)
+        self._set_property('isomin', arg, isomin)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('lighting', arg, lighting)
+        self._set_property('lightposition', arg, lightposition)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacityscale', arg, opacityscale)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('scene', arg, scene)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('slices', arg, slices)
+        self._set_property('spaceframe', arg, spaceframe)
+        self._set_property('stream', arg, stream)
+        self._set_property('surface', arg, surface)
+        self._set_property('text', arg, text)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('value', arg, value)
+        self._set_property('valuehoverformat', arg, valuehoverformat)
+        self._set_property('valuesrc', arg, valuesrc)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('z', arg, z)
+        self._set_property('zhoverformat', arg, zhoverformat)
+        self._set_property('zsrc', arg, zsrc)
+
+
+        self._props['type'] = 'volume'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/_waterfall.py b/plotly/graph_objs/_waterfall.py
index 47ac0f17e02..bf82307b325 100644
--- a/plotly/graph_objs/_waterfall.py
+++ b/plotly/graph_objs/_waterfall.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,84 +11,9 @@
 
 class Waterfall(_BaseTraceType):
 
-    _parent_path_str = ""
-    _path_str = "waterfall"
-    _valid_props = {
-        "alignmentgroup",
-        "base",
-        "cliponaxis",
-        "connector",
-        "constraintext",
-        "customdata",
-        "customdatasrc",
-        "decreasing",
-        "dx",
-        "dy",
-        "hoverinfo",
-        "hoverinfosrc",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "hovertext",
-        "hovertextsrc",
-        "ids",
-        "idssrc",
-        "increasing",
-        "insidetextanchor",
-        "insidetextfont",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "measure",
-        "measuresrc",
-        "meta",
-        "metasrc",
-        "name",
-        "offset",
-        "offsetgroup",
-        "offsetsrc",
-        "opacity",
-        "orientation",
-        "outsidetextfont",
-        "selectedpoints",
-        "showlegend",
-        "stream",
-        "text",
-        "textangle",
-        "textfont",
-        "textinfo",
-        "textposition",
-        "textpositionsrc",
-        "textsrc",
-        "texttemplate",
-        "texttemplatesrc",
-        "totals",
-        "type",
-        "uid",
-        "uirevision",
-        "visible",
-        "width",
-        "widthsrc",
-        "x",
-        "x0",
-        "xaxis",
-        "xhoverformat",
-        "xperiod",
-        "xperiod0",
-        "xperiodalignment",
-        "xsrc",
-        "y",
-        "y0",
-        "yaxis",
-        "yhoverformat",
-        "yperiod",
-        "yperiod0",
-        "yperiodalignment",
-        "ysrc",
-        "zorder",
-    }
+    _parent_path_str = ''
+    _path_str = 'waterfall'
+    _valid_props = {"alignmentgroup", "base", "cliponaxis", "connector", "constraintext", "customdata", "customdatasrc", "decreasing", "dx", "dy", "hoverinfo", "hoverinfosrc", "hoverlabel", "hovertemplate", "hovertemplatesrc", "hovertext", "hovertextsrc", "ids", "idssrc", "increasing", "insidetextanchor", "insidetextfont", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "measure", "measuresrc", "meta", "metasrc", "name", "offset", "offsetgroup", "offsetsrc", "opacity", "orientation", "outsidetextfont", "selectedpoints", "showlegend", "stream", "text", "textangle", "textfont", "textinfo", "textposition", "textpositionsrc", "textsrc", "texttemplate", "texttemplatesrc", "totals", "type", "uid", "uirevision", "visible", "width", "widthsrc", "x", "x0", "xaxis", "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", "xsrc", "y", "y0", "yaxis", "yhoverformat", "yperiod", "yperiod0", "yperiodalignment", "ysrc", "zorder"}
 
     @property
     def alignmentgroup(self):
@@ -101,11 +30,11 @@ def alignmentgroup(self):
         -------
         str
         """
-        return self["alignmentgroup"]
+        return self['alignmentgroup']
 
     @alignmentgroup.setter
     def alignmentgroup(self, val):
-        self["alignmentgroup"] = val
+        self['alignmentgroup'] = val
 
     @property
     def base(self):
@@ -119,11 +48,11 @@ def base(self):
         -------
         int|float
         """
-        return self["base"]
+        return self['base']
 
     @base.setter
     def base(self, val):
-        self["base"] = val
+        self['base'] = val
 
     @property
     def cliponaxis(self):
@@ -140,11 +69,11 @@ def cliponaxis(self):
         -------
         bool
         """
-        return self["cliponaxis"]
+        return self['cliponaxis']
 
     @cliponaxis.setter
     def cliponaxis(self, val):
-        self["cliponaxis"] = val
+        self['cliponaxis'] = val
 
     @property
     def connector(self):
@@ -159,11 +88,11 @@ def connector(self):
         -------
         plotly.graph_objs.waterfall.Connector
         """
-        return self["connector"]
+        return self['connector']
 
     @connector.setter
     def connector(self, val):
-        self["connector"] = val
+        self['connector'] = val
 
     @property
     def constraintext(self):
@@ -179,11 +108,11 @@ def constraintext(self):
         -------
         Any
         """
-        return self["constraintext"]
+        return self['constraintext']
 
     @constraintext.setter
     def constraintext(self, val):
-        self["constraintext"] = val
+        self['constraintext'] = val
 
     @property
     def customdata(self):
@@ -200,11 +129,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -219,11 +148,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def decreasing(self):
@@ -238,11 +167,11 @@ def decreasing(self):
         -------
         plotly.graph_objs.waterfall.Decreasing
         """
-        return self["decreasing"]
+        return self['decreasing']
 
     @decreasing.setter
     def decreasing(self, val):
-        self["decreasing"] = val
+        self['decreasing'] = val
 
     @property
     def dx(self):
@@ -256,11 +185,11 @@ def dx(self):
         -------
         int|float
         """
-        return self["dx"]
+        return self['dx']
 
     @dx.setter
     def dx(self, val):
-        self["dx"] = val
+        self['dx'] = val
 
     @property
     def dy(self):
@@ -274,11 +203,11 @@ def dy(self):
         -------
         int|float
         """
-        return self["dy"]
+        return self['dy']
 
     @dy.setter
     def dy(self, val):
-        self["dy"] = val
+        self['dy'] = val
 
     @property
     def hoverinfo(self):
@@ -298,11 +227,11 @@ def hoverinfo(self):
         -------
         Any|numpy.ndarray
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverinfosrc(self):
@@ -317,11 +246,11 @@ def hoverinfosrc(self):
         -------
         str
         """
-        return self["hoverinfosrc"]
+        return self['hoverinfosrc']
 
     @hoverinfosrc.setter
     def hoverinfosrc(self, val):
-        self["hoverinfosrc"] = val
+        self['hoverinfosrc'] = val
 
     @property
     def hoverlabel(self):
@@ -336,11 +265,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.waterfall.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -380,11 +309,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -399,11 +328,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def hovertext(self):
@@ -423,11 +352,11 @@ def hovertext(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def hovertextsrc(self):
@@ -442,11 +371,11 @@ def hovertextsrc(self):
         -------
         str
         """
-        return self["hovertextsrc"]
+        return self['hovertextsrc']
 
     @hovertextsrc.setter
     def hovertextsrc(self, val):
-        self["hovertextsrc"] = val
+        self['hovertextsrc'] = val
 
     @property
     def ids(self):
@@ -462,11 +391,11 @@ def ids(self):
         -------
         numpy.ndarray
         """
-        return self["ids"]
+        return self['ids']
 
     @ids.setter
     def ids(self, val):
-        self["ids"] = val
+        self['ids'] = val
 
     @property
     def idssrc(self):
@@ -480,11 +409,11 @@ def idssrc(self):
         -------
         str
         """
-        return self["idssrc"]
+        return self['idssrc']
 
     @idssrc.setter
     def idssrc(self, val):
-        self["idssrc"] = val
+        self['idssrc'] = val
 
     @property
     def increasing(self):
@@ -499,11 +428,11 @@ def increasing(self):
         -------
         plotly.graph_objs.waterfall.Increasing
         """
-        return self["increasing"]
+        return self['increasing']
 
     @increasing.setter
     def increasing(self, val):
-        self["increasing"] = val
+        self['increasing'] = val
 
     @property
     def insidetextanchor(self):
@@ -519,11 +448,11 @@ def insidetextanchor(self):
         -------
         Any
         """
-        return self["insidetextanchor"]
+        return self['insidetextanchor']
 
     @insidetextanchor.setter
     def insidetextanchor(self, val):
-        self["insidetextanchor"] = val
+        self['insidetextanchor'] = val
 
     @property
     def insidetextfont(self):
@@ -540,11 +469,11 @@ def insidetextfont(self):
         -------
         plotly.graph_objs.waterfall.Insidetextfont
         """
-        return self["insidetextfont"]
+        return self['insidetextfont']
 
     @insidetextfont.setter
     def insidetextfont(self, val):
-        self["insidetextfont"] = val
+        self['insidetextfont'] = val
 
     @property
     def legend(self):
@@ -563,11 +492,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -584,11 +513,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -603,11 +532,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.waterfall.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -628,11 +557,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -647,11 +576,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def measure(self):
@@ -669,11 +598,11 @@ def measure(self):
         -------
         numpy.ndarray
         """
-        return self["measure"]
+        return self['measure']
 
     @measure.setter
     def measure(self, val):
-        self["measure"] = val
+        self['measure'] = val
 
     @property
     def measuresrc(self):
@@ -687,11 +616,11 @@ def measuresrc(self):
         -------
         str
         """
-        return self["measuresrc"]
+        return self['measuresrc']
 
     @measuresrc.setter
     def measuresrc(self, val):
-        self["measuresrc"] = val
+        self['measuresrc'] = val
 
     @property
     def meta(self):
@@ -713,11 +642,11 @@ def meta(self):
         -------
         Any|numpy.ndarray
         """
-        return self["meta"]
+        return self['meta']
 
     @meta.setter
     def meta(self, val):
-        self["meta"] = val
+        self['meta'] = val
 
     @property
     def metasrc(self):
@@ -731,11 +660,11 @@ def metasrc(self):
         -------
         str
         """
-        return self["metasrc"]
+        return self['metasrc']
 
     @metasrc.setter
     def metasrc(self, val):
-        self["metasrc"] = val
+        self['metasrc'] = val
 
     @property
     def name(self):
@@ -751,11 +680,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def offset(self):
@@ -772,11 +701,11 @@ def offset(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["offset"]
+        return self['offset']
 
     @offset.setter
     def offset(self, val):
-        self["offset"] = val
+        self['offset'] = val
 
     @property
     def offsetgroup(self):
@@ -793,11 +722,11 @@ def offsetgroup(self):
         -------
         str
         """
-        return self["offsetgroup"]
+        return self['offsetgroup']
 
     @offsetgroup.setter
     def offsetgroup(self, val):
-        self["offsetgroup"] = val
+        self['offsetgroup'] = val
 
     @property
     def offsetsrc(self):
@@ -811,11 +740,11 @@ def offsetsrc(self):
         -------
         str
         """
-        return self["offsetsrc"]
+        return self['offsetsrc']
 
     @offsetsrc.setter
     def offsetsrc(self, val):
-        self["offsetsrc"] = val
+        self['offsetsrc'] = val
 
     @property
     def opacity(self):
@@ -829,11 +758,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def orientation(self):
@@ -849,11 +778,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outsidetextfont(self):
@@ -870,11 +799,11 @@ def outsidetextfont(self):
         -------
         plotly.graph_objs.waterfall.Outsidetextfont
         """
-        return self["outsidetextfont"]
+        return self['outsidetextfont']
 
     @outsidetextfont.setter
     def outsidetextfont(self, val):
-        self["outsidetextfont"] = val
+        self['outsidetextfont'] = val
 
     @property
     def selectedpoints(self):
@@ -892,11 +821,11 @@ def selectedpoints(self):
         -------
         Any
         """
-        return self["selectedpoints"]
+        return self['selectedpoints']
 
     @selectedpoints.setter
     def selectedpoints(self, val):
-        self["selectedpoints"] = val
+        self['selectedpoints'] = val
 
     @property
     def showlegend(self):
@@ -911,11 +840,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def stream(self):
@@ -930,11 +859,11 @@ def stream(self):
         -------
         plotly.graph_objs.waterfall.Stream
         """
-        return self["stream"]
+        return self['stream']
 
     @stream.setter
     def stream(self, val):
-        self["stream"] = val
+        self['stream'] = val
 
     @property
     def text(self):
@@ -955,11 +884,11 @@ def text(self):
         -------
         str|numpy.ndarray
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textangle(self):
@@ -978,11 +907,11 @@ def textangle(self):
         -------
         int|float
         """
-        return self["textangle"]
+        return self['textangle']
 
     @textangle.setter
     def textangle(self, val):
-        self["textangle"] = val
+        self['textangle'] = val
 
     @property
     def textfont(self):
@@ -999,11 +928,11 @@ def textfont(self):
         -------
         plotly.graph_objs.waterfall.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textinfo(self):
@@ -1022,11 +951,11 @@ def textinfo(self):
         -------
         Any
         """
-        return self["textinfo"]
+        return self['textinfo']
 
     @textinfo.setter
     def textinfo(self, val):
-        self["textinfo"] = val
+        self['textinfo'] = val
 
     @property
     def textposition(self):
@@ -1049,11 +978,11 @@ def textposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def textpositionsrc(self):
@@ -1068,11 +997,11 @@ def textpositionsrc(self):
         -------
         str
         """
-        return self["textpositionsrc"]
+        return self['textpositionsrc']
 
     @textpositionsrc.setter
     def textpositionsrc(self, val):
-        self["textpositionsrc"] = val
+        self['textpositionsrc'] = val
 
     @property
     def textsrc(self):
@@ -1086,11 +1015,11 @@ def textsrc(self):
         -------
         str
         """
-        return self["textsrc"]
+        return self['textsrc']
 
     @textsrc.setter
     def textsrc(self, val):
-        self["textsrc"] = val
+        self['textsrc'] = val
 
     @property
     def texttemplate(self):
@@ -1119,11 +1048,11 @@ def texttemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def texttemplatesrc(self):
@@ -1138,11 +1067,11 @@ def texttemplatesrc(self):
         -------
         str
         """
-        return self["texttemplatesrc"]
+        return self['texttemplatesrc']
 
     @texttemplatesrc.setter
     def texttemplatesrc(self, val):
-        self["texttemplatesrc"] = val
+        self['texttemplatesrc'] = val
 
     @property
     def totals(self):
@@ -1157,11 +1086,11 @@ def totals(self):
         -------
         plotly.graph_objs.waterfall.Totals
         """
-        return self["totals"]
+        return self['totals']
 
     @totals.setter
     def totals(self, val):
-        self["totals"] = val
+        self['totals'] = val
 
     @property
     def uid(self):
@@ -1177,11 +1106,11 @@ def uid(self):
         -------
         str
         """
-        return self["uid"]
+        return self['uid']
 
     @uid.setter
     def uid(self, val):
-        self["uid"] = val
+        self['uid'] = val
 
     @property
     def uirevision(self):
@@ -1208,11 +1137,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -1229,11 +1158,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -1248,11 +1177,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -1266,11 +1195,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def x(self):
@@ -1284,11 +1213,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def x0(self):
@@ -1303,11 +1232,11 @@ def x0(self):
         -------
         Any
         """
-        return self["x0"]
+        return self['x0']
 
     @x0.setter
     def x0(self, val):
-        self["x0"] = val
+        self['x0'] = val
 
     @property
     def xaxis(self):
@@ -1326,11 +1255,11 @@ def xaxis(self):
         -------
         str
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def xhoverformat(self):
@@ -1355,11 +1284,11 @@ def xhoverformat(self):
         -------
         str
         """
-        return self["xhoverformat"]
+        return self['xhoverformat']
 
     @xhoverformat.setter
     def xhoverformat(self, val):
-        self["xhoverformat"] = val
+        self['xhoverformat'] = val
 
     @property
     def xperiod(self):
@@ -1375,11 +1304,11 @@ def xperiod(self):
         -------
         Any
         """
-        return self["xperiod"]
+        return self['xperiod']
 
     @xperiod.setter
     def xperiod(self, val):
-        self["xperiod"] = val
+        self['xperiod'] = val
 
     @property
     def xperiod0(self):
@@ -1396,11 +1325,11 @@ def xperiod0(self):
         -------
         Any
         """
-        return self["xperiod0"]
+        return self['xperiod0']
 
     @xperiod0.setter
     def xperiod0(self, val):
-        self["xperiod0"] = val
+        self['xperiod0'] = val
 
     @property
     def xperiodalignment(self):
@@ -1416,11 +1345,11 @@ def xperiodalignment(self):
         -------
         Any
         """
-        return self["xperiodalignment"]
+        return self['xperiodalignment']
 
     @xperiodalignment.setter
     def xperiodalignment(self, val):
-        self["xperiodalignment"] = val
+        self['xperiodalignment'] = val
 
     @property
     def xsrc(self):
@@ -1434,11 +1363,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -1452,11 +1381,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def y0(self):
@@ -1471,11 +1400,11 @@ def y0(self):
         -------
         Any
         """
-        return self["y0"]
+        return self['y0']
 
     @y0.setter
     def y0(self, val):
-        self["y0"] = val
+        self['y0'] = val
 
     @property
     def yaxis(self):
@@ -1494,11 +1423,11 @@ def yaxis(self):
         -------
         str
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def yhoverformat(self):
@@ -1523,11 +1452,11 @@ def yhoverformat(self):
         -------
         str
         """
-        return self["yhoverformat"]
+        return self['yhoverformat']
 
     @yhoverformat.setter
     def yhoverformat(self, val):
-        self["yhoverformat"] = val
+        self['yhoverformat'] = val
 
     @property
     def yperiod(self):
@@ -1543,11 +1472,11 @@ def yperiod(self):
         -------
         Any
         """
-        return self["yperiod"]
+        return self['yperiod']
 
     @yperiod.setter
     def yperiod(self, val):
-        self["yperiod"] = val
+        self['yperiod'] = val
 
     @property
     def yperiod0(self):
@@ -1564,11 +1493,11 @@ def yperiod0(self):
         -------
         Any
         """
-        return self["yperiod0"]
+        return self['yperiod0']
 
     @yperiod0.setter
     def yperiod0(self, val):
-        self["yperiod0"] = val
+        self['yperiod0'] = val
 
     @property
     def yperiodalignment(self):
@@ -1584,11 +1513,11 @@ def yperiodalignment(self):
         -------
         Any
         """
-        return self["yperiodalignment"]
+        return self['yperiodalignment']
 
     @yperiodalignment.setter
     def yperiodalignment(self, val):
-        self["yperiodalignment"] = val
+        self['yperiodalignment'] = val
 
     @property
     def ysrc(self):
@@ -1602,11 +1531,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def zorder(self):
@@ -1622,15 +1551,15 @@ def zorder(self):
         -------
         int
         """
-        return self["zorder"]
+        return self['zorder']
 
     @zorder.setter
     def zorder(self, val):
-        self["zorder"] = val
+        self['zorder'] = val
 
     @property
     def type(self):
-        return self._props["type"]
+        return self._props['type']
 
     @property
     def _prop_descriptions(self):
@@ -2009,85 +1938,83 @@ def _prop_descriptions(self):
             traces with higher `zorder` appear in front of those
             with lower `zorder`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        alignmentgroup=None,
-        base=None,
-        cliponaxis=None,
-        connector=None,
-        constraintext=None,
-        customdata=None,
-        customdatasrc=None,
-        decreasing=None,
-        dx=None,
-        dy=None,
-        hoverinfo=None,
-        hoverinfosrc=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        hovertext=None,
-        hovertextsrc=None,
-        ids=None,
-        idssrc=None,
-        increasing=None,
-        insidetextanchor=None,
-        insidetextfont=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        measure=None,
-        measuresrc=None,
-        meta=None,
-        metasrc=None,
-        name=None,
-        offset=None,
-        offsetgroup=None,
-        offsetsrc=None,
-        opacity=None,
-        orientation=None,
-        outsidetextfont=None,
-        selectedpoints=None,
-        showlegend=None,
-        stream=None,
-        text=None,
-        textangle=None,
-        textfont=None,
-        textinfo=None,
-        textposition=None,
-        textpositionsrc=None,
-        textsrc=None,
-        texttemplate=None,
-        texttemplatesrc=None,
-        totals=None,
-        uid=None,
-        uirevision=None,
-        visible=None,
-        width=None,
-        widthsrc=None,
-        x=None,
-        x0=None,
-        xaxis=None,
-        xhoverformat=None,
-        xperiod=None,
-        xperiod0=None,
-        xperiodalignment=None,
-        xsrc=None,
-        y=None,
-        y0=None,
-        yaxis=None,
-        yhoverformat=None,
-        yperiod=None,
-        yperiod0=None,
-        yperiodalignment=None,
-        ysrc=None,
-        zorder=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            alignmentgroup=None,
+            base=None,
+            cliponaxis=None,
+            connector=None,
+            constraintext=None,
+            customdata=None,
+            customdatasrc=None,
+            decreasing=None,
+            dx=None,
+            dy=None,
+            hoverinfo=None,
+            hoverinfosrc=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            hovertext=None,
+            hovertextsrc=None,
+            ids=None,
+            idssrc=None,
+            increasing=None,
+            insidetextanchor=None,
+            insidetextfont=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            measure=None,
+            measuresrc=None,
+            meta=None,
+            metasrc=None,
+            name=None,
+            offset=None,
+            offsetgroup=None,
+            offsetsrc=None,
+            opacity=None,
+            orientation=None,
+            outsidetextfont=None,
+            selectedpoints=None,
+            showlegend=None,
+            stream=None,
+            text=None,
+            textangle=None,
+            textfont=None,
+            textinfo=None,
+            textposition=None,
+            textpositionsrc=None,
+            textsrc=None,
+            texttemplate=None,
+            texttemplatesrc=None,
+            totals=None,
+            uid=None,
+            uirevision=None,
+            visible=None,
+            width=None,
+            widthsrc=None,
+            x=None,
+            x0=None,
+            xaxis=None,
+            xhoverformat=None,
+            xperiod=None,
+            xperiod0=None,
+            xperiodalignment=None,
+            xsrc=None,
+            y=None,
+            y0=None,
+            yaxis=None,
+            yhoverformat=None,
+            yperiod=None,
+            yperiod0=None,
+            yperiodalignment=None,
+            ysrc=None,
+            zorder=None,
+            **kwargs
+        ):
         """
         Construct a new Waterfall object
 
@@ -2481,9 +2408,9 @@ def __init__(
         -------
         Waterfall
         """
-        super().__init__("waterfall")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('waterfall')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2493,91 +2420,92 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.Waterfall
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.Waterfall`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("alignmentgroup", arg, alignmentgroup)
-        self._set_property("base", arg, base)
-        self._set_property("cliponaxis", arg, cliponaxis)
-        self._set_property("connector", arg, connector)
-        self._set_property("constraintext", arg, constraintext)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("decreasing", arg, decreasing)
-        self._set_property("dx", arg, dx)
-        self._set_property("dy", arg, dy)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverinfosrc", arg, hoverinfosrc)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("hovertextsrc", arg, hovertextsrc)
-        self._set_property("ids", arg, ids)
-        self._set_property("idssrc", arg, idssrc)
-        self._set_property("increasing", arg, increasing)
-        self._set_property("insidetextanchor", arg, insidetextanchor)
-        self._set_property("insidetextfont", arg, insidetextfont)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("measure", arg, measure)
-        self._set_property("measuresrc", arg, measuresrc)
-        self._set_property("meta", arg, meta)
-        self._set_property("metasrc", arg, metasrc)
-        self._set_property("name", arg, name)
-        self._set_property("offset", arg, offset)
-        self._set_property("offsetgroup", arg, offsetgroup)
-        self._set_property("offsetsrc", arg, offsetsrc)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outsidetextfont", arg, outsidetextfont)
-        self._set_property("selectedpoints", arg, selectedpoints)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("stream", arg, stream)
-        self._set_property("text", arg, text)
-        self._set_property("textangle", arg, textangle)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textinfo", arg, textinfo)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("textpositionsrc", arg, textpositionsrc)
-        self._set_property("textsrc", arg, textsrc)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("texttemplatesrc", arg, texttemplatesrc)
-        self._set_property("totals", arg, totals)
-        self._set_property("uid", arg, uid)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
-        self._set_property("x", arg, x)
-        self._set_property("x0", arg, x0)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("xhoverformat", arg, xhoverformat)
-        self._set_property("xperiod", arg, xperiod)
-        self._set_property("xperiod0", arg, xperiod0)
-        self._set_property("xperiodalignment", arg, xperiodalignment)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("y0", arg, y0)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("yhoverformat", arg, yhoverformat)
-        self._set_property("yperiod", arg, yperiod)
-        self._set_property("yperiod0", arg, yperiod0)
-        self._set_property("yperiodalignment", arg, yperiodalignment)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("zorder", arg, zorder)
-
-        self._props["type"] = "waterfall"
-        arg.pop("type", None)
+an instance of :class:`plotly.graph_objs.Waterfall`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('alignmentgroup', arg, alignmentgroup)
+        self._set_property('base', arg, base)
+        self._set_property('cliponaxis', arg, cliponaxis)
+        self._set_property('connector', arg, connector)
+        self._set_property('constraintext', arg, constraintext)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('decreasing', arg, decreasing)
+        self._set_property('dx', arg, dx)
+        self._set_property('dy', arg, dy)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverinfosrc', arg, hoverinfosrc)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('hovertextsrc', arg, hovertextsrc)
+        self._set_property('ids', arg, ids)
+        self._set_property('idssrc', arg, idssrc)
+        self._set_property('increasing', arg, increasing)
+        self._set_property('insidetextanchor', arg, insidetextanchor)
+        self._set_property('insidetextfont', arg, insidetextfont)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('measure', arg, measure)
+        self._set_property('measuresrc', arg, measuresrc)
+        self._set_property('meta', arg, meta)
+        self._set_property('metasrc', arg, metasrc)
+        self._set_property('name', arg, name)
+        self._set_property('offset', arg, offset)
+        self._set_property('offsetgroup', arg, offsetgroup)
+        self._set_property('offsetsrc', arg, offsetsrc)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outsidetextfont', arg, outsidetextfont)
+        self._set_property('selectedpoints', arg, selectedpoints)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('stream', arg, stream)
+        self._set_property('text', arg, text)
+        self._set_property('textangle', arg, textangle)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textinfo', arg, textinfo)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('textpositionsrc', arg, textpositionsrc)
+        self._set_property('textsrc', arg, textsrc)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('texttemplatesrc', arg, texttemplatesrc)
+        self._set_property('totals', arg, totals)
+        self._set_property('uid', arg, uid)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
+        self._set_property('x', arg, x)
+        self._set_property('x0', arg, x0)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('xhoverformat', arg, xhoverformat)
+        self._set_property('xperiod', arg, xperiod)
+        self._set_property('xperiod0', arg, xperiod0)
+        self._set_property('xperiodalignment', arg, xperiodalignment)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('y0', arg, y0)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('yhoverformat', arg, yhoverformat)
+        self._set_property('yperiod', arg, yperiod)
+        self._set_property('yperiod0', arg, yperiod0)
+        self._set_property('yperiodalignment', arg, yperiodalignment)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('zorder', arg, zorder)
+
+
+        self._props['type'] = 'waterfall'
+        arg.pop('type', None)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/__init__.py b/plotly/graph_objs/bar/__init__.py
index 3d2c5be92be..5274df563be 100644
--- a/plotly/graph_objs/bar/__init__.py
+++ b/plotly/graph_objs/bar/__init__.py
@@ -1,20 +1,28 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._error_x import ErrorX
+    from ._error_y import ErrorY
+    from ._hoverlabel import Hoverlabel
+    from ._insidetextfont import Insidetextfont
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._marker import Marker
+    from ._outsidetextfont import Outsidetextfont
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._unselected import Unselected
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._error_x.ErrorX', '._error_y.ErrorY', '._hoverlabel.Hoverlabel', '._insidetextfont.Insidetextfont', '._legendgrouptitle.Legendgrouptitle', '._marker.Marker', '._outsidetextfont.Outsidetextfont', '._selected.Selected', '._stream.Stream', '._textfont.Textfont', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".selected", ".unselected"],
-    [
-        "._error_x.ErrorX",
-        "._error_y.ErrorY",
-        "._hoverlabel.Hoverlabel",
-        "._insidetextfont.Insidetextfont",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._marker.Marker",
-        "._outsidetextfont.Outsidetextfont",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/bar/_error_x.py b/plotly/graph_objs/bar/_error_x.py
index 9377120b64c..25db284597b 100644
--- a/plotly/graph_objs/bar/_error_x.py
+++ b/plotly/graph_objs/bar/_error_x.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,25 +11,9 @@
 
 class ErrorX(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar"
-    _path_str = "bar.error_x"
-    _valid_props = {
-        "array",
-        "arrayminus",
-        "arrayminussrc",
-        "arraysrc",
-        "color",
-        "copy_ystyle",
-        "symmetric",
-        "thickness",
-        "traceref",
-        "tracerefminus",
-        "type",
-        "value",
-        "valueminus",
-        "visible",
-        "width",
-    }
+    _parent_path_str = 'bar'
+    _path_str = 'bar.error_x'
+    _valid_props = {"array", "arrayminus", "arrayminussrc", "arraysrc", "color", "copy_ystyle", "symmetric", "thickness", "traceref", "tracerefminus", "type", "value", "valueminus", "visible", "width"}
 
     @property
     def array(self):
@@ -40,11 +28,11 @@ def array(self):
         -------
         numpy.ndarray
         """
-        return self["array"]
+        return self['array']
 
     @array.setter
     def array(self, val):
-        self["array"] = val
+        self['array'] = val
 
     @property
     def arrayminus(self):
@@ -60,11 +48,11 @@ def arrayminus(self):
         -------
         numpy.ndarray
         """
-        return self["arrayminus"]
+        return self['arrayminus']
 
     @arrayminus.setter
     def arrayminus(self, val):
-        self["arrayminus"] = val
+        self['arrayminus'] = val
 
     @property
     def arrayminussrc(self):
@@ -79,11 +67,11 @@ def arrayminussrc(self):
         -------
         str
         """
-        return self["arrayminussrc"]
+        return self['arrayminussrc']
 
     @arrayminussrc.setter
     def arrayminussrc(self, val):
-        self["arrayminussrc"] = val
+        self['arrayminussrc'] = val
 
     @property
     def arraysrc(self):
@@ -97,11 +85,11 @@ def arraysrc(self):
         -------
         str
         """
-        return self["arraysrc"]
+        return self['arraysrc']
 
     @arraysrc.setter
     def arraysrc(self, val):
-        self["arraysrc"] = val
+        self['arraysrc'] = val
 
     @property
     def color(self):
@@ -119,11 +107,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def copy_ystyle(self):
@@ -135,11 +123,11 @@ def copy_ystyle(self):
         -------
         bool
         """
-        return self["copy_ystyle"]
+        return self['copy_ystyle']
 
     @copy_ystyle.setter
     def copy_ystyle(self, val):
-        self["copy_ystyle"] = val
+        self['copy_ystyle'] = val
 
     @property
     def symmetric(self):
@@ -155,11 +143,11 @@ def symmetric(self):
         -------
         bool
         """
-        return self["symmetric"]
+        return self['symmetric']
 
     @symmetric.setter
     def symmetric(self, val):
-        self["symmetric"] = val
+        self['symmetric'] = val
 
     @property
     def thickness(self):
@@ -173,11 +161,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def traceref(self):
@@ -190,11 +178,11 @@ def traceref(self):
         -------
         int
         """
-        return self["traceref"]
+        return self['traceref']
 
     @traceref.setter
     def traceref(self, val):
-        self["traceref"] = val
+        self['traceref'] = val
 
     @property
     def tracerefminus(self):
@@ -207,11 +195,11 @@ def tracerefminus(self):
         -------
         int
         """
-        return self["tracerefminus"]
+        return self['tracerefminus']
 
     @tracerefminus.setter
     def tracerefminus(self, val):
-        self["tracerefminus"] = val
+        self['tracerefminus'] = val
 
     @property
     def type(self):
@@ -232,11 +220,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def value(self):
@@ -252,11 +240,11 @@ def value(self):
         -------
         int|float
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def valueminus(self):
@@ -273,11 +261,11 @@ def valueminus(self):
         -------
         int|float
         """
-        return self["valueminus"]
+        return self['valueminus']
 
     @valueminus.setter
     def valueminus(self, val):
-        self["valueminus"] = val
+        self['valueminus'] = val
 
     @property
     def visible(self):
@@ -291,11 +279,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -310,11 +298,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -375,27 +363,25 @@ def _prop_descriptions(self):
             Sets the width (in px) of the cross-bar at both ends of
             the error bars.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        array=None,
-        arrayminus=None,
-        arrayminussrc=None,
-        arraysrc=None,
-        color=None,
-        copy_ystyle=None,
-        symmetric=None,
-        thickness=None,
-        traceref=None,
-        tracerefminus=None,
-        type=None,
-        value=None,
-        valueminus=None,
-        visible=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            array=None,
+            arrayminus=None,
+            arrayminussrc=None,
+            arraysrc=None,
+            color=None,
+            copy_ystyle=None,
+            symmetric=None,
+            thickness=None,
+            traceref=None,
+            tracerefminus=None,
+            type=None,
+            value=None,
+            valueminus=None,
+            visible=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new ErrorX object
 
@@ -464,9 +450,9 @@ def __init__(
         -------
         ErrorX
         """
-        super().__init__("error_x")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('error_x')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -476,30 +462,30 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.ErrorX
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.ErrorX`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("array", arg, array)
-        self._set_property("arrayminus", arg, arrayminus)
-        self._set_property("arrayminussrc", arg, arrayminussrc)
-        self._set_property("arraysrc", arg, arraysrc)
-        self._set_property("color", arg, color)
-        self._set_property("copy_ystyle", arg, copy_ystyle)
-        self._set_property("symmetric", arg, symmetric)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("traceref", arg, traceref)
-        self._set_property("tracerefminus", arg, tracerefminus)
-        self._set_property("type", arg, type)
-        self._set_property("value", arg, value)
-        self._set_property("valueminus", arg, valueminus)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.bar.ErrorX`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('array', arg, array)
+        self._set_property('arrayminus', arg, arrayminus)
+        self._set_property('arrayminussrc', arg, arrayminussrc)
+        self._set_property('arraysrc', arg, arraysrc)
+        self._set_property('color', arg, color)
+        self._set_property('copy_ystyle', arg, copy_ystyle)
+        self._set_property('symmetric', arg, symmetric)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('traceref', arg, traceref)
+        self._set_property('tracerefminus', arg, tracerefminus)
+        self._set_property('type', arg, type)
+        self._set_property('value', arg, value)
+        self._set_property('valueminus', arg, valueminus)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/_error_y.py b/plotly/graph_objs/bar/_error_y.py
index e3fc87e7c13..d7f729774d3 100644
--- a/plotly/graph_objs/bar/_error_y.py
+++ b/plotly/graph_objs/bar/_error_y.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,24 +11,9 @@
 
 class ErrorY(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar"
-    _path_str = "bar.error_y"
-    _valid_props = {
-        "array",
-        "arrayminus",
-        "arrayminussrc",
-        "arraysrc",
-        "color",
-        "symmetric",
-        "thickness",
-        "traceref",
-        "tracerefminus",
-        "type",
-        "value",
-        "valueminus",
-        "visible",
-        "width",
-    }
+    _parent_path_str = 'bar'
+    _path_str = 'bar.error_y'
+    _valid_props = {"array", "arrayminus", "arrayminussrc", "arraysrc", "color", "symmetric", "thickness", "traceref", "tracerefminus", "type", "value", "valueminus", "visible", "width"}
 
     @property
     def array(self):
@@ -39,11 +28,11 @@ def array(self):
         -------
         numpy.ndarray
         """
-        return self["array"]
+        return self['array']
 
     @array.setter
     def array(self, val):
-        self["array"] = val
+        self['array'] = val
 
     @property
     def arrayminus(self):
@@ -59,11 +48,11 @@ def arrayminus(self):
         -------
         numpy.ndarray
         """
-        return self["arrayminus"]
+        return self['arrayminus']
 
     @arrayminus.setter
     def arrayminus(self, val):
-        self["arrayminus"] = val
+        self['arrayminus'] = val
 
     @property
     def arrayminussrc(self):
@@ -78,11 +67,11 @@ def arrayminussrc(self):
         -------
         str
         """
-        return self["arrayminussrc"]
+        return self['arrayminussrc']
 
     @arrayminussrc.setter
     def arrayminussrc(self, val):
-        self["arrayminussrc"] = val
+        self['arrayminussrc'] = val
 
     @property
     def arraysrc(self):
@@ -96,11 +85,11 @@ def arraysrc(self):
         -------
         str
         """
-        return self["arraysrc"]
+        return self['arraysrc']
 
     @arraysrc.setter
     def arraysrc(self, val):
-        self["arraysrc"] = val
+        self['arraysrc'] = val
 
     @property
     def color(self):
@@ -118,11 +107,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def symmetric(self):
@@ -138,11 +127,11 @@ def symmetric(self):
         -------
         bool
         """
-        return self["symmetric"]
+        return self['symmetric']
 
     @symmetric.setter
     def symmetric(self, val):
-        self["symmetric"] = val
+        self['symmetric'] = val
 
     @property
     def thickness(self):
@@ -156,11 +145,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def traceref(self):
@@ -173,11 +162,11 @@ def traceref(self):
         -------
         int
         """
-        return self["traceref"]
+        return self['traceref']
 
     @traceref.setter
     def traceref(self, val):
-        self["traceref"] = val
+        self['traceref'] = val
 
     @property
     def tracerefminus(self):
@@ -190,11 +179,11 @@ def tracerefminus(self):
         -------
         int
         """
-        return self["tracerefminus"]
+        return self['tracerefminus']
 
     @tracerefminus.setter
     def tracerefminus(self, val):
-        self["tracerefminus"] = val
+        self['tracerefminus'] = val
 
     @property
     def type(self):
@@ -215,11 +204,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def value(self):
@@ -235,11 +224,11 @@ def value(self):
         -------
         int|float
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def valueminus(self):
@@ -256,11 +245,11 @@ def valueminus(self):
         -------
         int|float
         """
-        return self["valueminus"]
+        return self['valueminus']
 
     @valueminus.setter
     def valueminus(self, val):
-        self["valueminus"] = val
+        self['valueminus'] = val
 
     @property
     def visible(self):
@@ -274,11 +263,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -293,11 +282,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -356,26 +345,24 @@ def _prop_descriptions(self):
             Sets the width (in px) of the cross-bar at both ends of
             the error bars.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        array=None,
-        arrayminus=None,
-        arrayminussrc=None,
-        arraysrc=None,
-        color=None,
-        symmetric=None,
-        thickness=None,
-        traceref=None,
-        tracerefminus=None,
-        type=None,
-        value=None,
-        valueminus=None,
-        visible=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            array=None,
+            arrayminus=None,
+            arrayminussrc=None,
+            arraysrc=None,
+            color=None,
+            symmetric=None,
+            thickness=None,
+            traceref=None,
+            tracerefminus=None,
+            type=None,
+            value=None,
+            valueminus=None,
+            visible=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new ErrorY object
 
@@ -442,9 +429,9 @@ def __init__(
         -------
         ErrorY
         """
-        super().__init__("error_y")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('error_y')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -454,29 +441,29 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.ErrorY
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.ErrorY`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("array", arg, array)
-        self._set_property("arrayminus", arg, arrayminus)
-        self._set_property("arrayminussrc", arg, arrayminussrc)
-        self._set_property("arraysrc", arg, arraysrc)
-        self._set_property("color", arg, color)
-        self._set_property("symmetric", arg, symmetric)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("traceref", arg, traceref)
-        self._set_property("tracerefminus", arg, tracerefminus)
-        self._set_property("type", arg, type)
-        self._set_property("value", arg, value)
-        self._set_property("valueminus", arg, valueminus)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.bar.ErrorY`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('array', arg, array)
+        self._set_property('arrayminus', arg, arrayminus)
+        self._set_property('arrayminussrc', arg, arrayminussrc)
+        self._set_property('arraysrc', arg, arraysrc)
+        self._set_property('color', arg, color)
+        self._set_property('symmetric', arg, symmetric)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('traceref', arg, traceref)
+        self._set_property('tracerefminus', arg, tracerefminus)
+        self._set_property('type', arg, type)
+        self._set_property('value', arg, value)
+        self._set_property('valueminus', arg, valueminus)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/_hoverlabel.py b/plotly/graph_objs/bar/_hoverlabel.py
index f1900dd264c..571e96bb8a8 100644
--- a/plotly/graph_objs/bar/_hoverlabel.py
+++ b/plotly/graph_objs/bar/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar"
-    _path_str = "bar.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'bar'
+    _path_str = 'bar.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.bar.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.bar.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/_insidetextfont.py b/plotly/graph_objs/bar/_insidetextfont.py
index a8b04caef69..5ce7cf3ab78 100644
--- a/plotly/graph_objs/bar/_insidetextfont.py
+++ b/plotly/graph_objs/bar/_insidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Insidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar"
-    _path_str = "bar.insidetextfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'bar'
+    _path_str = 'bar.insidetextfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Insidetextfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Insidetextfont
         """
-        super().__init__("insidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('insidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.Insidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.Insidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.bar.Insidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/_legendgrouptitle.py b/plotly/graph_objs/bar/_legendgrouptitle.py
index 4e26b2361d5..3bdcec7d84b 100644
--- a/plotly/graph_objs/bar/_legendgrouptitle.py
+++ b/plotly/graph_objs/bar/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar"
-    _path_str = "bar.legendgrouptitle"
+    _parent_path_str = 'bar'
+    _path_str = 'bar.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.bar.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.bar.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/_marker.py b/plotly/graph_objs/bar/_marker.py
index 0c40f9fabcc..6a8ad8a8add 100644
--- a/plotly/graph_objs/bar/_marker.py
+++ b/plotly/graph_objs/bar/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,27 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar"
-    _path_str = "bar.marker"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "cornerradius",
-        "line",
-        "opacity",
-        "opacitysrc",
-        "pattern",
-        "reversescale",
-        "showscale",
-    }
+    _parent_path_str = 'bar'
+    _path_str = 'bar.marker'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "cornerradius", "line", "opacity", "opacitysrc", "pattern", "reversescale", "showscale"}
 
     @property
     def autocolorscale(self):
@@ -47,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -70,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -91,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -113,11 +99,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -134,11 +120,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -162,11 +148,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -187,11 +173,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -206,11 +192,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.bar.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -258,11 +244,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -276,11 +262,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def cornerradius(self):
@@ -297,11 +283,11 @@ def cornerradius(self):
         -------
         Any
         """
-        return self["cornerradius"]
+        return self['cornerradius']
 
     @cornerradius.setter
     def cornerradius(self, val):
-        self["cornerradius"] = val
+        self['cornerradius'] = val
 
     @property
     def line(self):
@@ -316,11 +302,11 @@ def line(self):
         -------
         plotly.graph_objs.bar.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def opacity(self):
@@ -335,11 +321,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -353,11 +339,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def pattern(self):
@@ -374,11 +360,11 @@ def pattern(self):
         -------
         plotly.graph_objs.bar.marker.Pattern
         """
-        return self["pattern"]
+        return self['pattern']
 
     @pattern.setter
     def pattern(self, val):
-        self["pattern"] = val
+        self['pattern'] = val
 
     @property
     def reversescale(self):
@@ -395,11 +381,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -415,11 +401,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def _prop_descriptions(self):
@@ -517,29 +503,27 @@ def _prop_descriptions(self):
             this trace. Has an effect only if in `marker.color` is
             set to a numerical array.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        cornerradius=None,
-        line=None,
-        opacity=None,
-        opacitysrc=None,
-        pattern=None,
-        reversescale=None,
-        showscale=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            cornerradius=None,
+            line=None,
+            opacity=None,
+            opacitysrc=None,
+            pattern=None,
+            reversescale=None,
+            showscale=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -645,9 +629,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -657,32 +641,32 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("cornerradius", arg, cornerradius)
-        self._set_property("line", arg, line)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("pattern", arg, pattern)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
+an instance of :class:`plotly.graph_objs.bar.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('cornerradius', arg, cornerradius)
+        self._set_property('line', arg, line)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('pattern', arg, pattern)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/_outsidetextfont.py b/plotly/graph_objs/bar/_outsidetextfont.py
index 3cebce60bf9..58db077a6fb 100644
--- a/plotly/graph_objs/bar/_outsidetextfont.py
+++ b/plotly/graph_objs/bar/_outsidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Outsidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar"
-    _path_str = "bar.outsidetextfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'bar'
+    _path_str = 'bar.outsidetextfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Outsidetextfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Outsidetextfont
         """
-        super().__init__("outsidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('outsidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.Outsidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.Outsidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.bar.Outsidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/_selected.py b/plotly/graph_objs/bar/_selected.py
index c28ea9e2cc5..e39545d2c98 100644
--- a/plotly/graph_objs/bar/_selected.py
+++ b/plotly/graph_objs/bar/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar"
-    _path_str = "bar.selected"
+    _parent_path_str = 'bar'
+    _path_str = 'bar.selected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.bar.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.bar.selected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.bar.selected.Textfont`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -80,9 +88,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -92,17 +100,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.bar.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/_stream.py b/plotly/graph_objs/bar/_stream.py
index 6e30b049177..5251f03b967 100644
--- a/plotly/graph_objs/bar/_stream.py
+++ b/plotly/graph_objs/bar/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar"
-    _path_str = "bar.stream"
+    _parent_path_str = 'bar'
+    _path_str = 'bar.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.bar.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/_textfont.py b/plotly/graph_objs/bar/_textfont.py
index 864be8aca50..8c88cc39802 100644
--- a/plotly/graph_objs/bar/_textfont.py
+++ b/plotly/graph_objs/bar/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar"
-    _path_str = "bar.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'bar'
+    _path_str = 'bar.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -545,9 +528,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -557,33 +540,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.bar.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/_unselected.py b/plotly/graph_objs/bar/_unselected.py
index 467d8acd767..5840561d9ef 100644
--- a/plotly/graph_objs/bar/_unselected.py
+++ b/plotly/graph_objs/bar/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar"
-    _path_str = "bar.unselected"
+    _parent_path_str = 'bar'
+    _path_str = 'bar.unselected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.bar.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.bar.unselected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.bar.unselected.Textfont`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.bar.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/hoverlabel/__init__.py b/plotly/graph_objs/bar/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/bar/hoverlabel/__init__.py
+++ b/plotly/graph_objs/bar/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/bar/hoverlabel/_font.py b/plotly/graph_objs/bar/hoverlabel/_font.py
index 0d5e37cadbd..22e90619420 100644
--- a/plotly/graph_objs/bar/hoverlabel/_font.py
+++ b/plotly/graph_objs/bar/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar.hoverlabel"
-    _path_str = "bar.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'bar.hoverlabel'
+    _path_str = 'bar.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.bar.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/legendgrouptitle/__init__.py b/plotly/graph_objs/bar/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/bar/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/bar/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/bar/legendgrouptitle/_font.py b/plotly/graph_objs/bar/legendgrouptitle/_font.py
index dc540b96c2c..b9c1379ae71 100644
--- a/plotly/graph_objs/bar/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/bar/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar.legendgrouptitle"
-    _path_str = "bar.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'bar.legendgrouptitle'
+    _path_str = 'bar.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.bar.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/marker/__init__.py b/plotly/graph_objs/bar/marker/__init__.py
index 700941a53ec..210a88dd222 100644
--- a/plotly/graph_objs/bar/marker/__init__.py
+++ b/plotly/graph_objs/bar/marker/__init__.py
@@ -1,6 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._line import Line
+    from ._pattern import Pattern
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._line.Line', '._pattern.Pattern']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".colorbar"], ["._colorbar.ColorBar", "._line.Line", "._pattern.Pattern"]
-)
diff --git a/plotly/graph_objs/bar/marker/_colorbar.py b/plotly/graph_objs/bar/marker/_colorbar.py
index d79fdf1c976..cc056f601e3 100644
--- a/plotly/graph_objs/bar/marker/_colorbar.py
+++ b/plotly/graph_objs/bar/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar.marker"
-    _path_str = "bar.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'bar.marker'
+    _path_str = 'bar.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.bar.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.bar.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -641,11 +595,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.bar.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -663,11 +617,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -686,11 +640,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -710,11 +664,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -728,11 +682,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -753,11 +707,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -772,11 +726,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -793,11 +747,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -812,11 +766,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -832,11 +786,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -850,11 +804,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -869,11 +823,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -887,11 +841,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -905,11 +859,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -924,11 +878,11 @@ def title(self):
         -------
         plotly.graph_objs.bar.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -948,11 +902,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -970,11 +924,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -988,11 +942,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1009,11 +963,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1033,11 +987,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1055,11 +1009,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1073,11 +1027,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1094,11 +1048,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1342,61 +1296,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1649,9 +1601,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1661,64 +1613,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.bar.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/marker/_line.py b/plotly/graph_objs/bar/marker/_line.py
index 150984dfd43..f5bc6a378c0 100644
--- a/plotly/graph_objs/bar/marker/_line.py
+++ b/plotly/graph_objs/bar/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar.marker"
-    _path_str = "bar.marker.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorscale",
-        "colorsrc",
-        "reversescale",
-        "width",
-        "widthsrc",
-    }
+    _parent_path_str = 'bar.marker'
+    _path_str = 'bar.marker.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorscale", "colorsrc", "reversescale", "width", "widthsrc"}
 
     @property
     def autocolorscale(self):
@@ -42,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -65,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -86,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -109,11 +100,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -130,11 +121,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -158,11 +149,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -183,11 +174,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorscale(self):
@@ -236,11 +227,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -254,11 +245,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def reversescale(self):
@@ -276,11 +267,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def width(self):
@@ -295,11 +286,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -313,11 +304,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -401,24 +392,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorscale=None,
-        colorsrc=None,
-        reversescale=None,
-        width=None,
-        widthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorscale=None,
+            colorsrc=None,
+            reversescale=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -511,9 +500,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -523,27 +512,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.marker.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+an instance of :class:`plotly.graph_objs.bar.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/marker/_pattern.py b/plotly/graph_objs/bar/marker/_pattern.py
index 64c5c498fe3..28257c9a4ac 100644
--- a/plotly/graph_objs/bar/marker/_pattern.py
+++ b/plotly/graph_objs/bar/marker/_pattern.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Pattern(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar.marker"
-    _path_str = "bar.marker.pattern"
-    _valid_props = {
-        "bgcolor",
-        "bgcolorsrc",
-        "fgcolor",
-        "fgcolorsrc",
-        "fgopacity",
-        "fillmode",
-        "shape",
-        "shapesrc",
-        "size",
-        "sizesrc",
-        "solidity",
-        "soliditysrc",
-    }
+    _parent_path_str = 'bar.marker'
+    _path_str = 'bar.marker.pattern'
+    _valid_props = {"bgcolor", "bgcolorsrc", "fgcolor", "fgcolorsrc", "fgopacity", "fillmode", "shape", "shapesrc", "size", "sizesrc", "solidity", "soliditysrc"}
 
     @property
     def bgcolor(self):
@@ -44,11 +35,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -62,11 +53,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def fgcolor(self):
@@ -88,11 +79,11 @@ def fgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["fgcolor"]
+        return self['fgcolor']
 
     @fgcolor.setter
     def fgcolor(self, val):
-        self["fgcolor"] = val
+        self['fgcolor'] = val
 
     @property
     def fgcolorsrc(self):
@@ -106,11 +97,11 @@ def fgcolorsrc(self):
         -------
         str
         """
-        return self["fgcolorsrc"]
+        return self['fgcolorsrc']
 
     @fgcolorsrc.setter
     def fgcolorsrc(self, val):
-        self["fgcolorsrc"] = val
+        self['fgcolorsrc'] = val
 
     @property
     def fgopacity(self):
@@ -125,11 +116,11 @@ def fgopacity(self):
         -------
         int|float
         """
-        return self["fgopacity"]
+        return self['fgopacity']
 
     @fgopacity.setter
     def fgopacity(self, val):
-        self["fgopacity"] = val
+        self['fgopacity'] = val
 
     @property
     def fillmode(self):
@@ -145,11 +136,11 @@ def fillmode(self):
         -------
         Any
         """
-        return self["fillmode"]
+        return self['fillmode']
 
     @fillmode.setter
     def fillmode(self, val):
-        self["fillmode"] = val
+        self['fillmode'] = val
 
     @property
     def shape(self):
@@ -166,11 +157,11 @@ def shape(self):
         -------
         Any|numpy.ndarray
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def shapesrc(self):
@@ -184,11 +175,11 @@ def shapesrc(self):
         -------
         str
         """
-        return self["shapesrc"]
+        return self['shapesrc']
 
     @shapesrc.setter
     def shapesrc(self, val):
-        self["shapesrc"] = val
+        self['shapesrc'] = val
 
     @property
     def size(self):
@@ -204,11 +195,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -222,11 +213,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def solidity(self):
@@ -244,11 +235,11 @@ def solidity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["solidity"]
+        return self['solidity']
 
     @solidity.setter
     def solidity(self, val):
-        self["solidity"] = val
+        self['solidity'] = val
 
     @property
     def soliditysrc(self):
@@ -262,11 +253,11 @@ def soliditysrc(self):
         -------
         str
         """
-        return self["soliditysrc"]
+        return self['soliditysrc']
 
     @soliditysrc.setter
     def soliditysrc(self, val):
-        self["soliditysrc"] = val
+        self['soliditysrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -318,24 +309,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `solidity`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        fgcolor=None,
-        fgcolorsrc=None,
-        fgopacity=None,
-        fillmode=None,
-        shape=None,
-        shapesrc=None,
-        size=None,
-        sizesrc=None,
-        solidity=None,
-        soliditysrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            fgcolor=None,
+            fgcolorsrc=None,
+            fgopacity=None,
+            fillmode=None,
+            shape=None,
+            shapesrc=None,
+            size=None,
+            sizesrc=None,
+            solidity=None,
+            soliditysrc=None,
+            **kwargs
+        ):
         """
         Construct a new Pattern object
 
@@ -398,9 +387,9 @@ def __init__(
         -------
         Pattern
         """
-        super().__init__("pattern")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('pattern')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -410,27 +399,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.marker.Pattern
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.marker.Pattern`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("fgcolor", arg, fgcolor)
-        self._set_property("fgcolorsrc", arg, fgcolorsrc)
-        self._set_property("fgopacity", arg, fgopacity)
-        self._set_property("fillmode", arg, fillmode)
-        self._set_property("shape", arg, shape)
-        self._set_property("shapesrc", arg, shapesrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("solidity", arg, solidity)
-        self._set_property("soliditysrc", arg, soliditysrc)
+an instance of :class:`plotly.graph_objs.bar.marker.Pattern`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('fgcolor', arg, fgcolor)
+        self._set_property('fgcolorsrc', arg, fgcolorsrc)
+        self._set_property('fgopacity', arg, fgopacity)
+        self._set_property('fillmode', arg, fillmode)
+        self._set_property('shape', arg, shape)
+        self._set_property('shapesrc', arg, shapesrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('solidity', arg, solidity)
+        self._set_property('soliditysrc', arg, soliditysrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/marker/colorbar/__init__.py b/plotly/graph_objs/bar/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/bar/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/bar/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/bar/marker/colorbar/_tickfont.py b/plotly/graph_objs/bar/marker/colorbar/_tickfont.py
index 8d3b1a6e25b..090e8f66bb1 100644
--- a/plotly/graph_objs/bar/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/bar/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar.marker.colorbar"
-    _path_str = "bar.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'bar.marker.colorbar'
+    _path_str = 'bar.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.bar.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/bar/marker/colorbar/_tickformatstop.py
index 6eae822c9c5..b0024d1187f 100644
--- a/plotly/graph_objs/bar/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/bar/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar.marker.colorbar"
-    _path_str = "bar.marker.colorbar.tickformatstop"
+    _parent_path_str = 'bar.marker.colorbar'
+    _path_str = 'bar.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.bar.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/marker/colorbar/_title.py b/plotly/graph_objs/bar/marker/colorbar/_title.py
index d4fd0b56259..1c5e3438ffd 100644
--- a/plotly/graph_objs/bar/marker/colorbar/_title.py
+++ b/plotly/graph_objs/bar/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar.marker.colorbar"
-    _path_str = "bar.marker.colorbar.title"
+    _parent_path_str = 'bar.marker.colorbar'
+    _path_str = 'bar.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.bar.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.bar.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/marker/colorbar/title/__init__.py b/plotly/graph_objs/bar/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/bar/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/bar/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/bar/marker/colorbar/title/_font.py b/plotly/graph_objs/bar/marker/colorbar/title/_font.py
index 4ade1e39242..70e4d331bef 100644
--- a/plotly/graph_objs/bar/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/bar/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar.marker.colorbar.title"
-    _path_str = "bar.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'bar.marker.colorbar.title'
+    _path_str = 'bar.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.bar.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/selected/__init__.py b/plotly/graph_objs/bar/selected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/bar/selected/__init__.py
+++ b/plotly/graph_objs/bar/selected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/bar/selected/_marker.py b/plotly/graph_objs/bar/selected/_marker.py
index 45c17e04fdd..5b08a1b876a 100644
--- a/plotly/graph_objs/bar/selected/_marker.py
+++ b/plotly/graph_objs/bar/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar.selected"
-    _path_str = "bar.selected.marker"
+    _parent_path_str = 'bar.selected'
+    _path_str = 'bar.selected.marker'
     _valid_props = {"color", "opacity"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         opacity
             Sets the marker opacity of selected points.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, color=None, opacity=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, color=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.bar.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/selected/_textfont.py b/plotly/graph_objs/bar/selected/_textfont.py
index da5420ddf11..75f83aaae2c 100644
--- a/plotly/graph_objs/bar/selected/_textfont.py
+++ b/plotly/graph_objs/bar/selected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar.selected"
-    _path_str = "bar.selected.textfont"
+    _parent_path_str = 'bar.selected'
+    _path_str = 'bar.selected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -39,8 +43,11 @@ def _prop_descriptions(self):
         color
             Sets the text font color of selected points.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -57,9 +64,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -69,16 +76,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.selected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.selected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.bar.selected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/unselected/__init__.py b/plotly/graph_objs/bar/unselected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/bar/unselected/__init__.py
+++ b/plotly/graph_objs/bar/unselected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/bar/unselected/_marker.py b/plotly/graph_objs/bar/unselected/_marker.py
index b048561802d..431750c9854 100644
--- a/plotly/graph_objs/bar/unselected/_marker.py
+++ b/plotly/graph_objs/bar/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar.unselected"
-    _path_str = "bar.unselected.marker"
+    _parent_path_str = 'bar.unselected'
+    _path_str = 'bar.unselected.marker'
     _valid_props = {"color", "opacity"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -47,11 +51,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -63,8 +67,12 @@ def _prop_descriptions(self):
             Sets the marker opacity of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -85,9 +93,9 @@ def __init__(self, arg=None, color=None, opacity=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -97,17 +105,17 @@ def __init__(self, arg=None, color=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.bar.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/bar/unselected/_textfont.py b/plotly/graph_objs/bar/unselected/_textfont.py
index 67dc0205bc1..9668fb3c902 100644
--- a/plotly/graph_objs/bar/unselected/_textfont.py
+++ b/plotly/graph_objs/bar/unselected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "bar.unselected"
-    _path_str = "bar.unselected.textfont"
+    _parent_path_str = 'bar.unselected'
+    _path_str = 'bar.unselected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -41,8 +45,11 @@ def _prop_descriptions(self):
             Sets the text font color of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -60,9 +67,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -72,16 +79,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.bar.unselected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.bar.unselected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.bar.unselected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/__init__.py b/plotly/graph_objs/barpolar/__init__.py
index 0d240d0ac94..68cbc63ab15 100644
--- a/plotly/graph_objs/barpolar/__init__.py
+++ b/plotly/graph_objs/barpolar/__init__.py
@@ -1,15 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._marker import Marker
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._unselected import Unselected
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._marker.Marker', '._selected.Selected', '._stream.Stream', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".selected", ".unselected"],
-    [
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._marker.Marker",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/barpolar/_hoverlabel.py b/plotly/graph_objs/barpolar/_hoverlabel.py
index c10fd724780..e8af81050f5 100644
--- a/plotly/graph_objs/barpolar/_hoverlabel.py
+++ b/plotly/graph_objs/barpolar/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar"
-    _path_str = "barpolar.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'barpolar'
+    _path_str = 'barpolar.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.barpolar.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.barpolar.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/_legendgrouptitle.py b/plotly/graph_objs/barpolar/_legendgrouptitle.py
index 48a1a880241..8a59529144b 100644
--- a/plotly/graph_objs/barpolar/_legendgrouptitle.py
+++ b/plotly/graph_objs/barpolar/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar"
-    _path_str = "barpolar.legendgrouptitle"
+    _parent_path_str = 'barpolar'
+    _path_str = 'barpolar.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.barpolar.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.barpolar.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/_marker.py b/plotly/graph_objs/barpolar/_marker.py
index 21406705a35..2d82ce7e36a 100644
--- a/plotly/graph_objs/barpolar/_marker.py
+++ b/plotly/graph_objs/barpolar/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,26 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar"
-    _path_str = "barpolar.marker"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "line",
-        "opacity",
-        "opacitysrc",
-        "pattern",
-        "reversescale",
-        "showscale",
-    }
+    _parent_path_str = 'barpolar'
+    _path_str = 'barpolar.marker'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "line", "opacity", "opacitysrc", "pattern", "reversescale", "showscale"}
 
     @property
     def autocolorscale(self):
@@ -46,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -69,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -90,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -112,11 +99,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -133,11 +120,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -161,11 +148,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -186,11 +173,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -205,11 +192,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.barpolar.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -257,11 +244,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -275,11 +262,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def line(self):
@@ -294,11 +281,11 @@ def line(self):
         -------
         plotly.graph_objs.barpolar.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def opacity(self):
@@ -313,11 +300,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -331,11 +318,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def pattern(self):
@@ -352,11 +339,11 @@ def pattern(self):
         -------
         plotly.graph_objs.barpolar.marker.Pattern
         """
-        return self["pattern"]
+        return self['pattern']
 
     @pattern.setter
     def pattern(self, val):
-        self["pattern"] = val
+        self['pattern'] = val
 
     @property
     def reversescale(self):
@@ -373,11 +360,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -393,11 +380,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def _prop_descriptions(self):
@@ -489,28 +476,26 @@ def _prop_descriptions(self):
             this trace. Has an effect only if in `marker.color` is
             set to a numerical array.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        line=None,
-        opacity=None,
-        opacitysrc=None,
-        pattern=None,
-        reversescale=None,
-        showscale=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            line=None,
+            opacity=None,
+            opacitysrc=None,
+            pattern=None,
+            reversescale=None,
+            showscale=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -611,9 +596,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -623,31 +608,31 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("line", arg, line)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("pattern", arg, pattern)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
+an instance of :class:`plotly.graph_objs.barpolar.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('line', arg, line)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('pattern', arg, pattern)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/_selected.py b/plotly/graph_objs/barpolar/_selected.py
index 69b655ca153..513f847e2fa 100644
--- a/plotly/graph_objs/barpolar/_selected.py
+++ b/plotly/graph_objs/barpolar/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar"
-    _path_str = "barpolar.selected"
+    _parent_path_str = 'barpolar'
+    _path_str = 'barpolar.selected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.barpolar.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.barpolar.selected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.barpolar.selected.Textfont
             ` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.barpolar.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/_stream.py b/plotly/graph_objs/barpolar/_stream.py
index 53de6c54d4c..f8c6f822c9e 100644
--- a/plotly/graph_objs/barpolar/_stream.py
+++ b/plotly/graph_objs/barpolar/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar"
-    _path_str = "barpolar.stream"
+    _parent_path_str = 'barpolar'
+    _path_str = 'barpolar.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.barpolar.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/_unselected.py b/plotly/graph_objs/barpolar/_unselected.py
index 49016840f0c..12de3c25843 100644
--- a/plotly/graph_objs/barpolar/_unselected.py
+++ b/plotly/graph_objs/barpolar/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar"
-    _path_str = "barpolar.unselected"
+    _parent_path_str = 'barpolar'
+    _path_str = 'barpolar.unselected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.barpolar.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.barpolar.unselected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.barpolar.unselected.Textfo
             nt` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.barpolar.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/hoverlabel/__init__.py b/plotly/graph_objs/barpolar/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/barpolar/hoverlabel/__init__.py
+++ b/plotly/graph_objs/barpolar/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/barpolar/hoverlabel/_font.py b/plotly/graph_objs/barpolar/hoverlabel/_font.py
index 4c8ed8c83c7..c3436028e5d 100644
--- a/plotly/graph_objs/barpolar/hoverlabel/_font.py
+++ b/plotly/graph_objs/barpolar/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar.hoverlabel"
-    _path_str = "barpolar.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'barpolar.hoverlabel'
+    _path_str = 'barpolar.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.barpolar.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/legendgrouptitle/__init__.py b/plotly/graph_objs/barpolar/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/barpolar/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/barpolar/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/barpolar/legendgrouptitle/_font.py b/plotly/graph_objs/barpolar/legendgrouptitle/_font.py
index e53bb36fc7f..cabbfb1b0e4 100644
--- a/plotly/graph_objs/barpolar/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/barpolar/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar.legendgrouptitle"
-    _path_str = "barpolar.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'barpolar.legendgrouptitle'
+    _path_str = 'barpolar.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.barpolar.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/marker/__init__.py b/plotly/graph_objs/barpolar/marker/__init__.py
index 700941a53ec..210a88dd222 100644
--- a/plotly/graph_objs/barpolar/marker/__init__.py
+++ b/plotly/graph_objs/barpolar/marker/__init__.py
@@ -1,6 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._line import Line
+    from ._pattern import Pattern
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._line.Line', '._pattern.Pattern']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".colorbar"], ["._colorbar.ColorBar", "._line.Line", "._pattern.Pattern"]
-)
diff --git a/plotly/graph_objs/barpolar/marker/_colorbar.py b/plotly/graph_objs/barpolar/marker/_colorbar.py
index f08a1a2ba13..14e4ac59b55 100644
--- a/plotly/graph_objs/barpolar/marker/_colorbar.py
+++ b/plotly/graph_objs/barpolar/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar.marker"
-    _path_str = "barpolar.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'barpolar.marker'
+    _path_str = 'barpolar.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.barpolar.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.barpolar.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.barpolar.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.barpolar.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.barpolar.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/marker/_line.py b/plotly/graph_objs/barpolar/marker/_line.py
index 69783b7a500..b925cbbc46b 100644
--- a/plotly/graph_objs/barpolar/marker/_line.py
+++ b/plotly/graph_objs/barpolar/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar.marker"
-    _path_str = "barpolar.marker.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorscale",
-        "colorsrc",
-        "reversescale",
-        "width",
-        "widthsrc",
-    }
+    _parent_path_str = 'barpolar.marker'
+    _path_str = 'barpolar.marker.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorscale", "colorsrc", "reversescale", "width", "widthsrc"}
 
     @property
     def autocolorscale(self):
@@ -42,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -65,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -86,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -109,11 +100,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -130,11 +121,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -158,11 +149,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -183,11 +174,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorscale(self):
@@ -236,11 +227,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -254,11 +245,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def reversescale(self):
@@ -276,11 +267,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def width(self):
@@ -295,11 +286,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -313,11 +304,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -401,24 +392,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorscale=None,
-        colorsrc=None,
-        reversescale=None,
-        width=None,
-        widthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorscale=None,
+            colorsrc=None,
+            reversescale=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -511,9 +500,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -523,27 +512,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.marker.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+an instance of :class:`plotly.graph_objs.barpolar.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/marker/_pattern.py b/plotly/graph_objs/barpolar/marker/_pattern.py
index 26e1cb94570..15865cb8ed0 100644
--- a/plotly/graph_objs/barpolar/marker/_pattern.py
+++ b/plotly/graph_objs/barpolar/marker/_pattern.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Pattern(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar.marker"
-    _path_str = "barpolar.marker.pattern"
-    _valid_props = {
-        "bgcolor",
-        "bgcolorsrc",
-        "fgcolor",
-        "fgcolorsrc",
-        "fgopacity",
-        "fillmode",
-        "shape",
-        "shapesrc",
-        "size",
-        "sizesrc",
-        "solidity",
-        "soliditysrc",
-    }
+    _parent_path_str = 'barpolar.marker'
+    _path_str = 'barpolar.marker.pattern'
+    _valid_props = {"bgcolor", "bgcolorsrc", "fgcolor", "fgcolorsrc", "fgopacity", "fillmode", "shape", "shapesrc", "size", "sizesrc", "solidity", "soliditysrc"}
 
     @property
     def bgcolor(self):
@@ -44,11 +35,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -62,11 +53,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def fgcolor(self):
@@ -88,11 +79,11 @@ def fgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["fgcolor"]
+        return self['fgcolor']
 
     @fgcolor.setter
     def fgcolor(self, val):
-        self["fgcolor"] = val
+        self['fgcolor'] = val
 
     @property
     def fgcolorsrc(self):
@@ -106,11 +97,11 @@ def fgcolorsrc(self):
         -------
         str
         """
-        return self["fgcolorsrc"]
+        return self['fgcolorsrc']
 
     @fgcolorsrc.setter
     def fgcolorsrc(self, val):
-        self["fgcolorsrc"] = val
+        self['fgcolorsrc'] = val
 
     @property
     def fgopacity(self):
@@ -125,11 +116,11 @@ def fgopacity(self):
         -------
         int|float
         """
-        return self["fgopacity"]
+        return self['fgopacity']
 
     @fgopacity.setter
     def fgopacity(self, val):
-        self["fgopacity"] = val
+        self['fgopacity'] = val
 
     @property
     def fillmode(self):
@@ -145,11 +136,11 @@ def fillmode(self):
         -------
         Any
         """
-        return self["fillmode"]
+        return self['fillmode']
 
     @fillmode.setter
     def fillmode(self, val):
-        self["fillmode"] = val
+        self['fillmode'] = val
 
     @property
     def shape(self):
@@ -166,11 +157,11 @@ def shape(self):
         -------
         Any|numpy.ndarray
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def shapesrc(self):
@@ -184,11 +175,11 @@ def shapesrc(self):
         -------
         str
         """
-        return self["shapesrc"]
+        return self['shapesrc']
 
     @shapesrc.setter
     def shapesrc(self, val):
-        self["shapesrc"] = val
+        self['shapesrc'] = val
 
     @property
     def size(self):
@@ -204,11 +195,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -222,11 +213,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def solidity(self):
@@ -244,11 +235,11 @@ def solidity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["solidity"]
+        return self['solidity']
 
     @solidity.setter
     def solidity(self, val):
-        self["solidity"] = val
+        self['solidity'] = val
 
     @property
     def soliditysrc(self):
@@ -262,11 +253,11 @@ def soliditysrc(self):
         -------
         str
         """
-        return self["soliditysrc"]
+        return self['soliditysrc']
 
     @soliditysrc.setter
     def soliditysrc(self, val):
-        self["soliditysrc"] = val
+        self['soliditysrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -318,24 +309,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `solidity`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        fgcolor=None,
-        fgcolorsrc=None,
-        fgopacity=None,
-        fillmode=None,
-        shape=None,
-        shapesrc=None,
-        size=None,
-        sizesrc=None,
-        solidity=None,
-        soliditysrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            fgcolor=None,
+            fgcolorsrc=None,
+            fgopacity=None,
+            fillmode=None,
+            shape=None,
+            shapesrc=None,
+            size=None,
+            sizesrc=None,
+            solidity=None,
+            soliditysrc=None,
+            **kwargs
+        ):
         """
         Construct a new Pattern object
 
@@ -398,9 +387,9 @@ def __init__(
         -------
         Pattern
         """
-        super().__init__("pattern")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('pattern')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -410,27 +399,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.marker.Pattern
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.marker.Pattern`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("fgcolor", arg, fgcolor)
-        self._set_property("fgcolorsrc", arg, fgcolorsrc)
-        self._set_property("fgopacity", arg, fgopacity)
-        self._set_property("fillmode", arg, fillmode)
-        self._set_property("shape", arg, shape)
-        self._set_property("shapesrc", arg, shapesrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("solidity", arg, solidity)
-        self._set_property("soliditysrc", arg, soliditysrc)
+an instance of :class:`plotly.graph_objs.barpolar.marker.Pattern`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('fgcolor', arg, fgcolor)
+        self._set_property('fgcolorsrc', arg, fgcolorsrc)
+        self._set_property('fgopacity', arg, fgopacity)
+        self._set_property('fillmode', arg, fillmode)
+        self._set_property('shape', arg, shape)
+        self._set_property('shapesrc', arg, shapesrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('solidity', arg, solidity)
+        self._set_property('soliditysrc', arg, soliditysrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/marker/colorbar/__init__.py b/plotly/graph_objs/barpolar/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/barpolar/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/barpolar/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/barpolar/marker/colorbar/_tickfont.py b/plotly/graph_objs/barpolar/marker/colorbar/_tickfont.py
index ffe56848b11..402cbb4788b 100644
--- a/plotly/graph_objs/barpolar/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/barpolar/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar.marker.colorbar"
-    _path_str = "barpolar.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'barpolar.marker.colorbar'
+    _path_str = 'barpolar.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.barpolar.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/barpolar/marker/colorbar/_tickformatstop.py
index 4754ea97abb..b03ca1a5e09 100644
--- a/plotly/graph_objs/barpolar/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/barpolar/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar.marker.colorbar"
-    _path_str = "barpolar.marker.colorbar.tickformatstop"
+    _parent_path_str = 'barpolar.marker.colorbar'
+    _path_str = 'barpolar.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.barpolar.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/marker/colorbar/_title.py b/plotly/graph_objs/barpolar/marker/colorbar/_title.py
index a8e620904e1..2d1360c8db1 100644
--- a/plotly/graph_objs/barpolar/marker/colorbar/_title.py
+++ b/plotly/graph_objs/barpolar/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar.marker.colorbar"
-    _path_str = "barpolar.marker.colorbar.title"
+    _parent_path_str = 'barpolar.marker.colorbar'
+    _path_str = 'barpolar.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.barpolar.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.barpolar.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/marker/colorbar/title/__init__.py b/plotly/graph_objs/barpolar/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/barpolar/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/barpolar/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/barpolar/marker/colorbar/title/_font.py b/plotly/graph_objs/barpolar/marker/colorbar/title/_font.py
index 8b8121b4049..9c6f05aa554 100644
--- a/plotly/graph_objs/barpolar/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/barpolar/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar.marker.colorbar.title"
-    _path_str = "barpolar.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'barpolar.marker.colorbar.title'
+    _path_str = 'barpolar.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.barpolar.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/selected/__init__.py b/plotly/graph_objs/barpolar/selected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/barpolar/selected/__init__.py
+++ b/plotly/graph_objs/barpolar/selected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/barpolar/selected/_marker.py b/plotly/graph_objs/barpolar/selected/_marker.py
index 4d223f96eb7..826c3682202 100644
--- a/plotly/graph_objs/barpolar/selected/_marker.py
+++ b/plotly/graph_objs/barpolar/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar.selected"
-    _path_str = "barpolar.selected.marker"
+    _parent_path_str = 'barpolar.selected'
+    _path_str = 'barpolar.selected.marker'
     _valid_props = {"color", "opacity"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         opacity
             Sets the marker opacity of selected points.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, color=None, opacity=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, color=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.barpolar.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/selected/_textfont.py b/plotly/graph_objs/barpolar/selected/_textfont.py
index f7c74183bc0..1103be6a25b 100644
--- a/plotly/graph_objs/barpolar/selected/_textfont.py
+++ b/plotly/graph_objs/barpolar/selected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar.selected"
-    _path_str = "barpolar.selected.textfont"
+    _parent_path_str = 'barpolar.selected'
+    _path_str = 'barpolar.selected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -39,8 +43,11 @@ def _prop_descriptions(self):
         color
             Sets the text font color of selected points.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -57,9 +64,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -69,16 +76,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.selected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.selected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.barpolar.selected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/unselected/__init__.py b/plotly/graph_objs/barpolar/unselected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/barpolar/unselected/__init__.py
+++ b/plotly/graph_objs/barpolar/unselected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/barpolar/unselected/_marker.py b/plotly/graph_objs/barpolar/unselected/_marker.py
index 1f326927e7a..bf2d56861ea 100644
--- a/plotly/graph_objs/barpolar/unselected/_marker.py
+++ b/plotly/graph_objs/barpolar/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar.unselected"
-    _path_str = "barpolar.unselected.marker"
+    _parent_path_str = 'barpolar.unselected'
+    _path_str = 'barpolar.unselected.marker'
     _valid_props = {"color", "opacity"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -47,11 +51,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -63,8 +67,12 @@ def _prop_descriptions(self):
             Sets the marker opacity of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -85,9 +93,9 @@ def __init__(self, arg=None, color=None, opacity=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -97,17 +105,17 @@ def __init__(self, arg=None, color=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.barpolar.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/barpolar/unselected/_textfont.py b/plotly/graph_objs/barpolar/unselected/_textfont.py
index aae918804a6..11c11a85258 100644
--- a/plotly/graph_objs/barpolar/unselected/_textfont.py
+++ b/plotly/graph_objs/barpolar/unselected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "barpolar.unselected"
-    _path_str = "barpolar.unselected.textfont"
+    _parent_path_str = 'barpolar.unselected'
+    _path_str = 'barpolar.unselected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -41,8 +45,11 @@ def _prop_descriptions(self):
             Sets the text font color of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -60,9 +67,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -72,16 +79,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.barpolar.unselected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.barpolar.unselected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.barpolar.unselected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/box/__init__.py b/plotly/graph_objs/box/__init__.py
index 230fc72eb28..56a64a48de8 100644
--- a/plotly/graph_objs/box/__init__.py
+++ b/plotly/graph_objs/box/__init__.py
@@ -1,16 +1,24 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._marker import Marker
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._unselected import Unselected
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._marker.Marker', '._selected.Selected', '._stream.Stream', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".selected", ".unselected"],
-    [
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._marker.Marker",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/box/_hoverlabel.py b/plotly/graph_objs/box/_hoverlabel.py
index 726a111b1a5..add631ceb85 100644
--- a/plotly/graph_objs/box/_hoverlabel.py
+++ b/plotly/graph_objs/box/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "box"
-    _path_str = "box.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'box'
+    _path_str = 'box.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.box.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.box.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.box.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.box.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/box/_legendgrouptitle.py b/plotly/graph_objs/box/_legendgrouptitle.py
index 870c4eba20f..6dc68969b54 100644
--- a/plotly/graph_objs/box/_legendgrouptitle.py
+++ b/plotly/graph_objs/box/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "box"
-    _path_str = "box.legendgrouptitle"
+    _parent_path_str = 'box'
+    _path_str = 'box.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.box.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.box.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.box.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.box.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/box/_line.py b/plotly/graph_objs/box/_line.py
index c8de46243d7..c1eba9140e6 100644
--- a/plotly/graph_objs/box/_line.py
+++ b/plotly/graph_objs/box/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "box"
-    _path_str = "box.line"
+    _parent_path_str = 'box'
+    _path_str = 'box.line'
     _valid_props = {"color", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def width(self):
@@ -45,11 +49,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         width
             Sets the width (in px) of line bounding the box(es).
         """
-
-    def __init__(self, arg=None, color=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -78,9 +86,9 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -90,17 +98,17 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.box.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.box.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.box.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/box/_marker.py b/plotly/graph_objs/box/_marker.py
index 43a32e63c49..4938cd3efa3 100644
--- a/plotly/graph_objs/box/_marker.py
+++ b/plotly/graph_objs/box/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,17 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "box"
-    _path_str = "box.marker"
-    _valid_props = {
-        "angle",
-        "color",
-        "line",
-        "opacity",
-        "outliercolor",
-        "size",
-        "symbol",
-    }
+    _parent_path_str = 'box'
+    _path_str = 'box.marker'
+    _valid_props = {"angle", "color", "line", "opacity", "outliercolor", "size", "symbol"}
 
     @property
     def angle(self):
@@ -33,11 +29,11 @@ def angle(self):
         -------
         int|float
         """
-        return self["angle"]
+        return self['angle']
 
     @angle.setter
     def angle(self, val):
-        self["angle"] = val
+        self['angle'] = val
 
     @property
     def color(self):
@@ -58,11 +54,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def line(self):
@@ -77,11 +73,11 @@ def line(self):
         -------
         plotly.graph_objs.box.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def opacity(self):
@@ -95,11 +91,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def outliercolor(self):
@@ -117,11 +113,11 @@ def outliercolor(self):
         -------
         str
         """
-        return self["outliercolor"]
+        return self['outliercolor']
 
     @outliercolor.setter
     def outliercolor(self, val):
-        self["outliercolor"] = val
+        self['outliercolor'] = val
 
     @property
     def size(self):
@@ -135,11 +131,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def symbol(self):
@@ -245,11 +241,11 @@ def symbol(self):
         -------
         Any
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def _prop_descriptions(self):
@@ -278,19 +274,17 @@ def _prop_descriptions(self):
             300 is equivalent to appending "-open-dot" or "dot-
             open" to a symbol name.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        angle=None,
-        color=None,
-        line=None,
-        opacity=None,
-        outliercolor=None,
-        size=None,
-        symbol=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            angle=None,
+            color=None,
+            line=None,
+            opacity=None,
+            outliercolor=None,
+            size=None,
+            symbol=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -327,9 +321,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -339,22 +333,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.box.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.box.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("angle", arg, angle)
-        self._set_property("color", arg, color)
-        self._set_property("line", arg, line)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("outliercolor", arg, outliercolor)
-        self._set_property("size", arg, size)
-        self._set_property("symbol", arg, symbol)
+an instance of :class:`plotly.graph_objs.box.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('angle', arg, angle)
+        self._set_property('color', arg, color)
+        self._set_property('line', arg, line)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('outliercolor', arg, outliercolor)
+        self._set_property('size', arg, size)
+        self._set_property('symbol', arg, symbol)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/box/_selected.py b/plotly/graph_objs/box/_selected.py
index f7da4088fac..23c151f3610 100644
--- a/plotly/graph_objs/box/_selected.py
+++ b/plotly/graph_objs/box/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "box"
-    _path_str = "box.selected"
+    _parent_path_str = 'box'
+    _path_str = 'box.selected'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.box.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.box.selected.Marker`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -55,9 +62,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -67,16 +74,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.box.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.box.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.box.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/box/_stream.py b/plotly/graph_objs/box/_stream.py
index b6ddbeb38aa..c42baf3a05d 100644
--- a/plotly/graph_objs/box/_stream.py
+++ b/plotly/graph_objs/box/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "box"
-    _path_str = "box.stream"
+    _parent_path_str = 'box'
+    _path_str = 'box.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.box.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.box.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.box.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/box/_unselected.py b/plotly/graph_objs/box/_unselected.py
index 41aea7e6c75..69379e2b92d 100644
--- a/plotly/graph_objs/box/_unselected.py
+++ b/plotly/graph_objs/box/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "box"
-    _path_str = "box.unselected"
+    _parent_path_str = 'box'
+    _path_str = 'box.unselected'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.box.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.box.unselected.Marker`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.box.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.box.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.box.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/box/hoverlabel/__init__.py b/plotly/graph_objs/box/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/box/hoverlabel/__init__.py
+++ b/plotly/graph_objs/box/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/box/hoverlabel/_font.py b/plotly/graph_objs/box/hoverlabel/_font.py
index fb612021571..40d80d57ae5 100644
--- a/plotly/graph_objs/box/hoverlabel/_font.py
+++ b/plotly/graph_objs/box/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "box.hoverlabel"
-    _path_str = "box.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'box.hoverlabel'
+    _path_str = 'box.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.box.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.box.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.box.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/box/legendgrouptitle/__init__.py b/plotly/graph_objs/box/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/box/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/box/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/box/legendgrouptitle/_font.py b/plotly/graph_objs/box/legendgrouptitle/_font.py
index 659f326c391..bda990c5978 100644
--- a/plotly/graph_objs/box/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/box/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "box.legendgrouptitle"
-    _path_str = "box.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'box.legendgrouptitle'
+    _path_str = 'box.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.box.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.box.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.box.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/box/marker/__init__.py b/plotly/graph_objs/box/marker/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/box/marker/__init__.py
+++ b/plotly/graph_objs/box/marker/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/box/marker/_line.py b/plotly/graph_objs/box/marker/_line.py
index d2c4abdaa06..c7509e817c6 100644
--- a/plotly/graph_objs/box/marker/_line.py
+++ b/plotly/graph_objs/box/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "box.marker"
-    _path_str = "box.marker.line"
+    _parent_path_str = 'box.marker'
+    _path_str = 'box.marker.line'
     _valid_props = {"color", "outliercolor", "outlierwidth", "width"}
 
     @property
@@ -30,11 +34,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def outliercolor(self):
@@ -53,11 +57,11 @@ def outliercolor(self):
         -------
         str
         """
-        return self["outliercolor"]
+        return self['outliercolor']
 
     @outliercolor.setter
     def outliercolor(self, val):
-        self["outliercolor"] = val
+        self['outliercolor'] = val
 
     @property
     def outlierwidth(self):
@@ -72,11 +76,11 @@ def outlierwidth(self):
         -------
         int|float
         """
-        return self["outlierwidth"]
+        return self['outlierwidth']
 
     @outlierwidth.setter
     def outlierwidth(self, val):
-        self["outlierwidth"] = val
+        self['outlierwidth'] = val
 
     @property
     def width(self):
@@ -90,11 +94,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,16 +119,14 @@ def _prop_descriptions(self):
             Sets the width (in px) of the lines bounding the marker
             points.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        outliercolor=None,
-        outlierwidth=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            outliercolor=None,
+            outlierwidth=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -154,9 +156,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -166,19 +168,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.box.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.box.marker.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.box.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("outliercolor", arg, outliercolor)
-        self._set_property("outlierwidth", arg, outlierwidth)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('outliercolor', arg, outliercolor)
+        self._set_property('outlierwidth', arg, outlierwidth)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/box/selected/__init__.py b/plotly/graph_objs/box/selected/__init__.py
index 17b6d670bc4..5abe297c1ca 100644
--- a/plotly/graph_objs/box/selected/__init__.py
+++ b/plotly/graph_objs/box/selected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._marker.Marker"])
diff --git a/plotly/graph_objs/box/selected/_marker.py b/plotly/graph_objs/box/selected/_marker.py
index 15ce087219a..8357aea3f46 100644
--- a/plotly/graph_objs/box/selected/_marker.py
+++ b/plotly/graph_objs/box/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "box.selected"
-    _path_str = "box.selected.marker"
+    _parent_path_str = 'box.selected'
+    _path_str = 'box.selected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         size
             Sets the marker size of selected points.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.box.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.box.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.box.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/box/unselected/__init__.py b/plotly/graph_objs/box/unselected/__init__.py
index 17b6d670bc4..5abe297c1ca 100644
--- a/plotly/graph_objs/box/unselected/__init__.py
+++ b/plotly/graph_objs/box/unselected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._marker.Marker"])
diff --git a/plotly/graph_objs/box/unselected/_marker.py b/plotly/graph_objs/box/unselected/_marker.py
index 2e019020264..5250b4c59fa 100644
--- a/plotly/graph_objs/box/unselected/_marker.py
+++ b/plotly/graph_objs/box/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "box.unselected"
-    _path_str = "box.unselected.marker"
+    _parent_path_str = 'box.unselected'
+    _path_str = 'box.unselected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -47,11 +51,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -66,11 +70,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
             Sets the marker size of unselected points, applied only
             when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.box.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.box.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.box.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/candlestick/__init__.py b/plotly/graph_objs/candlestick/__init__.py
index 4b308ef8c3e..c26dcfef0af 100644
--- a/plotly/graph_objs/candlestick/__init__.py
+++ b/plotly/graph_objs/candlestick/__init__.py
@@ -1,15 +1,22 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._decreasing import Decreasing
+    from ._hoverlabel import Hoverlabel
+    from ._increasing import Increasing
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._stream import Stream
+    from . import decreasing
+    from . import hoverlabel
+    from . import increasing
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.decreasing', '.hoverlabel', '.increasing', '.legendgrouptitle'],
+        ['._decreasing.Decreasing', '._hoverlabel.Hoverlabel', '._increasing.Increasing', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._stream.Stream']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".decreasing", ".hoverlabel", ".increasing", ".legendgrouptitle"],
-    [
-        "._decreasing.Decreasing",
-        "._hoverlabel.Hoverlabel",
-        "._increasing.Increasing",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._stream.Stream",
-    ],
-)
diff --git a/plotly/graph_objs/candlestick/_decreasing.py b/plotly/graph_objs/candlestick/_decreasing.py
index c3464b82a26..58d6420fbaa 100644
--- a/plotly/graph_objs/candlestick/_decreasing.py
+++ b/plotly/graph_objs/candlestick/_decreasing.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Decreasing(_BaseTraceHierarchyType):
 
-    _parent_path_str = "candlestick"
-    _path_str = "candlestick.decreasing"
+    _parent_path_str = 'candlestick'
+    _path_str = 'candlestick.decreasing'
     _valid_props = {"fillcolor", "line"}
 
     @property
@@ -29,11 +33,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def line(self):
@@ -48,11 +52,11 @@ def line(self):
         -------
         plotly.graph_objs.candlestick.decreasing.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def _prop_descriptions(self):
@@ -65,8 +69,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.candlestick.decreasing.Lin
             e` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, fillcolor=None, line=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            fillcolor=None,
+            line=None,
+            **kwargs
+        ):
         """
         Construct a new Decreasing object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, fillcolor=None, line=None, **kwargs):
         -------
         Decreasing
         """
-        super().__init__("decreasing")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('decreasing')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, fillcolor=None, line=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.candlestick.Decreasing
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.candlestick.Decreasing`"""
-            )
+an instance of :class:`plotly.graph_objs.candlestick.Decreasing`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("line", arg, line)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('line', arg, line)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/candlestick/_hoverlabel.py b/plotly/graph_objs/candlestick/_hoverlabel.py
index deb894c854e..cb4bb9623f2 100644
--- a/plotly/graph_objs/candlestick/_hoverlabel.py
+++ b/plotly/graph_objs/candlestick/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,20 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "candlestick"
-    _path_str = "candlestick.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-        "split",
-    }
+    _parent_path_str = 'candlestick'
+    _path_str = 'candlestick.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc", "split"}
 
     @property
     def align(self):
@@ -38,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -56,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -79,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -97,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -120,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -139,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -160,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.candlestick.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -185,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -204,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def split(self):
@@ -223,11 +216,11 @@ def split(self):
         -------
         bool
         """
-        return self["split"]
+        return self['split']
 
     @split.setter
     def split(self, val):
-        self["split"] = val
+        self['split'] = val
 
     @property
     def _prop_descriptions(self):
@@ -268,22 +261,20 @@ def _prop_descriptions(self):
             Show hover information (open, close, high, low) in
             separate labels.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        split=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            split=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -333,9 +324,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -345,25 +336,25 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.candlestick.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.candlestick.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
-        self._set_property("split", arg, split)
+an instance of :class:`plotly.graph_objs.candlestick.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
+        self._set_property('split', arg, split)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/candlestick/_increasing.py b/plotly/graph_objs/candlestick/_increasing.py
index c3bc170eef9..a3145d76216 100644
--- a/plotly/graph_objs/candlestick/_increasing.py
+++ b/plotly/graph_objs/candlestick/_increasing.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Increasing(_BaseTraceHierarchyType):
 
-    _parent_path_str = "candlestick"
-    _path_str = "candlestick.increasing"
+    _parent_path_str = 'candlestick'
+    _path_str = 'candlestick.increasing'
     _valid_props = {"fillcolor", "line"}
 
     @property
@@ -29,11 +33,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def line(self):
@@ -48,11 +52,11 @@ def line(self):
         -------
         plotly.graph_objs.candlestick.increasing.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def _prop_descriptions(self):
@@ -65,8 +69,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.candlestick.increasing.Lin
             e` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, fillcolor=None, line=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            fillcolor=None,
+            line=None,
+            **kwargs
+        ):
         """
         Construct a new Increasing object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, fillcolor=None, line=None, **kwargs):
         -------
         Increasing
         """
-        super().__init__("increasing")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('increasing')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, fillcolor=None, line=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.candlestick.Increasing
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.candlestick.Increasing`"""
-            )
+an instance of :class:`plotly.graph_objs.candlestick.Increasing`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("line", arg, line)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('line', arg, line)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/candlestick/_legendgrouptitle.py b/plotly/graph_objs/candlestick/_legendgrouptitle.py
index f26b1a47744..f618f16fa5e 100644
--- a/plotly/graph_objs/candlestick/_legendgrouptitle.py
+++ b/plotly/graph_objs/candlestick/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "candlestick"
-    _path_str = "candlestick.legendgrouptitle"
+    _parent_path_str = 'candlestick'
+    _path_str = 'candlestick.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.candlestick.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.candlestick.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.candlestick.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.candlestick.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/candlestick/_line.py b/plotly/graph_objs/candlestick/_line.py
index 557c4d2a6d6..3732593ae41 100644
--- a/plotly/graph_objs/candlestick/_line.py
+++ b/plotly/graph_objs/candlestick/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "candlestick"
-    _path_str = "candlestick.line"
+    _parent_path_str = 'candlestick'
+    _path_str = 'candlestick.line'
     _valid_props = {"width"}
 
     @property
@@ -25,11 +29,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -40,8 +44,11 @@ def _prop_descriptions(self):
             direction via `increasing.line.width` and
             `decreasing.line.width`.
         """
-
-    def __init__(self, arg=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -61,9 +68,9 @@ def __init__(self, arg=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -73,16 +80,16 @@ def __init__(self, arg=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.candlestick.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.candlestick.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.candlestick.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("width", arg, width)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/candlestick/_stream.py b/plotly/graph_objs/candlestick/_stream.py
index 5fd66aebaad..5c929008286 100644
--- a/plotly/graph_objs/candlestick/_stream.py
+++ b/plotly/graph_objs/candlestick/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "candlestick"
-    _path_str = "candlestick.stream"
+    _parent_path_str = 'candlestick'
+    _path_str = 'candlestick.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.candlestick.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.candlestick.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.candlestick.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/candlestick/decreasing/__init__.py b/plotly/graph_objs/candlestick/decreasing/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/candlestick/decreasing/__init__.py
+++ b/plotly/graph_objs/candlestick/decreasing/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/candlestick/decreasing/_line.py b/plotly/graph_objs/candlestick/decreasing/_line.py
index 7fad2eb4672..f860765d735 100644
--- a/plotly/graph_objs/candlestick/decreasing/_line.py
+++ b/plotly/graph_objs/candlestick/decreasing/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "candlestick.decreasing"
-    _path_str = "candlestick.decreasing.line"
+    _parent_path_str = 'candlestick.decreasing'
+    _path_str = 'candlestick.decreasing.line'
     _valid_props = {"color", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def width(self):
@@ -45,11 +49,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         width
             Sets the width (in px) of line bounding the box(es).
         """
-
-    def __init__(self, arg=None, color=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.candlestick.decreasing.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.candlestick.decreasing.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.candlestick.decreasing.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/candlestick/hoverlabel/__init__.py b/plotly/graph_objs/candlestick/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/candlestick/hoverlabel/__init__.py
+++ b/plotly/graph_objs/candlestick/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/candlestick/hoverlabel/_font.py b/plotly/graph_objs/candlestick/hoverlabel/_font.py
index 33074f6dece..17657f3d539 100644
--- a/plotly/graph_objs/candlestick/hoverlabel/_font.py
+++ b/plotly/graph_objs/candlestick/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "candlestick.hoverlabel"
-    _path_str = "candlestick.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'candlestick.hoverlabel'
+    _path_str = 'candlestick.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.candlestick.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.candlestick.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.candlestick.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/candlestick/increasing/__init__.py b/plotly/graph_objs/candlestick/increasing/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/candlestick/increasing/__init__.py
+++ b/plotly/graph_objs/candlestick/increasing/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/candlestick/increasing/_line.py b/plotly/graph_objs/candlestick/increasing/_line.py
index b3b1f430348..c4284d1cf4e 100644
--- a/plotly/graph_objs/candlestick/increasing/_line.py
+++ b/plotly/graph_objs/candlestick/increasing/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "candlestick.increasing"
-    _path_str = "candlestick.increasing.line"
+    _parent_path_str = 'candlestick.increasing'
+    _path_str = 'candlestick.increasing.line'
     _valid_props = {"color", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def width(self):
@@ -45,11 +49,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         width
             Sets the width (in px) of line bounding the box(es).
         """
-
-    def __init__(self, arg=None, color=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.candlestick.increasing.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.candlestick.increasing.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.candlestick.increasing.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/candlestick/legendgrouptitle/__init__.py b/plotly/graph_objs/candlestick/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/candlestick/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/candlestick/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/candlestick/legendgrouptitle/_font.py b/plotly/graph_objs/candlestick/legendgrouptitle/_font.py
index 69ba0e0bdbb..08eb4cd967f 100644
--- a/plotly/graph_objs/candlestick/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/candlestick/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "candlestick.legendgrouptitle"
-    _path_str = "candlestick.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'candlestick.legendgrouptitle'
+    _path_str = 'candlestick.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.candlestick.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.candlestick.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.candlestick.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/carpet/__init__.py b/plotly/graph_objs/carpet/__init__.py
index 0c15645762a..0a5c68442ea 100644
--- a/plotly/graph_objs/carpet/__init__.py
+++ b/plotly/graph_objs/carpet/__init__.py
@@ -1,14 +1,20 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._aaxis import Aaxis
+    from ._baxis import Baxis
+    from ._font import Font
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._stream import Stream
+    from . import aaxis
+    from . import baxis
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.aaxis', '.baxis', '.legendgrouptitle'],
+        ['._aaxis.Aaxis', '._baxis.Baxis', '._font.Font', '._legendgrouptitle.Legendgrouptitle', '._stream.Stream']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".aaxis", ".baxis", ".legendgrouptitle"],
-    [
-        "._aaxis.Aaxis",
-        "._baxis.Baxis",
-        "._font.Font",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._stream.Stream",
-    ],
-)
diff --git a/plotly/graph_objs/carpet/_aaxis.py b/plotly/graph_objs/carpet/_aaxis.py
index 63ac58e94dc..81eb30ffb3f 100644
--- a/plotly/graph_objs/carpet/_aaxis.py
+++ b/plotly/graph_objs/carpet/_aaxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,68 +11,9 @@
 
 class Aaxis(_BaseTraceHierarchyType):
 
-    _parent_path_str = "carpet"
-    _path_str = "carpet.aaxis"
-    _valid_props = {
-        "arraydtick",
-        "arraytick0",
-        "autorange",
-        "autotypenumbers",
-        "categoryarray",
-        "categoryarraysrc",
-        "categoryorder",
-        "cheatertype",
-        "color",
-        "dtick",
-        "endline",
-        "endlinecolor",
-        "endlinewidth",
-        "exponentformat",
-        "fixedrange",
-        "gridcolor",
-        "griddash",
-        "gridwidth",
-        "labelalias",
-        "labelpadding",
-        "labelprefix",
-        "labelsuffix",
-        "linecolor",
-        "linewidth",
-        "minexponent",
-        "minorgridcolor",
-        "minorgridcount",
-        "minorgriddash",
-        "minorgridwidth",
-        "nticks",
-        "range",
-        "rangemode",
-        "separatethousands",
-        "showexponent",
-        "showgrid",
-        "showline",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "smoothing",
-        "startline",
-        "startlinecolor",
-        "startlinewidth",
-        "tick0",
-        "tickangle",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "tickmode",
-        "tickprefix",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "title",
-        "type",
-    }
+    _parent_path_str = 'carpet'
+    _path_str = 'carpet.aaxis'
+    _valid_props = {"arraydtick", "arraytick0", "autorange", "autotypenumbers", "categoryarray", "categoryarraysrc", "categoryorder", "cheatertype", "color", "dtick", "endline", "endlinecolor", "endlinewidth", "exponentformat", "fixedrange", "gridcolor", "griddash", "gridwidth", "labelalias", "labelpadding", "labelprefix", "labelsuffix", "linecolor", "linewidth", "minexponent", "minorgridcolor", "minorgridcount", "minorgriddash", "minorgridwidth", "nticks", "range", "rangemode", "separatethousands", "showexponent", "showgrid", "showline", "showticklabels", "showtickprefix", "showticksuffix", "smoothing", "startline", "startlinecolor", "startlinewidth", "tick0", "tickangle", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "tickmode", "tickprefix", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "title", "type"}
 
     @property
     def arraydtick(self):
@@ -83,11 +28,11 @@ def arraydtick(self):
         -------
         int
         """
-        return self["arraydtick"]
+        return self['arraydtick']
 
     @arraydtick.setter
     def arraydtick(self, val):
-        self["arraydtick"] = val
+        self['arraydtick'] = val
 
     @property
     def arraytick0(self):
@@ -102,11 +47,11 @@ def arraytick0(self):
         -------
         int
         """
-        return self["arraytick0"]
+        return self['arraytick0']
 
     @arraytick0.setter
     def arraytick0(self, val):
-        self["arraytick0"] = val
+        self['arraytick0'] = val
 
     @property
     def autorange(self):
@@ -123,11 +68,11 @@ def autorange(self):
         -------
         Any
         """
-        return self["autorange"]
+        return self['autorange']
 
     @autorange.setter
     def autorange(self, val):
-        self["autorange"] = val
+        self['autorange'] = val
 
     @property
     def autotypenumbers(self):
@@ -145,11 +90,11 @@ def autotypenumbers(self):
         -------
         Any
         """
-        return self["autotypenumbers"]
+        return self['autotypenumbers']
 
     @autotypenumbers.setter
     def autotypenumbers(self, val):
-        self["autotypenumbers"] = val
+        self['autotypenumbers'] = val
 
     @property
     def categoryarray(self):
@@ -165,11 +110,11 @@ def categoryarray(self):
         -------
         numpy.ndarray
         """
-        return self["categoryarray"]
+        return self['categoryarray']
 
     @categoryarray.setter
     def categoryarray(self, val):
-        self["categoryarray"] = val
+        self['categoryarray'] = val
 
     @property
     def categoryarraysrc(self):
@@ -184,11 +129,11 @@ def categoryarraysrc(self):
         -------
         str
         """
-        return self["categoryarraysrc"]
+        return self['categoryarraysrc']
 
     @categoryarraysrc.setter
     def categoryarraysrc(self, val):
-        self["categoryarraysrc"] = val
+        self['categoryarraysrc'] = val
 
     @property
     def categoryorder(self):
@@ -214,11 +159,11 @@ def categoryorder(self):
         -------
         Any
         """
-        return self["categoryorder"]
+        return self['categoryorder']
 
     @categoryorder.setter
     def categoryorder(self, val):
-        self["categoryorder"] = val
+        self['categoryorder'] = val
 
     @property
     def cheatertype(self):
@@ -231,11 +176,11 @@ def cheatertype(self):
         -------
         Any
         """
-        return self["cheatertype"]
+        return self['cheatertype']
 
     @cheatertype.setter
     def cheatertype(self, val):
-        self["cheatertype"] = val
+        self['cheatertype'] = val
 
     @property
     def color(self):
@@ -256,11 +201,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dtick(self):
@@ -274,11 +219,11 @@ def dtick(self):
         -------
         int|float
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def endline(self):
@@ -294,11 +239,11 @@ def endline(self):
         -------
         bool
         """
-        return self["endline"]
+        return self['endline']
 
     @endline.setter
     def endline(self, val):
-        self["endline"] = val
+        self['endline'] = val
 
     @property
     def endlinecolor(self):
@@ -316,11 +261,11 @@ def endlinecolor(self):
         -------
         str
         """
-        return self["endlinecolor"]
+        return self['endlinecolor']
 
     @endlinecolor.setter
     def endlinecolor(self, val):
-        self["endlinecolor"] = val
+        self['endlinecolor'] = val
 
     @property
     def endlinewidth(self):
@@ -334,11 +279,11 @@ def endlinewidth(self):
         -------
         int|float
         """
-        return self["endlinewidth"]
+        return self['endlinewidth']
 
     @endlinewidth.setter
     def endlinewidth(self, val):
-        self["endlinewidth"] = val
+        self['endlinewidth'] = val
 
     @property
     def exponentformat(self):
@@ -357,11 +302,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def fixedrange(self):
@@ -376,11 +321,11 @@ def fixedrange(self):
         -------
         bool
         """
-        return self["fixedrange"]
+        return self['fixedrange']
 
     @fixedrange.setter
     def fixedrange(self, val):
-        self["fixedrange"] = val
+        self['fixedrange'] = val
 
     @property
     def gridcolor(self):
@@ -398,11 +343,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def griddash(self):
@@ -422,11 +367,11 @@ def griddash(self):
         -------
         str
         """
-        return self["griddash"]
+        return self['griddash']
 
     @griddash.setter
     def griddash(self, val):
-        self["griddash"] = val
+        self['griddash'] = val
 
     @property
     def gridwidth(self):
@@ -440,11 +385,11 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def labelalias(self):
@@ -465,11 +410,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def labelpadding(self):
@@ -483,11 +428,11 @@ def labelpadding(self):
         -------
         int
         """
-        return self["labelpadding"]
+        return self['labelpadding']
 
     @labelpadding.setter
     def labelpadding(self, val):
-        self["labelpadding"] = val
+        self['labelpadding'] = val
 
     @property
     def labelprefix(self):
@@ -502,11 +447,11 @@ def labelprefix(self):
         -------
         str
         """
-        return self["labelprefix"]
+        return self['labelprefix']
 
     @labelprefix.setter
     def labelprefix(self, val):
-        self["labelprefix"] = val
+        self['labelprefix'] = val
 
     @property
     def labelsuffix(self):
@@ -521,11 +466,11 @@ def labelsuffix(self):
         -------
         str
         """
-        return self["labelsuffix"]
+        return self['labelsuffix']
 
     @labelsuffix.setter
     def labelsuffix(self, val):
-        self["labelsuffix"] = val
+        self['labelsuffix'] = val
 
     @property
     def linecolor(self):
@@ -543,11 +488,11 @@ def linecolor(self):
         -------
         str
         """
-        return self["linecolor"]
+        return self['linecolor']
 
     @linecolor.setter
     def linecolor(self, val):
-        self["linecolor"] = val
+        self['linecolor'] = val
 
     @property
     def linewidth(self):
@@ -561,11 +506,11 @@ def linewidth(self):
         -------
         int|float
         """
-        return self["linewidth"]
+        return self['linewidth']
 
     @linewidth.setter
     def linewidth(self, val):
-        self["linewidth"] = val
+        self['linewidth'] = val
 
     @property
     def minexponent(self):
@@ -579,11 +524,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def minorgridcolor(self):
@@ -601,11 +546,11 @@ def minorgridcolor(self):
         -------
         str
         """
-        return self["minorgridcolor"]
+        return self['minorgridcolor']
 
     @minorgridcolor.setter
     def minorgridcolor(self, val):
-        self["minorgridcolor"] = val
+        self['minorgridcolor'] = val
 
     @property
     def minorgridcount(self):
@@ -620,11 +565,11 @@ def minorgridcount(self):
         -------
         int
         """
-        return self["minorgridcount"]
+        return self['minorgridcount']
 
     @minorgridcount.setter
     def minorgridcount(self, val):
-        self["minorgridcount"] = val
+        self['minorgridcount'] = val
 
     @property
     def minorgriddash(self):
@@ -644,11 +589,11 @@ def minorgriddash(self):
         -------
         str
         """
-        return self["minorgriddash"]
+        return self['minorgriddash']
 
     @minorgriddash.setter
     def minorgriddash(self, val):
-        self["minorgriddash"] = val
+        self['minorgriddash'] = val
 
     @property
     def minorgridwidth(self):
@@ -662,11 +607,11 @@ def minorgridwidth(self):
         -------
         int|float
         """
-        return self["minorgridwidth"]
+        return self['minorgridwidth']
 
     @minorgridwidth.setter
     def minorgridwidth(self, val):
-        self["minorgridwidth"] = val
+        self['minorgridwidth'] = val
 
     @property
     def nticks(self):
@@ -684,39 +629,39 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def range(self):
         """
-            Sets the range of this axis. If the axis `type` is "log", then
-            you must take the log of your desired range (e.g. to set the
-            range from 1 to 100, set the range from 0 to 2). If the axis
-            `type` is "date", it should be date strings, like date data,
-            though Date objects and unix milliseconds will be accepted and
-            converted to strings. If the axis `type` is "category", it
-            should be numbers, using the scale where each category is
-            assigned a serial number from zero in the order it appears.
-
-            The 'range' property is an info array that may be specified as:
+        Sets the range of this axis. If the axis `type` is "log", then
+        you must take the log of your desired range (e.g. to set the
+        range from 1 to 100, set the range from 0 to 2). If the axis
+        `type` is "date", it should be date strings, like date data,
+        though Date objects and unix milliseconds will be accepted and
+        converted to strings. If the axis `type` is "category", it
+        should be numbers, using the scale where each category is
+        assigned a serial number from zero in the order it appears.
+
+        The 'range' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'range[0]' property accepts values of any type
+    (1) The 'range[1]' property accepts values of any type
 
-            * a list or tuple of 2 elements where:
-        (0) The 'range[0]' property accepts values of any type
-        (1) The 'range[1]' property accepts values of any type
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["range"]
+        return self['range']
 
     @range.setter
     def range(self, val):
-        self["range"] = val
+        self['range'] = val
 
     @property
     def rangemode(self):
@@ -734,11 +679,11 @@ def rangemode(self):
         -------
         Any
         """
-        return self["rangemode"]
+        return self['rangemode']
 
     @rangemode.setter
     def rangemode(self, val):
-        self["rangemode"] = val
+        self['rangemode'] = val
 
     @property
     def separatethousands(self):
@@ -752,11 +697,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -774,11 +719,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showgrid(self):
@@ -793,11 +738,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def showline(self):
@@ -811,11 +756,11 @@ def showline(self):
         -------
         bool
         """
-        return self["showline"]
+        return self['showline']
 
     @showline.setter
     def showline(self, val):
-        self["showline"] = val
+        self['showline'] = val
 
     @property
     def showticklabels(self):
@@ -831,11 +776,11 @@ def showticklabels(self):
         -------
         Any
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -853,11 +798,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -872,11 +817,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def smoothing(self):
@@ -888,11 +833,11 @@ def smoothing(self):
         -------
         int|float
         """
-        return self["smoothing"]
+        return self['smoothing']
 
     @smoothing.setter
     def smoothing(self, val):
-        self["smoothing"] = val
+        self['smoothing'] = val
 
     @property
     def startline(self):
@@ -908,11 +853,11 @@ def startline(self):
         -------
         bool
         """
-        return self["startline"]
+        return self['startline']
 
     @startline.setter
     def startline(self, val):
-        self["startline"] = val
+        self['startline'] = val
 
     @property
     def startlinecolor(self):
@@ -930,11 +875,11 @@ def startlinecolor(self):
         -------
         str
         """
-        return self["startlinecolor"]
+        return self['startlinecolor']
 
     @startlinecolor.setter
     def startlinecolor(self, val):
-        self["startlinecolor"] = val
+        self['startlinecolor'] = val
 
     @property
     def startlinewidth(self):
@@ -948,11 +893,11 @@ def startlinewidth(self):
         -------
         int|float
         """
-        return self["startlinewidth"]
+        return self['startlinewidth']
 
     @startlinewidth.setter
     def startlinewidth(self, val):
-        self["startlinewidth"] = val
+        self['startlinewidth'] = val
 
     @property
     def tick0(self):
@@ -966,11 +911,11 @@ def tick0(self):
         -------
         int|float
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -988,11 +933,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickfont(self):
@@ -1009,11 +954,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.carpet.aaxis.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -1037,11 +982,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -1056,11 +1001,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.carpet.aaxis.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -1080,11 +1025,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.carpet.aaxis.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def tickmode(self):
@@ -1097,11 +1042,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -1116,11 +1061,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticksuffix(self):
@@ -1135,11 +1080,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -1155,11 +1100,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -1173,11 +1118,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -1192,11 +1137,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -1210,11 +1155,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def title(self):
@@ -1229,11 +1174,11 @@ def title(self):
         -------
         plotly.graph_objs.carpet.aaxis.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def type(self):
@@ -1250,11 +1195,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1476,70 +1421,68 @@ def _prop_descriptions(self):
             determined the axis type by looking into the data of
             the traces that referenced the axis in question.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        arraydtick=None,
-        arraytick0=None,
-        autorange=None,
-        autotypenumbers=None,
-        categoryarray=None,
-        categoryarraysrc=None,
-        categoryorder=None,
-        cheatertype=None,
-        color=None,
-        dtick=None,
-        endline=None,
-        endlinecolor=None,
-        endlinewidth=None,
-        exponentformat=None,
-        fixedrange=None,
-        gridcolor=None,
-        griddash=None,
-        gridwidth=None,
-        labelalias=None,
-        labelpadding=None,
-        labelprefix=None,
-        labelsuffix=None,
-        linecolor=None,
-        linewidth=None,
-        minexponent=None,
-        minorgridcolor=None,
-        minorgridcount=None,
-        minorgriddash=None,
-        minorgridwidth=None,
-        nticks=None,
-        range=None,
-        rangemode=None,
-        separatethousands=None,
-        showexponent=None,
-        showgrid=None,
-        showline=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        smoothing=None,
-        startline=None,
-        startlinecolor=None,
-        startlinewidth=None,
-        tick0=None,
-        tickangle=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        tickmode=None,
-        tickprefix=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        title=None,
-        type=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            arraydtick=None,
+            arraytick0=None,
+            autorange=None,
+            autotypenumbers=None,
+            categoryarray=None,
+            categoryarraysrc=None,
+            categoryorder=None,
+            cheatertype=None,
+            color=None,
+            dtick=None,
+            endline=None,
+            endlinecolor=None,
+            endlinewidth=None,
+            exponentformat=None,
+            fixedrange=None,
+            gridcolor=None,
+            griddash=None,
+            gridwidth=None,
+            labelalias=None,
+            labelpadding=None,
+            labelprefix=None,
+            labelsuffix=None,
+            linecolor=None,
+            linewidth=None,
+            minexponent=None,
+            minorgridcolor=None,
+            minorgridcount=None,
+            minorgriddash=None,
+            minorgridwidth=None,
+            nticks=None,
+            range=None,
+            rangemode=None,
+            separatethousands=None,
+            showexponent=None,
+            showgrid=None,
+            showline=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            smoothing=None,
+            startline=None,
+            startlinecolor=None,
+            startlinewidth=None,
+            tick0=None,
+            tickangle=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            tickmode=None,
+            tickprefix=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            title=None,
+            type=None,
+            **kwargs
+        ):
         """
         Construct a new Aaxis object
 
@@ -1769,9 +1712,9 @@ def __init__(
         -------
         Aaxis
         """
-        super().__init__("aaxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('aaxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1781,73 +1724,73 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.carpet.Aaxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.carpet.Aaxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("arraydtick", arg, arraydtick)
-        self._set_property("arraytick0", arg, arraytick0)
-        self._set_property("autorange", arg, autorange)
-        self._set_property("autotypenumbers", arg, autotypenumbers)
-        self._set_property("categoryarray", arg, categoryarray)
-        self._set_property("categoryarraysrc", arg, categoryarraysrc)
-        self._set_property("categoryorder", arg, categoryorder)
-        self._set_property("cheatertype", arg, cheatertype)
-        self._set_property("color", arg, color)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("endline", arg, endline)
-        self._set_property("endlinecolor", arg, endlinecolor)
-        self._set_property("endlinewidth", arg, endlinewidth)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("fixedrange", arg, fixedrange)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("griddash", arg, griddash)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("labelpadding", arg, labelpadding)
-        self._set_property("labelprefix", arg, labelprefix)
-        self._set_property("labelsuffix", arg, labelsuffix)
-        self._set_property("linecolor", arg, linecolor)
-        self._set_property("linewidth", arg, linewidth)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("minorgridcolor", arg, minorgridcolor)
-        self._set_property("minorgridcount", arg, minorgridcount)
-        self._set_property("minorgriddash", arg, minorgriddash)
-        self._set_property("minorgridwidth", arg, minorgridwidth)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("range", arg, range)
-        self._set_property("rangemode", arg, rangemode)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("showline", arg, showline)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("smoothing", arg, smoothing)
-        self._set_property("startline", arg, startline)
-        self._set_property("startlinecolor", arg, startlinecolor)
-        self._set_property("startlinewidth", arg, startlinewidth)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("title", arg, title)
-        self._set_property("type", arg, type)
+an instance of :class:`plotly.graph_objs.carpet.Aaxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('arraydtick', arg, arraydtick)
+        self._set_property('arraytick0', arg, arraytick0)
+        self._set_property('autorange', arg, autorange)
+        self._set_property('autotypenumbers', arg, autotypenumbers)
+        self._set_property('categoryarray', arg, categoryarray)
+        self._set_property('categoryarraysrc', arg, categoryarraysrc)
+        self._set_property('categoryorder', arg, categoryorder)
+        self._set_property('cheatertype', arg, cheatertype)
+        self._set_property('color', arg, color)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('endline', arg, endline)
+        self._set_property('endlinecolor', arg, endlinecolor)
+        self._set_property('endlinewidth', arg, endlinewidth)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('fixedrange', arg, fixedrange)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('griddash', arg, griddash)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('labelpadding', arg, labelpadding)
+        self._set_property('labelprefix', arg, labelprefix)
+        self._set_property('labelsuffix', arg, labelsuffix)
+        self._set_property('linecolor', arg, linecolor)
+        self._set_property('linewidth', arg, linewidth)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('minorgridcolor', arg, minorgridcolor)
+        self._set_property('minorgridcount', arg, minorgridcount)
+        self._set_property('minorgriddash', arg, minorgriddash)
+        self._set_property('minorgridwidth', arg, minorgridwidth)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('range', arg, range)
+        self._set_property('rangemode', arg, rangemode)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('showline', arg, showline)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('smoothing', arg, smoothing)
+        self._set_property('startline', arg, startline)
+        self._set_property('startlinecolor', arg, startlinecolor)
+        self._set_property('startlinewidth', arg, startlinewidth)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('title', arg, title)
+        self._set_property('type', arg, type)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/carpet/_baxis.py b/plotly/graph_objs/carpet/_baxis.py
index 70dafa7233a..22e0275b6c3 100644
--- a/plotly/graph_objs/carpet/_baxis.py
+++ b/plotly/graph_objs/carpet/_baxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,68 +11,9 @@
 
 class Baxis(_BaseTraceHierarchyType):
 
-    _parent_path_str = "carpet"
-    _path_str = "carpet.baxis"
-    _valid_props = {
-        "arraydtick",
-        "arraytick0",
-        "autorange",
-        "autotypenumbers",
-        "categoryarray",
-        "categoryarraysrc",
-        "categoryorder",
-        "cheatertype",
-        "color",
-        "dtick",
-        "endline",
-        "endlinecolor",
-        "endlinewidth",
-        "exponentformat",
-        "fixedrange",
-        "gridcolor",
-        "griddash",
-        "gridwidth",
-        "labelalias",
-        "labelpadding",
-        "labelprefix",
-        "labelsuffix",
-        "linecolor",
-        "linewidth",
-        "minexponent",
-        "minorgridcolor",
-        "minorgridcount",
-        "minorgriddash",
-        "minorgridwidth",
-        "nticks",
-        "range",
-        "rangemode",
-        "separatethousands",
-        "showexponent",
-        "showgrid",
-        "showline",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "smoothing",
-        "startline",
-        "startlinecolor",
-        "startlinewidth",
-        "tick0",
-        "tickangle",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "tickmode",
-        "tickprefix",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "title",
-        "type",
-    }
+    _parent_path_str = 'carpet'
+    _path_str = 'carpet.baxis'
+    _valid_props = {"arraydtick", "arraytick0", "autorange", "autotypenumbers", "categoryarray", "categoryarraysrc", "categoryorder", "cheatertype", "color", "dtick", "endline", "endlinecolor", "endlinewidth", "exponentformat", "fixedrange", "gridcolor", "griddash", "gridwidth", "labelalias", "labelpadding", "labelprefix", "labelsuffix", "linecolor", "linewidth", "minexponent", "minorgridcolor", "minorgridcount", "minorgriddash", "minorgridwidth", "nticks", "range", "rangemode", "separatethousands", "showexponent", "showgrid", "showline", "showticklabels", "showtickprefix", "showticksuffix", "smoothing", "startline", "startlinecolor", "startlinewidth", "tick0", "tickangle", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "tickmode", "tickprefix", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "title", "type"}
 
     @property
     def arraydtick(self):
@@ -83,11 +28,11 @@ def arraydtick(self):
         -------
         int
         """
-        return self["arraydtick"]
+        return self['arraydtick']
 
     @arraydtick.setter
     def arraydtick(self, val):
-        self["arraydtick"] = val
+        self['arraydtick'] = val
 
     @property
     def arraytick0(self):
@@ -102,11 +47,11 @@ def arraytick0(self):
         -------
         int
         """
-        return self["arraytick0"]
+        return self['arraytick0']
 
     @arraytick0.setter
     def arraytick0(self, val):
-        self["arraytick0"] = val
+        self['arraytick0'] = val
 
     @property
     def autorange(self):
@@ -123,11 +68,11 @@ def autorange(self):
         -------
         Any
         """
-        return self["autorange"]
+        return self['autorange']
 
     @autorange.setter
     def autorange(self, val):
-        self["autorange"] = val
+        self['autorange'] = val
 
     @property
     def autotypenumbers(self):
@@ -145,11 +90,11 @@ def autotypenumbers(self):
         -------
         Any
         """
-        return self["autotypenumbers"]
+        return self['autotypenumbers']
 
     @autotypenumbers.setter
     def autotypenumbers(self, val):
-        self["autotypenumbers"] = val
+        self['autotypenumbers'] = val
 
     @property
     def categoryarray(self):
@@ -165,11 +110,11 @@ def categoryarray(self):
         -------
         numpy.ndarray
         """
-        return self["categoryarray"]
+        return self['categoryarray']
 
     @categoryarray.setter
     def categoryarray(self, val):
-        self["categoryarray"] = val
+        self['categoryarray'] = val
 
     @property
     def categoryarraysrc(self):
@@ -184,11 +129,11 @@ def categoryarraysrc(self):
         -------
         str
         """
-        return self["categoryarraysrc"]
+        return self['categoryarraysrc']
 
     @categoryarraysrc.setter
     def categoryarraysrc(self, val):
-        self["categoryarraysrc"] = val
+        self['categoryarraysrc'] = val
 
     @property
     def categoryorder(self):
@@ -214,11 +159,11 @@ def categoryorder(self):
         -------
         Any
         """
-        return self["categoryorder"]
+        return self['categoryorder']
 
     @categoryorder.setter
     def categoryorder(self, val):
-        self["categoryorder"] = val
+        self['categoryorder'] = val
 
     @property
     def cheatertype(self):
@@ -231,11 +176,11 @@ def cheatertype(self):
         -------
         Any
         """
-        return self["cheatertype"]
+        return self['cheatertype']
 
     @cheatertype.setter
     def cheatertype(self, val):
-        self["cheatertype"] = val
+        self['cheatertype'] = val
 
     @property
     def color(self):
@@ -256,11 +201,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dtick(self):
@@ -274,11 +219,11 @@ def dtick(self):
         -------
         int|float
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def endline(self):
@@ -294,11 +239,11 @@ def endline(self):
         -------
         bool
         """
-        return self["endline"]
+        return self['endline']
 
     @endline.setter
     def endline(self, val):
-        self["endline"] = val
+        self['endline'] = val
 
     @property
     def endlinecolor(self):
@@ -316,11 +261,11 @@ def endlinecolor(self):
         -------
         str
         """
-        return self["endlinecolor"]
+        return self['endlinecolor']
 
     @endlinecolor.setter
     def endlinecolor(self, val):
-        self["endlinecolor"] = val
+        self['endlinecolor'] = val
 
     @property
     def endlinewidth(self):
@@ -334,11 +279,11 @@ def endlinewidth(self):
         -------
         int|float
         """
-        return self["endlinewidth"]
+        return self['endlinewidth']
 
     @endlinewidth.setter
     def endlinewidth(self, val):
-        self["endlinewidth"] = val
+        self['endlinewidth'] = val
 
     @property
     def exponentformat(self):
@@ -357,11 +302,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def fixedrange(self):
@@ -376,11 +321,11 @@ def fixedrange(self):
         -------
         bool
         """
-        return self["fixedrange"]
+        return self['fixedrange']
 
     @fixedrange.setter
     def fixedrange(self, val):
-        self["fixedrange"] = val
+        self['fixedrange'] = val
 
     @property
     def gridcolor(self):
@@ -398,11 +343,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def griddash(self):
@@ -422,11 +367,11 @@ def griddash(self):
         -------
         str
         """
-        return self["griddash"]
+        return self['griddash']
 
     @griddash.setter
     def griddash(self, val):
-        self["griddash"] = val
+        self['griddash'] = val
 
     @property
     def gridwidth(self):
@@ -440,11 +385,11 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def labelalias(self):
@@ -465,11 +410,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def labelpadding(self):
@@ -483,11 +428,11 @@ def labelpadding(self):
         -------
         int
         """
-        return self["labelpadding"]
+        return self['labelpadding']
 
     @labelpadding.setter
     def labelpadding(self, val):
-        self["labelpadding"] = val
+        self['labelpadding'] = val
 
     @property
     def labelprefix(self):
@@ -502,11 +447,11 @@ def labelprefix(self):
         -------
         str
         """
-        return self["labelprefix"]
+        return self['labelprefix']
 
     @labelprefix.setter
     def labelprefix(self, val):
-        self["labelprefix"] = val
+        self['labelprefix'] = val
 
     @property
     def labelsuffix(self):
@@ -521,11 +466,11 @@ def labelsuffix(self):
         -------
         str
         """
-        return self["labelsuffix"]
+        return self['labelsuffix']
 
     @labelsuffix.setter
     def labelsuffix(self, val):
-        self["labelsuffix"] = val
+        self['labelsuffix'] = val
 
     @property
     def linecolor(self):
@@ -543,11 +488,11 @@ def linecolor(self):
         -------
         str
         """
-        return self["linecolor"]
+        return self['linecolor']
 
     @linecolor.setter
     def linecolor(self, val):
-        self["linecolor"] = val
+        self['linecolor'] = val
 
     @property
     def linewidth(self):
@@ -561,11 +506,11 @@ def linewidth(self):
         -------
         int|float
         """
-        return self["linewidth"]
+        return self['linewidth']
 
     @linewidth.setter
     def linewidth(self, val):
-        self["linewidth"] = val
+        self['linewidth'] = val
 
     @property
     def minexponent(self):
@@ -579,11 +524,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def minorgridcolor(self):
@@ -601,11 +546,11 @@ def minorgridcolor(self):
         -------
         str
         """
-        return self["minorgridcolor"]
+        return self['minorgridcolor']
 
     @minorgridcolor.setter
     def minorgridcolor(self, val):
-        self["minorgridcolor"] = val
+        self['minorgridcolor'] = val
 
     @property
     def minorgridcount(self):
@@ -620,11 +565,11 @@ def minorgridcount(self):
         -------
         int
         """
-        return self["minorgridcount"]
+        return self['minorgridcount']
 
     @minorgridcount.setter
     def minorgridcount(self, val):
-        self["minorgridcount"] = val
+        self['minorgridcount'] = val
 
     @property
     def minorgriddash(self):
@@ -644,11 +589,11 @@ def minorgriddash(self):
         -------
         str
         """
-        return self["minorgriddash"]
+        return self['minorgriddash']
 
     @minorgriddash.setter
     def minorgriddash(self, val):
-        self["minorgriddash"] = val
+        self['minorgriddash'] = val
 
     @property
     def minorgridwidth(self):
@@ -662,11 +607,11 @@ def minorgridwidth(self):
         -------
         int|float
         """
-        return self["minorgridwidth"]
+        return self['minorgridwidth']
 
     @minorgridwidth.setter
     def minorgridwidth(self, val):
-        self["minorgridwidth"] = val
+        self['minorgridwidth'] = val
 
     @property
     def nticks(self):
@@ -684,39 +629,39 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def range(self):
         """
-            Sets the range of this axis. If the axis `type` is "log", then
-            you must take the log of your desired range (e.g. to set the
-            range from 1 to 100, set the range from 0 to 2). If the axis
-            `type` is "date", it should be date strings, like date data,
-            though Date objects and unix milliseconds will be accepted and
-            converted to strings. If the axis `type` is "category", it
-            should be numbers, using the scale where each category is
-            assigned a serial number from zero in the order it appears.
-
-            The 'range' property is an info array that may be specified as:
+        Sets the range of this axis. If the axis `type` is "log", then
+        you must take the log of your desired range (e.g. to set the
+        range from 1 to 100, set the range from 0 to 2). If the axis
+        `type` is "date", it should be date strings, like date data,
+        though Date objects and unix milliseconds will be accepted and
+        converted to strings. If the axis `type` is "category", it
+        should be numbers, using the scale where each category is
+        assigned a serial number from zero in the order it appears.
+
+        The 'range' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'range[0]' property accepts values of any type
+    (1) The 'range[1]' property accepts values of any type
 
-            * a list or tuple of 2 elements where:
-        (0) The 'range[0]' property accepts values of any type
-        (1) The 'range[1]' property accepts values of any type
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["range"]
+        return self['range']
 
     @range.setter
     def range(self, val):
-        self["range"] = val
+        self['range'] = val
 
     @property
     def rangemode(self):
@@ -734,11 +679,11 @@ def rangemode(self):
         -------
         Any
         """
-        return self["rangemode"]
+        return self['rangemode']
 
     @rangemode.setter
     def rangemode(self, val):
-        self["rangemode"] = val
+        self['rangemode'] = val
 
     @property
     def separatethousands(self):
@@ -752,11 +697,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -774,11 +719,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showgrid(self):
@@ -793,11 +738,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def showline(self):
@@ -811,11 +756,11 @@ def showline(self):
         -------
         bool
         """
-        return self["showline"]
+        return self['showline']
 
     @showline.setter
     def showline(self, val):
-        self["showline"] = val
+        self['showline'] = val
 
     @property
     def showticklabels(self):
@@ -831,11 +776,11 @@ def showticklabels(self):
         -------
         Any
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -853,11 +798,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -872,11 +817,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def smoothing(self):
@@ -888,11 +833,11 @@ def smoothing(self):
         -------
         int|float
         """
-        return self["smoothing"]
+        return self['smoothing']
 
     @smoothing.setter
     def smoothing(self, val):
-        self["smoothing"] = val
+        self['smoothing'] = val
 
     @property
     def startline(self):
@@ -908,11 +853,11 @@ def startline(self):
         -------
         bool
         """
-        return self["startline"]
+        return self['startline']
 
     @startline.setter
     def startline(self, val):
-        self["startline"] = val
+        self['startline'] = val
 
     @property
     def startlinecolor(self):
@@ -930,11 +875,11 @@ def startlinecolor(self):
         -------
         str
         """
-        return self["startlinecolor"]
+        return self['startlinecolor']
 
     @startlinecolor.setter
     def startlinecolor(self, val):
-        self["startlinecolor"] = val
+        self['startlinecolor'] = val
 
     @property
     def startlinewidth(self):
@@ -948,11 +893,11 @@ def startlinewidth(self):
         -------
         int|float
         """
-        return self["startlinewidth"]
+        return self['startlinewidth']
 
     @startlinewidth.setter
     def startlinewidth(self, val):
-        self["startlinewidth"] = val
+        self['startlinewidth'] = val
 
     @property
     def tick0(self):
@@ -966,11 +911,11 @@ def tick0(self):
         -------
         int|float
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -988,11 +933,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickfont(self):
@@ -1009,11 +954,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.carpet.baxis.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -1037,11 +982,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -1056,11 +1001,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.carpet.baxis.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -1080,11 +1025,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.carpet.baxis.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def tickmode(self):
@@ -1097,11 +1042,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -1116,11 +1061,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticksuffix(self):
@@ -1135,11 +1080,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -1155,11 +1100,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -1173,11 +1118,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -1192,11 +1137,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -1210,11 +1155,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def title(self):
@@ -1229,11 +1174,11 @@ def title(self):
         -------
         plotly.graph_objs.carpet.baxis.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def type(self):
@@ -1250,11 +1195,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1476,70 +1421,68 @@ def _prop_descriptions(self):
             determined the axis type by looking into the data of
             the traces that referenced the axis in question.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        arraydtick=None,
-        arraytick0=None,
-        autorange=None,
-        autotypenumbers=None,
-        categoryarray=None,
-        categoryarraysrc=None,
-        categoryorder=None,
-        cheatertype=None,
-        color=None,
-        dtick=None,
-        endline=None,
-        endlinecolor=None,
-        endlinewidth=None,
-        exponentformat=None,
-        fixedrange=None,
-        gridcolor=None,
-        griddash=None,
-        gridwidth=None,
-        labelalias=None,
-        labelpadding=None,
-        labelprefix=None,
-        labelsuffix=None,
-        linecolor=None,
-        linewidth=None,
-        minexponent=None,
-        minorgridcolor=None,
-        minorgridcount=None,
-        minorgriddash=None,
-        minorgridwidth=None,
-        nticks=None,
-        range=None,
-        rangemode=None,
-        separatethousands=None,
-        showexponent=None,
-        showgrid=None,
-        showline=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        smoothing=None,
-        startline=None,
-        startlinecolor=None,
-        startlinewidth=None,
-        tick0=None,
-        tickangle=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        tickmode=None,
-        tickprefix=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        title=None,
-        type=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            arraydtick=None,
+            arraytick0=None,
+            autorange=None,
+            autotypenumbers=None,
+            categoryarray=None,
+            categoryarraysrc=None,
+            categoryorder=None,
+            cheatertype=None,
+            color=None,
+            dtick=None,
+            endline=None,
+            endlinecolor=None,
+            endlinewidth=None,
+            exponentformat=None,
+            fixedrange=None,
+            gridcolor=None,
+            griddash=None,
+            gridwidth=None,
+            labelalias=None,
+            labelpadding=None,
+            labelprefix=None,
+            labelsuffix=None,
+            linecolor=None,
+            linewidth=None,
+            minexponent=None,
+            minorgridcolor=None,
+            minorgridcount=None,
+            minorgriddash=None,
+            minorgridwidth=None,
+            nticks=None,
+            range=None,
+            rangemode=None,
+            separatethousands=None,
+            showexponent=None,
+            showgrid=None,
+            showline=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            smoothing=None,
+            startline=None,
+            startlinecolor=None,
+            startlinewidth=None,
+            tick0=None,
+            tickangle=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            tickmode=None,
+            tickprefix=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            title=None,
+            type=None,
+            **kwargs
+        ):
         """
         Construct a new Baxis object
 
@@ -1769,9 +1712,9 @@ def __init__(
         -------
         Baxis
         """
-        super().__init__("baxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('baxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1781,73 +1724,73 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.carpet.Baxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.carpet.Baxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("arraydtick", arg, arraydtick)
-        self._set_property("arraytick0", arg, arraytick0)
-        self._set_property("autorange", arg, autorange)
-        self._set_property("autotypenumbers", arg, autotypenumbers)
-        self._set_property("categoryarray", arg, categoryarray)
-        self._set_property("categoryarraysrc", arg, categoryarraysrc)
-        self._set_property("categoryorder", arg, categoryorder)
-        self._set_property("cheatertype", arg, cheatertype)
-        self._set_property("color", arg, color)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("endline", arg, endline)
-        self._set_property("endlinecolor", arg, endlinecolor)
-        self._set_property("endlinewidth", arg, endlinewidth)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("fixedrange", arg, fixedrange)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("griddash", arg, griddash)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("labelpadding", arg, labelpadding)
-        self._set_property("labelprefix", arg, labelprefix)
-        self._set_property("labelsuffix", arg, labelsuffix)
-        self._set_property("linecolor", arg, linecolor)
-        self._set_property("linewidth", arg, linewidth)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("minorgridcolor", arg, minorgridcolor)
-        self._set_property("minorgridcount", arg, minorgridcount)
-        self._set_property("minorgriddash", arg, minorgriddash)
-        self._set_property("minorgridwidth", arg, minorgridwidth)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("range", arg, range)
-        self._set_property("rangemode", arg, rangemode)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("showline", arg, showline)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("smoothing", arg, smoothing)
-        self._set_property("startline", arg, startline)
-        self._set_property("startlinecolor", arg, startlinecolor)
-        self._set_property("startlinewidth", arg, startlinewidth)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("title", arg, title)
-        self._set_property("type", arg, type)
+an instance of :class:`plotly.graph_objs.carpet.Baxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('arraydtick', arg, arraydtick)
+        self._set_property('arraytick0', arg, arraytick0)
+        self._set_property('autorange', arg, autorange)
+        self._set_property('autotypenumbers', arg, autotypenumbers)
+        self._set_property('categoryarray', arg, categoryarray)
+        self._set_property('categoryarraysrc', arg, categoryarraysrc)
+        self._set_property('categoryorder', arg, categoryorder)
+        self._set_property('cheatertype', arg, cheatertype)
+        self._set_property('color', arg, color)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('endline', arg, endline)
+        self._set_property('endlinecolor', arg, endlinecolor)
+        self._set_property('endlinewidth', arg, endlinewidth)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('fixedrange', arg, fixedrange)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('griddash', arg, griddash)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('labelpadding', arg, labelpadding)
+        self._set_property('labelprefix', arg, labelprefix)
+        self._set_property('labelsuffix', arg, labelsuffix)
+        self._set_property('linecolor', arg, linecolor)
+        self._set_property('linewidth', arg, linewidth)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('minorgridcolor', arg, minorgridcolor)
+        self._set_property('minorgridcount', arg, minorgridcount)
+        self._set_property('minorgriddash', arg, minorgriddash)
+        self._set_property('minorgridwidth', arg, minorgridwidth)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('range', arg, range)
+        self._set_property('rangemode', arg, rangemode)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('showline', arg, showline)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('smoothing', arg, smoothing)
+        self._set_property('startline', arg, startline)
+        self._set_property('startlinecolor', arg, startlinecolor)
+        self._set_property('startlinewidth', arg, startlinewidth)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('title', arg, title)
+        self._set_property('type', arg, type)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/carpet/_font.py b/plotly/graph_objs/carpet/_font.py
index 1b75d675850..224556c8b76 100644
--- a/plotly/graph_objs/carpet/_font.py
+++ b/plotly/graph_objs/carpet/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "carpet"
-    _path_str = "carpet.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'carpet'
+    _path_str = 'carpet.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -301,9 +293,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -313,24 +305,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.carpet.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.carpet.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.carpet.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/carpet/_legendgrouptitle.py b/plotly/graph_objs/carpet/_legendgrouptitle.py
index 885c7fbe004..987fd8c1c6d 100644
--- a/plotly/graph_objs/carpet/_legendgrouptitle.py
+++ b/plotly/graph_objs/carpet/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "carpet"
-    _path_str = "carpet.legendgrouptitle"
+    _parent_path_str = 'carpet'
+    _path_str = 'carpet.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.carpet.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.carpet.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.carpet.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.carpet.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/carpet/_stream.py b/plotly/graph_objs/carpet/_stream.py
index 65d80e96ec4..150cd54c8c8 100644
--- a/plotly/graph_objs/carpet/_stream.py
+++ b/plotly/graph_objs/carpet/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "carpet"
-    _path_str = "carpet.stream"
+    _parent_path_str = 'carpet'
+    _path_str = 'carpet.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.carpet.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.carpet.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.carpet.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/carpet/aaxis/__init__.py b/plotly/graph_objs/carpet/aaxis/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/carpet/aaxis/__init__.py
+++ b/plotly/graph_objs/carpet/aaxis/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/carpet/aaxis/_tickfont.py b/plotly/graph_objs/carpet/aaxis/_tickfont.py
index 447a500cd93..2183c1e841e 100644
--- a/plotly/graph_objs/carpet/aaxis/_tickfont.py
+++ b/plotly/graph_objs/carpet/aaxis/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "carpet.aaxis"
-    _path_str = "carpet.aaxis.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'carpet.aaxis'
+    _path_str = 'carpet.aaxis.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.carpet.aaxis.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.carpet.aaxis.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.carpet.aaxis.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/carpet/aaxis/_tickformatstop.py b/plotly/graph_objs/carpet/aaxis/_tickformatstop.py
index c0a7bb38834..112cc90b559 100644
--- a/plotly/graph_objs/carpet/aaxis/_tickformatstop.py
+++ b/plotly/graph_objs/carpet/aaxis/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "carpet.aaxis"
-    _path_str = "carpet.aaxis.tickformatstop"
+    _parent_path_str = 'carpet.aaxis'
+    _path_str = 'carpet.aaxis.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.carpet.aaxis.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.carpet.aaxis.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.carpet.aaxis.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/carpet/aaxis/_title.py b/plotly/graph_objs/carpet/aaxis/_title.py
index 093a7186b99..cd0fa02b65d 100644
--- a/plotly/graph_objs/carpet/aaxis/_title.py
+++ b/plotly/graph_objs/carpet/aaxis/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "carpet.aaxis"
-    _path_str = "carpet.aaxis.title"
+    _parent_path_str = 'carpet.aaxis'
+    _path_str = 'carpet.aaxis.title'
     _valid_props = {"font", "offset", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.carpet.aaxis.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def offset(self):
@@ -45,11 +49,11 @@ def offset(self):
         -------
         int|float
         """
-        return self["offset"]
+        return self['offset']
 
     @offset.setter
     def offset(self, val):
-        self["offset"] = val
+        self['offset'] = val
 
     @property
     def text(self):
@@ -64,11 +68,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -81,8 +85,13 @@ def _prop_descriptions(self):
         text
             Sets the title of this axis.
         """
-
-    def __init__(self, arg=None, font=None, offset=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            offset=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -104,9 +113,9 @@ def __init__(self, arg=None, font=None, offset=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -116,18 +125,18 @@ def __init__(self, arg=None, font=None, offset=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.carpet.aaxis.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.carpet.aaxis.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.carpet.aaxis.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("offset", arg, offset)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('offset', arg, offset)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/carpet/aaxis/title/__init__.py b/plotly/graph_objs/carpet/aaxis/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/carpet/aaxis/title/__init__.py
+++ b/plotly/graph_objs/carpet/aaxis/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/carpet/aaxis/title/_font.py b/plotly/graph_objs/carpet/aaxis/title/_font.py
index dfa4a4ee490..306e42bc626 100644
--- a/plotly/graph_objs/carpet/aaxis/title/_font.py
+++ b/plotly/graph_objs/carpet/aaxis/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "carpet.aaxis.title"
-    _path_str = "carpet.aaxis.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'carpet.aaxis.title'
+    _path_str = 'carpet.aaxis.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.carpet.aaxis.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.carpet.aaxis.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.carpet.aaxis.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/carpet/baxis/__init__.py b/plotly/graph_objs/carpet/baxis/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/carpet/baxis/__init__.py
+++ b/plotly/graph_objs/carpet/baxis/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/carpet/baxis/_tickfont.py b/plotly/graph_objs/carpet/baxis/_tickfont.py
index d6fd63595b6..cf749db34fe 100644
--- a/plotly/graph_objs/carpet/baxis/_tickfont.py
+++ b/plotly/graph_objs/carpet/baxis/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "carpet.baxis"
-    _path_str = "carpet.baxis.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'carpet.baxis'
+    _path_str = 'carpet.baxis.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.carpet.baxis.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.carpet.baxis.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.carpet.baxis.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/carpet/baxis/_tickformatstop.py b/plotly/graph_objs/carpet/baxis/_tickformatstop.py
index fdd8cdbcd34..ec8d570cb7b 100644
--- a/plotly/graph_objs/carpet/baxis/_tickformatstop.py
+++ b/plotly/graph_objs/carpet/baxis/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "carpet.baxis"
-    _path_str = "carpet.baxis.tickformatstop"
+    _parent_path_str = 'carpet.baxis'
+    _path_str = 'carpet.baxis.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.carpet.baxis.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.carpet.baxis.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.carpet.baxis.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/carpet/baxis/_title.py b/plotly/graph_objs/carpet/baxis/_title.py
index 56b55d0e442..ff2f875f81e 100644
--- a/plotly/graph_objs/carpet/baxis/_title.py
+++ b/plotly/graph_objs/carpet/baxis/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "carpet.baxis"
-    _path_str = "carpet.baxis.title"
+    _parent_path_str = 'carpet.baxis'
+    _path_str = 'carpet.baxis.title'
     _valid_props = {"font", "offset", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.carpet.baxis.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def offset(self):
@@ -45,11 +49,11 @@ def offset(self):
         -------
         int|float
         """
-        return self["offset"]
+        return self['offset']
 
     @offset.setter
     def offset(self, val):
-        self["offset"] = val
+        self['offset'] = val
 
     @property
     def text(self):
@@ -64,11 +68,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -81,8 +85,13 @@ def _prop_descriptions(self):
         text
             Sets the title of this axis.
         """
-
-    def __init__(self, arg=None, font=None, offset=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            offset=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -104,9 +113,9 @@ def __init__(self, arg=None, font=None, offset=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -116,18 +125,18 @@ def __init__(self, arg=None, font=None, offset=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.carpet.baxis.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.carpet.baxis.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.carpet.baxis.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("offset", arg, offset)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('offset', arg, offset)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/carpet/baxis/title/__init__.py b/plotly/graph_objs/carpet/baxis/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/carpet/baxis/title/__init__.py
+++ b/plotly/graph_objs/carpet/baxis/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/carpet/baxis/title/_font.py b/plotly/graph_objs/carpet/baxis/title/_font.py
index 4a4d483e18c..a1568ce490e 100644
--- a/plotly/graph_objs/carpet/baxis/title/_font.py
+++ b/plotly/graph_objs/carpet/baxis/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "carpet.baxis.title"
-    _path_str = "carpet.baxis.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'carpet.baxis.title'
+    _path_str = 'carpet.baxis.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.carpet.baxis.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.carpet.baxis.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.carpet.baxis.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/carpet/legendgrouptitle/__init__.py b/plotly/graph_objs/carpet/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/carpet/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/carpet/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/carpet/legendgrouptitle/_font.py b/plotly/graph_objs/carpet/legendgrouptitle/_font.py
index 4e4e7d76cc1..1cd13420b11 100644
--- a/plotly/graph_objs/carpet/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/carpet/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "carpet.legendgrouptitle"
-    _path_str = "carpet.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'carpet.legendgrouptitle'
+    _path_str = 'carpet.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.carpet.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.carpet.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.carpet.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choropleth/__init__.py b/plotly/graph_objs/choropleth/__init__.py
index 7467efa587c..07c6ea98647 100644
--- a/plotly/graph_objs/choropleth/__init__.py
+++ b/plotly/graph_objs/choropleth/__init__.py
@@ -1,23 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._marker import Marker
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._unselected import Unselected
+    from . import colorbar
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar', '.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._colorbar.ColorBar', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._marker.Marker', '._selected.Selected', '._stream.Stream', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [
-        ".colorbar",
-        ".hoverlabel",
-        ".legendgrouptitle",
-        ".marker",
-        ".selected",
-        ".unselected",
-    ],
-    [
-        "._colorbar.ColorBar",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._marker.Marker",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/choropleth/_colorbar.py b/plotly/graph_objs/choropleth/_colorbar.py
index 39174f50c5e..34fcf7d92c8 100644
--- a/plotly/graph_objs/choropleth/_colorbar.py
+++ b/plotly/graph_objs/choropleth/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choropleth"
-    _path_str = "choropleth.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'choropleth'
+    _path_str = 'choropleth.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.choropleth.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.choropleth.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -641,11 +595,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.choropleth.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -663,11 +617,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -686,11 +640,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -710,11 +664,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -728,11 +682,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -753,11 +707,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -772,11 +726,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -793,11 +747,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -812,11 +766,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -832,11 +786,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -850,11 +804,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -869,11 +823,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -887,11 +841,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -905,11 +859,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -924,11 +878,11 @@ def title(self):
         -------
         plotly.graph_objs.choropleth.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -948,11 +902,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -970,11 +924,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -988,11 +942,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1009,11 +963,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1033,11 +987,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1055,11 +1009,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1073,11 +1027,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1094,11 +1048,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1342,61 +1296,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1649,9 +1601,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1661,64 +1613,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choropleth.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choropleth.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.choropleth.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choropleth/_hoverlabel.py b/plotly/graph_objs/choropleth/_hoverlabel.py
index d05020212d6..125a945d7f5 100644
--- a/plotly/graph_objs/choropleth/_hoverlabel.py
+++ b/plotly/graph_objs/choropleth/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choropleth"
-    _path_str = "choropleth.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'choropleth'
+    _path_str = 'choropleth.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.choropleth.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choropleth.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choropleth.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.choropleth.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choropleth/_legendgrouptitle.py b/plotly/graph_objs/choropleth/_legendgrouptitle.py
index 27904cdbf88..1eec9a64e5a 100644
--- a/plotly/graph_objs/choropleth/_legendgrouptitle.py
+++ b/plotly/graph_objs/choropleth/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choropleth"
-    _path_str = "choropleth.legendgrouptitle"
+    _parent_path_str = 'choropleth'
+    _path_str = 'choropleth.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.choropleth.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choropleth.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choropleth.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.choropleth.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choropleth/_marker.py b/plotly/graph_objs/choropleth/_marker.py
index 492ab9a6df3..9c198bccfb8 100644
--- a/plotly/graph_objs/choropleth/_marker.py
+++ b/plotly/graph_objs/choropleth/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choropleth"
-    _path_str = "choropleth.marker"
+    _parent_path_str = 'choropleth'
+    _path_str = 'choropleth.marker'
     _valid_props = {"line", "opacity", "opacitysrc"}
 
     @property
@@ -24,11 +28,11 @@ def line(self):
         -------
         plotly.graph_objs.choropleth.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def opacity(self):
@@ -43,11 +47,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -61,11 +65,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `opacity`.
         """
-
-    def __init__(self, arg=None, line=None, opacity=None, opacitysrc=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            line=None,
+            opacity=None,
+            opacitysrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -103,9 +112,9 @@ def __init__(self, arg=None, line=None, opacity=None, opacitysrc=None, **kwargs)
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -115,18 +124,18 @@ def __init__(self, arg=None, line=None, opacity=None, opacitysrc=None, **kwargs)
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choropleth.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choropleth.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.choropleth.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("line", arg, line)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
+        self._set_property('line', arg, line)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choropleth/_selected.py b/plotly/graph_objs/choropleth/_selected.py
index 8a34bcaa453..d6a9c1bbb09 100644
--- a/plotly/graph_objs/choropleth/_selected.py
+++ b/plotly/graph_objs/choropleth/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choropleth"
-    _path_str = "choropleth.selected"
+    _parent_path_str = 'choropleth'
+    _path_str = 'choropleth.selected'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.choropleth.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.choropleth.selected.Marker
             ` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choropleth.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choropleth.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.choropleth.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choropleth/_stream.py b/plotly/graph_objs/choropleth/_stream.py
index c131261cf23..84c234a47fc 100644
--- a/plotly/graph_objs/choropleth/_stream.py
+++ b/plotly/graph_objs/choropleth/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choropleth"
-    _path_str = "choropleth.stream"
+    _parent_path_str = 'choropleth'
+    _path_str = 'choropleth.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choropleth.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choropleth.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.choropleth.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choropleth/_unselected.py b/plotly/graph_objs/choropleth/_unselected.py
index 350c86a2d31..510386ca24c 100644
--- a/plotly/graph_objs/choropleth/_unselected.py
+++ b/plotly/graph_objs/choropleth/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choropleth"
-    _path_str = "choropleth.unselected"
+    _parent_path_str = 'choropleth'
+    _path_str = 'choropleth.unselected'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.choropleth.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.choropleth.unselected.Mark
             er` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choropleth.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choropleth.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.choropleth.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choropleth/colorbar/__init__.py b/plotly/graph_objs/choropleth/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/choropleth/colorbar/__init__.py
+++ b/plotly/graph_objs/choropleth/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/choropleth/colorbar/_tickfont.py b/plotly/graph_objs/choropleth/colorbar/_tickfont.py
index 9619ce163fb..9660cbcba22 100644
--- a/plotly/graph_objs/choropleth/colorbar/_tickfont.py
+++ b/plotly/graph_objs/choropleth/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choropleth.colorbar"
-    _path_str = "choropleth.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'choropleth.colorbar'
+    _path_str = 'choropleth.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choropleth.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choropleth.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.choropleth.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choropleth/colorbar/_tickformatstop.py b/plotly/graph_objs/choropleth/colorbar/_tickformatstop.py
index b6fed280dc3..42d97ba4adc 100644
--- a/plotly/graph_objs/choropleth/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/choropleth/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choropleth.colorbar"
-    _path_str = "choropleth.colorbar.tickformatstop"
+    _parent_path_str = 'choropleth.colorbar'
+    _path_str = 'choropleth.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choropleth.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choropleth.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.choropleth.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choropleth/colorbar/_title.py b/plotly/graph_objs/choropleth/colorbar/_title.py
index fbfdfcddca9..047ea710266 100644
--- a/plotly/graph_objs/choropleth/colorbar/_title.py
+++ b/plotly/graph_objs/choropleth/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choropleth.colorbar"
-    _path_str = "choropleth.colorbar.title"
+    _parent_path_str = 'choropleth.colorbar'
+    _path_str = 'choropleth.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.choropleth.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choropleth.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choropleth.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.choropleth.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choropleth/colorbar/title/__init__.py b/plotly/graph_objs/choropleth/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/choropleth/colorbar/title/__init__.py
+++ b/plotly/graph_objs/choropleth/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/choropleth/colorbar/title/_font.py b/plotly/graph_objs/choropleth/colorbar/title/_font.py
index 6c8bab6e6ac..4d17646ddb4 100644
--- a/plotly/graph_objs/choropleth/colorbar/title/_font.py
+++ b/plotly/graph_objs/choropleth/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choropleth.colorbar.title"
-    _path_str = "choropleth.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'choropleth.colorbar.title'
+    _path_str = 'choropleth.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choropleth.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choropleth.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.choropleth.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choropleth/hoverlabel/__init__.py b/plotly/graph_objs/choropleth/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/choropleth/hoverlabel/__init__.py
+++ b/plotly/graph_objs/choropleth/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/choropleth/hoverlabel/_font.py b/plotly/graph_objs/choropleth/hoverlabel/_font.py
index 3febc15ba89..33e9264a257 100644
--- a/plotly/graph_objs/choropleth/hoverlabel/_font.py
+++ b/plotly/graph_objs/choropleth/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choropleth.hoverlabel"
-    _path_str = "choropleth.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'choropleth.hoverlabel'
+    _path_str = 'choropleth.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choropleth.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choropleth.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.choropleth.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choropleth/legendgrouptitle/__init__.py b/plotly/graph_objs/choropleth/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/choropleth/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/choropleth/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/choropleth/legendgrouptitle/_font.py b/plotly/graph_objs/choropleth/legendgrouptitle/_font.py
index fb96100668b..e18feb295f9 100644
--- a/plotly/graph_objs/choropleth/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/choropleth/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choropleth.legendgrouptitle"
-    _path_str = "choropleth.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'choropleth.legendgrouptitle'
+    _path_str = 'choropleth.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choropleth.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choropleth.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.choropleth.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choropleth/marker/__init__.py b/plotly/graph_objs/choropleth/marker/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/choropleth/marker/__init__.py
+++ b/plotly/graph_objs/choropleth/marker/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/choropleth/marker/_line.py b/plotly/graph_objs/choropleth/marker/_line.py
index 439b7a705f6..a681de09fb0 100644
--- a/plotly/graph_objs/choropleth/marker/_line.py
+++ b/plotly/graph_objs/choropleth/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choropleth.marker"
-    _path_str = "choropleth.marker.line"
+    _parent_path_str = 'choropleth.marker'
+    _path_str = 'choropleth.marker.line'
     _valid_props = {"color", "colorsrc", "width", "widthsrc"}
 
     @property
@@ -31,11 +35,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -49,11 +53,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def width(self):
@@ -68,11 +72,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -86,11 +90,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -111,10 +115,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, width=None, widthsrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -144,9 +152,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -156,19 +164,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choropleth.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choropleth.marker.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.choropleth.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choropleth/selected/__init__.py b/plotly/graph_objs/choropleth/selected/__init__.py
index 17b6d670bc4..5abe297c1ca 100644
--- a/plotly/graph_objs/choropleth/selected/__init__.py
+++ b/plotly/graph_objs/choropleth/selected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._marker.Marker"])
diff --git a/plotly/graph_objs/choropleth/selected/_marker.py b/plotly/graph_objs/choropleth/selected/_marker.py
index 652c8098a9b..1ed36549785 100644
--- a/plotly/graph_objs/choropleth/selected/_marker.py
+++ b/plotly/graph_objs/choropleth/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choropleth.selected"
-    _path_str = "choropleth.selected.marker"
+    _parent_path_str = 'choropleth.selected'
+    _path_str = 'choropleth.selected.marker'
     _valid_props = {"opacity"}
 
     @property
@@ -23,11 +27,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -35,8 +39,11 @@ def _prop_descriptions(self):
         opacity
             Sets the marker opacity of selected points.
         """
-
-    def __init__(self, arg=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -53,9 +60,9 @@ def __init__(self, arg=None, opacity=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -65,16 +72,16 @@ def __init__(self, arg=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choropleth.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choropleth.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.choropleth.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("opacity", arg, opacity)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choropleth/unselected/__init__.py b/plotly/graph_objs/choropleth/unselected/__init__.py
index 17b6d670bc4..5abe297c1ca 100644
--- a/plotly/graph_objs/choropleth/unselected/__init__.py
+++ b/plotly/graph_objs/choropleth/unselected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._marker.Marker"])
diff --git a/plotly/graph_objs/choropleth/unselected/_marker.py b/plotly/graph_objs/choropleth/unselected/_marker.py
index 65713847b58..fbbc3dd9410 100644
--- a/plotly/graph_objs/choropleth/unselected/_marker.py
+++ b/plotly/graph_objs/choropleth/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choropleth.unselected"
-    _path_str = "choropleth.unselected.marker"
+    _parent_path_str = 'choropleth.unselected'
+    _path_str = 'choropleth.unselected.marker'
     _valid_props = {"opacity"}
 
     @property
@@ -24,11 +28,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             Sets the marker opacity of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, opacity=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choropleth.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choropleth.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.choropleth.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("opacity", arg, opacity)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmap/__init__.py b/plotly/graph_objs/choroplethmap/__init__.py
index 7467efa587c..07c6ea98647 100644
--- a/plotly/graph_objs/choroplethmap/__init__.py
+++ b/plotly/graph_objs/choroplethmap/__init__.py
@@ -1,23 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._marker import Marker
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._unselected import Unselected
+    from . import colorbar
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar', '.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._colorbar.ColorBar', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._marker.Marker', '._selected.Selected', '._stream.Stream', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [
-        ".colorbar",
-        ".hoverlabel",
-        ".legendgrouptitle",
-        ".marker",
-        ".selected",
-        ".unselected",
-    ],
-    [
-        "._colorbar.ColorBar",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._marker.Marker",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/choroplethmap/_colorbar.py b/plotly/graph_objs/choroplethmap/_colorbar.py
index e59bbad187b..fc94650c6e8 100644
--- a/plotly/graph_objs/choroplethmap/_colorbar.py
+++ b/plotly/graph_objs/choroplethmap/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmap"
-    _path_str = "choroplethmap.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'choroplethmap'
+    _path_str = 'choroplethmap.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.choroplethmap.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.choroplethmap.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.choroplethmap.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.choroplethmap.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmap.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmap.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.choroplethmap.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmap/_hoverlabel.py b/plotly/graph_objs/choroplethmap/_hoverlabel.py
index 9dbdabf3407..097b80f73a1 100644
--- a/plotly/graph_objs/choroplethmap/_hoverlabel.py
+++ b/plotly/graph_objs/choroplethmap/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmap"
-    _path_str = "choroplethmap.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'choroplethmap'
+    _path_str = 'choroplethmap.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.choroplethmap.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmap.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmap.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.choroplethmap.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmap/_legendgrouptitle.py b/plotly/graph_objs/choroplethmap/_legendgrouptitle.py
index 228e2493b5e..35eda870d8b 100644
--- a/plotly/graph_objs/choroplethmap/_legendgrouptitle.py
+++ b/plotly/graph_objs/choroplethmap/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmap"
-    _path_str = "choroplethmap.legendgrouptitle"
+    _parent_path_str = 'choroplethmap'
+    _path_str = 'choroplethmap.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.choroplethmap.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmap.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmap.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmap.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmap/_marker.py b/plotly/graph_objs/choroplethmap/_marker.py
index 567341c8ba2..9602a6ac061 100644
--- a/plotly/graph_objs/choroplethmap/_marker.py
+++ b/plotly/graph_objs/choroplethmap/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmap"
-    _path_str = "choroplethmap.marker"
+    _parent_path_str = 'choroplethmap'
+    _path_str = 'choroplethmap.marker'
     _valid_props = {"line", "opacity", "opacitysrc"}
 
     @property
@@ -24,11 +28,11 @@ def line(self):
         -------
         plotly.graph_objs.choroplethmap.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def opacity(self):
@@ -43,11 +47,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -61,11 +65,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `opacity`.
         """
-
-    def __init__(self, arg=None, line=None, opacity=None, opacitysrc=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            line=None,
+            opacity=None,
+            opacitysrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -103,9 +112,9 @@ def __init__(self, arg=None, line=None, opacity=None, opacitysrc=None, **kwargs)
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -115,18 +124,18 @@ def __init__(self, arg=None, line=None, opacity=None, opacitysrc=None, **kwargs)
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmap.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmap.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmap.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("line", arg, line)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
+        self._set_property('line', arg, line)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmap/_selected.py b/plotly/graph_objs/choroplethmap/_selected.py
index d4ad6cc6e84..f73b5c767e7 100644
--- a/plotly/graph_objs/choroplethmap/_selected.py
+++ b/plotly/graph_objs/choroplethmap/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmap"
-    _path_str = "choroplethmap.selected"
+    _parent_path_str = 'choroplethmap'
+    _path_str = 'choroplethmap.selected'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.choroplethmap.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.choroplethmap.selected.Mar
             ker` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmap.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmap.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmap.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmap/_stream.py b/plotly/graph_objs/choroplethmap/_stream.py
index afae9f66e7e..aaf110acd73 100644
--- a/plotly/graph_objs/choroplethmap/_stream.py
+++ b/plotly/graph_objs/choroplethmap/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmap"
-    _path_str = "choroplethmap.stream"
+    _parent_path_str = 'choroplethmap'
+    _path_str = 'choroplethmap.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmap.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmap.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmap.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmap/_unselected.py b/plotly/graph_objs/choroplethmap/_unselected.py
index 419fa29373a..0f699632c94 100644
--- a/plotly/graph_objs/choroplethmap/_unselected.py
+++ b/plotly/graph_objs/choroplethmap/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmap"
-    _path_str = "choroplethmap.unselected"
+    _parent_path_str = 'choroplethmap'
+    _path_str = 'choroplethmap.unselected'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.choroplethmap.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.choroplethmap.unselected.M
             arker` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmap.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmap.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmap.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmap/colorbar/__init__.py b/plotly/graph_objs/choroplethmap/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/choroplethmap/colorbar/__init__.py
+++ b/plotly/graph_objs/choroplethmap/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/choroplethmap/colorbar/_tickfont.py b/plotly/graph_objs/choroplethmap/colorbar/_tickfont.py
index 3a060d41a85..47082ba1a44 100644
--- a/plotly/graph_objs/choroplethmap/colorbar/_tickfont.py
+++ b/plotly/graph_objs/choroplethmap/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmap.colorbar"
-    _path_str = "choroplethmap.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'choroplethmap.colorbar'
+    _path_str = 'choroplethmap.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmap.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmap.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.choroplethmap.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmap/colorbar/_tickformatstop.py b/plotly/graph_objs/choroplethmap/colorbar/_tickformatstop.py
index 7140429c342..410177d5b5a 100644
--- a/plotly/graph_objs/choroplethmap/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/choroplethmap/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmap.colorbar"
-    _path_str = "choroplethmap.colorbar.tickformatstop"
+    _parent_path_str = 'choroplethmap.colorbar'
+    _path_str = 'choroplethmap.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmap.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmap.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmap.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmap/colorbar/_title.py b/plotly/graph_objs/choroplethmap/colorbar/_title.py
index 58d52f6d944..9002e523e7f 100644
--- a/plotly/graph_objs/choroplethmap/colorbar/_title.py
+++ b/plotly/graph_objs/choroplethmap/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmap.colorbar"
-    _path_str = "choroplethmap.colorbar.title"
+    _parent_path_str = 'choroplethmap.colorbar'
+    _path_str = 'choroplethmap.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.choroplethmap.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmap.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmap.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmap.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmap/colorbar/title/__init__.py b/plotly/graph_objs/choroplethmap/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/choroplethmap/colorbar/title/__init__.py
+++ b/plotly/graph_objs/choroplethmap/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/choroplethmap/colorbar/title/_font.py b/plotly/graph_objs/choroplethmap/colorbar/title/_font.py
index f5a00ed2879..7919a2bb953 100644
--- a/plotly/graph_objs/choroplethmap/colorbar/title/_font.py
+++ b/plotly/graph_objs/choroplethmap/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmap.colorbar.title"
-    _path_str = "choroplethmap.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'choroplethmap.colorbar.title'
+    _path_str = 'choroplethmap.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmap.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmap.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.choroplethmap.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmap/hoverlabel/__init__.py b/plotly/graph_objs/choroplethmap/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/choroplethmap/hoverlabel/__init__.py
+++ b/plotly/graph_objs/choroplethmap/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/choroplethmap/hoverlabel/_font.py b/plotly/graph_objs/choroplethmap/hoverlabel/_font.py
index d0c1d7c7ead..77097ebd0c4 100644
--- a/plotly/graph_objs/choroplethmap/hoverlabel/_font.py
+++ b/plotly/graph_objs/choroplethmap/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmap.hoverlabel"
-    _path_str = "choroplethmap.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'choroplethmap.hoverlabel'
+    _path_str = 'choroplethmap.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmap.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmap.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.choroplethmap.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmap/legendgrouptitle/__init__.py b/plotly/graph_objs/choroplethmap/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/choroplethmap/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/choroplethmap/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/choroplethmap/legendgrouptitle/_font.py b/plotly/graph_objs/choroplethmap/legendgrouptitle/_font.py
index ff2ae05ea64..ee08f5a25b8 100644
--- a/plotly/graph_objs/choroplethmap/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/choroplethmap/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmap.legendgrouptitle"
-    _path_str = "choroplethmap.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'choroplethmap.legendgrouptitle'
+    _path_str = 'choroplethmap.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmap.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmap.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.choroplethmap.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmap/marker/__init__.py b/plotly/graph_objs/choroplethmap/marker/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/choroplethmap/marker/__init__.py
+++ b/plotly/graph_objs/choroplethmap/marker/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/choroplethmap/marker/_line.py b/plotly/graph_objs/choroplethmap/marker/_line.py
index cff91959296..00b9e80659e 100644
--- a/plotly/graph_objs/choroplethmap/marker/_line.py
+++ b/plotly/graph_objs/choroplethmap/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmap.marker"
-    _path_str = "choroplethmap.marker.line"
+    _parent_path_str = 'choroplethmap.marker'
+    _path_str = 'choroplethmap.marker.line'
     _valid_props = {"color", "colorsrc", "width", "widthsrc"}
 
     @property
@@ -31,11 +35,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -49,11 +53,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def width(self):
@@ -68,11 +72,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -86,11 +90,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -111,10 +115,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, width=None, widthsrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -144,9 +152,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -156,19 +164,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmap.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmap.marker.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmap.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmap/selected/__init__.py b/plotly/graph_objs/choroplethmap/selected/__init__.py
index 17b6d670bc4..5abe297c1ca 100644
--- a/plotly/graph_objs/choroplethmap/selected/__init__.py
+++ b/plotly/graph_objs/choroplethmap/selected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._marker.Marker"])
diff --git a/plotly/graph_objs/choroplethmap/selected/_marker.py b/plotly/graph_objs/choroplethmap/selected/_marker.py
index 7d34c68681d..834561769c4 100644
--- a/plotly/graph_objs/choroplethmap/selected/_marker.py
+++ b/plotly/graph_objs/choroplethmap/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmap.selected"
-    _path_str = "choroplethmap.selected.marker"
+    _parent_path_str = 'choroplethmap.selected'
+    _path_str = 'choroplethmap.selected.marker'
     _valid_props = {"opacity"}
 
     @property
@@ -23,11 +27,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -35,8 +39,11 @@ def _prop_descriptions(self):
         opacity
             Sets the marker opacity of selected points.
         """
-
-    def __init__(self, arg=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -53,9 +60,9 @@ def __init__(self, arg=None, opacity=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -65,16 +72,16 @@ def __init__(self, arg=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmap.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmap.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmap.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("opacity", arg, opacity)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmap/unselected/__init__.py b/plotly/graph_objs/choroplethmap/unselected/__init__.py
index 17b6d670bc4..5abe297c1ca 100644
--- a/plotly/graph_objs/choroplethmap/unselected/__init__.py
+++ b/plotly/graph_objs/choroplethmap/unselected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._marker.Marker"])
diff --git a/plotly/graph_objs/choroplethmap/unselected/_marker.py b/plotly/graph_objs/choroplethmap/unselected/_marker.py
index 518f96e5d65..b3d86c7f762 100644
--- a/plotly/graph_objs/choroplethmap/unselected/_marker.py
+++ b/plotly/graph_objs/choroplethmap/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmap.unselected"
-    _path_str = "choroplethmap.unselected.marker"
+    _parent_path_str = 'choroplethmap.unselected'
+    _path_str = 'choroplethmap.unselected.marker'
     _valid_props = {"opacity"}
 
     @property
@@ -24,11 +28,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             Sets the marker opacity of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, opacity=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmap.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmap.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmap.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("opacity", arg, opacity)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmapbox/__init__.py b/plotly/graph_objs/choroplethmapbox/__init__.py
index 7467efa587c..07c6ea98647 100644
--- a/plotly/graph_objs/choroplethmapbox/__init__.py
+++ b/plotly/graph_objs/choroplethmapbox/__init__.py
@@ -1,23 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._marker import Marker
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._unselected import Unselected
+    from . import colorbar
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar', '.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._colorbar.ColorBar', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._marker.Marker', '._selected.Selected', '._stream.Stream', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [
-        ".colorbar",
-        ".hoverlabel",
-        ".legendgrouptitle",
-        ".marker",
-        ".selected",
-        ".unselected",
-    ],
-    [
-        "._colorbar.ColorBar",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._marker.Marker",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/choroplethmapbox/_colorbar.py b/plotly/graph_objs/choroplethmapbox/_colorbar.py
index eabc5a8c173..74aa1d3b8d7 100644
--- a/plotly/graph_objs/choroplethmapbox/_colorbar.py
+++ b/plotly/graph_objs/choroplethmapbox/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmapbox"
-    _path_str = "choroplethmapbox.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'choroplethmapbox'
+    _path_str = 'choroplethmapbox.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.choroplethmapbox.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.choroplethmapbox.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.choroplethmapbox.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.choroplethmapbox.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmapbox.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmapbox.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.choroplethmapbox.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmapbox/_hoverlabel.py b/plotly/graph_objs/choroplethmapbox/_hoverlabel.py
index bcfdeceeca7..f9ff4a320ff 100644
--- a/plotly/graph_objs/choroplethmapbox/_hoverlabel.py
+++ b/plotly/graph_objs/choroplethmapbox/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmapbox"
-    _path_str = "choroplethmapbox.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'choroplethmapbox'
+    _path_str = 'choroplethmapbox.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.choroplethmapbox.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmapbox.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmapbox.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.choroplethmapbox.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmapbox/_legendgrouptitle.py b/plotly/graph_objs/choroplethmapbox/_legendgrouptitle.py
index 28433f4bb24..f45747338dd 100644
--- a/plotly/graph_objs/choroplethmapbox/_legendgrouptitle.py
+++ b/plotly/graph_objs/choroplethmapbox/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmapbox"
-    _path_str = "choroplethmapbox.legendgrouptitle"
+    _parent_path_str = 'choroplethmapbox'
+    _path_str = 'choroplethmapbox.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.choroplethmapbox.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmapbox.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmapbox.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmapbox.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmapbox/_marker.py b/plotly/graph_objs/choroplethmapbox/_marker.py
index 8af9169be76..c1128d12b24 100644
--- a/plotly/graph_objs/choroplethmapbox/_marker.py
+++ b/plotly/graph_objs/choroplethmapbox/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmapbox"
-    _path_str = "choroplethmapbox.marker"
+    _parent_path_str = 'choroplethmapbox'
+    _path_str = 'choroplethmapbox.marker'
     _valid_props = {"line", "opacity", "opacitysrc"}
 
     @property
@@ -24,11 +28,11 @@ def line(self):
         -------
         plotly.graph_objs.choroplethmapbox.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def opacity(self):
@@ -43,11 +47,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -61,11 +65,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `opacity`.
         """
-
-    def __init__(self, arg=None, line=None, opacity=None, opacitysrc=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            line=None,
+            opacity=None,
+            opacitysrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -103,9 +112,9 @@ def __init__(self, arg=None, line=None, opacity=None, opacitysrc=None, **kwargs)
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -115,18 +124,18 @@ def __init__(self, arg=None, line=None, opacity=None, opacitysrc=None, **kwargs)
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmapbox.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmapbox.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmapbox.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("line", arg, line)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
+        self._set_property('line', arg, line)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmapbox/_selected.py b/plotly/graph_objs/choroplethmapbox/_selected.py
index a53ee20cc46..d5cb874d121 100644
--- a/plotly/graph_objs/choroplethmapbox/_selected.py
+++ b/plotly/graph_objs/choroplethmapbox/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmapbox"
-    _path_str = "choroplethmapbox.selected"
+    _parent_path_str = 'choroplethmapbox'
+    _path_str = 'choroplethmapbox.selected'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.choroplethmapbox.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.choroplethmapbox.selected.
             Marker` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmapbox.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmapbox.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmapbox.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmapbox/_stream.py b/plotly/graph_objs/choroplethmapbox/_stream.py
index a4f4edc76a9..038485adec5 100644
--- a/plotly/graph_objs/choroplethmapbox/_stream.py
+++ b/plotly/graph_objs/choroplethmapbox/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmapbox"
-    _path_str = "choroplethmapbox.stream"
+    _parent_path_str = 'choroplethmapbox'
+    _path_str = 'choroplethmapbox.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmapbox.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmapbox.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmapbox.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmapbox/_unselected.py b/plotly/graph_objs/choroplethmapbox/_unselected.py
index 35b6305e919..892b3c32269 100644
--- a/plotly/graph_objs/choroplethmapbox/_unselected.py
+++ b/plotly/graph_objs/choroplethmapbox/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmapbox"
-    _path_str = "choroplethmapbox.unselected"
+    _parent_path_str = 'choroplethmapbox'
+    _path_str = 'choroplethmapbox.unselected'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.choroplethmapbox.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.choroplethmapbox.unselecte
             d.Marker` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmapbox.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmapbox.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmapbox.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmapbox/colorbar/__init__.py b/plotly/graph_objs/choroplethmapbox/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/choroplethmapbox/colorbar/__init__.py
+++ b/plotly/graph_objs/choroplethmapbox/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/choroplethmapbox/colorbar/_tickfont.py b/plotly/graph_objs/choroplethmapbox/colorbar/_tickfont.py
index e428b19cb5a..f8b7b11cd6c 100644
--- a/plotly/graph_objs/choroplethmapbox/colorbar/_tickfont.py
+++ b/plotly/graph_objs/choroplethmapbox/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmapbox.colorbar"
-    _path_str = "choroplethmapbox.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'choroplethmapbox.colorbar'
+    _path_str = 'choroplethmapbox.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmapbox.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmapbox.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.choroplethmapbox.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmapbox/colorbar/_tickformatstop.py b/plotly/graph_objs/choroplethmapbox/colorbar/_tickformatstop.py
index 7f5c44ccf3f..845c9232bd9 100644
--- a/plotly/graph_objs/choroplethmapbox/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/choroplethmapbox/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmapbox.colorbar"
-    _path_str = "choroplethmapbox.colorbar.tickformatstop"
+    _parent_path_str = 'choroplethmapbox.colorbar'
+    _path_str = 'choroplethmapbox.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmapbox.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmapbox.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmapbox.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmapbox/colorbar/_title.py b/plotly/graph_objs/choroplethmapbox/colorbar/_title.py
index 155db24be97..222575408b4 100644
--- a/plotly/graph_objs/choroplethmapbox/colorbar/_title.py
+++ b/plotly/graph_objs/choroplethmapbox/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmapbox.colorbar"
-    _path_str = "choroplethmapbox.colorbar.title"
+    _parent_path_str = 'choroplethmapbox.colorbar'
+    _path_str = 'choroplethmapbox.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.choroplethmapbox.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmapbox.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmapbox.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmapbox.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmapbox/colorbar/title/__init__.py b/plotly/graph_objs/choroplethmapbox/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/choroplethmapbox/colorbar/title/__init__.py
+++ b/plotly/graph_objs/choroplethmapbox/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/choroplethmapbox/colorbar/title/_font.py b/plotly/graph_objs/choroplethmapbox/colorbar/title/_font.py
index 0e691e406a1..f486514477c 100644
--- a/plotly/graph_objs/choroplethmapbox/colorbar/title/_font.py
+++ b/plotly/graph_objs/choroplethmapbox/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmapbox.colorbar.title"
-    _path_str = "choroplethmapbox.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'choroplethmapbox.colorbar.title'
+    _path_str = 'choroplethmapbox.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmapbox.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmapbox.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.choroplethmapbox.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmapbox/hoverlabel/__init__.py b/plotly/graph_objs/choroplethmapbox/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/choroplethmapbox/hoverlabel/__init__.py
+++ b/plotly/graph_objs/choroplethmapbox/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/choroplethmapbox/hoverlabel/_font.py b/plotly/graph_objs/choroplethmapbox/hoverlabel/_font.py
index d68e020e8b8..1ebb57401f5 100644
--- a/plotly/graph_objs/choroplethmapbox/hoverlabel/_font.py
+++ b/plotly/graph_objs/choroplethmapbox/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmapbox.hoverlabel"
-    _path_str = "choroplethmapbox.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'choroplethmapbox.hoverlabel'
+    _path_str = 'choroplethmapbox.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmapbox.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmapbox.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.choroplethmapbox.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmapbox/legendgrouptitle/__init__.py b/plotly/graph_objs/choroplethmapbox/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/choroplethmapbox/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/choroplethmapbox/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/choroplethmapbox/legendgrouptitle/_font.py b/plotly/graph_objs/choroplethmapbox/legendgrouptitle/_font.py
index 75512dc09fb..75e69080539 100644
--- a/plotly/graph_objs/choroplethmapbox/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/choroplethmapbox/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmapbox.legendgrouptitle"
-    _path_str = "choroplethmapbox.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'choroplethmapbox.legendgrouptitle'
+    _path_str = 'choroplethmapbox.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmapbox.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmapbox.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.choroplethmapbox.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmapbox/marker/__init__.py b/plotly/graph_objs/choroplethmapbox/marker/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/choroplethmapbox/marker/__init__.py
+++ b/plotly/graph_objs/choroplethmapbox/marker/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/choroplethmapbox/marker/_line.py b/plotly/graph_objs/choroplethmapbox/marker/_line.py
index 0e58dc40e08..37824eaee97 100644
--- a/plotly/graph_objs/choroplethmapbox/marker/_line.py
+++ b/plotly/graph_objs/choroplethmapbox/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmapbox.marker"
-    _path_str = "choroplethmapbox.marker.line"
+    _parent_path_str = 'choroplethmapbox.marker'
+    _path_str = 'choroplethmapbox.marker.line'
     _valid_props = {"color", "colorsrc", "width", "widthsrc"}
 
     @property
@@ -31,11 +35,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -49,11 +53,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def width(self):
@@ -68,11 +72,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -86,11 +90,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -111,10 +115,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, width=None, widthsrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -144,9 +152,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -156,19 +164,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmapbox.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmapbox.marker.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmapbox.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmapbox/selected/__init__.py b/plotly/graph_objs/choroplethmapbox/selected/__init__.py
index 17b6d670bc4..5abe297c1ca 100644
--- a/plotly/graph_objs/choroplethmapbox/selected/__init__.py
+++ b/plotly/graph_objs/choroplethmapbox/selected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._marker.Marker"])
diff --git a/plotly/graph_objs/choroplethmapbox/selected/_marker.py b/plotly/graph_objs/choroplethmapbox/selected/_marker.py
index 52fdc754c92..7537f2a1428 100644
--- a/plotly/graph_objs/choroplethmapbox/selected/_marker.py
+++ b/plotly/graph_objs/choroplethmapbox/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmapbox.selected"
-    _path_str = "choroplethmapbox.selected.marker"
+    _parent_path_str = 'choroplethmapbox.selected'
+    _path_str = 'choroplethmapbox.selected.marker'
     _valid_props = {"opacity"}
 
     @property
@@ -23,11 +27,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -35,8 +39,11 @@ def _prop_descriptions(self):
         opacity
             Sets the marker opacity of selected points.
         """
-
-    def __init__(self, arg=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -53,9 +60,9 @@ def __init__(self, arg=None, opacity=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -65,16 +72,16 @@ def __init__(self, arg=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmapbox.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmapbox.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmapbox.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("opacity", arg, opacity)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/choroplethmapbox/unselected/__init__.py b/plotly/graph_objs/choroplethmapbox/unselected/__init__.py
index 17b6d670bc4..5abe297c1ca 100644
--- a/plotly/graph_objs/choroplethmapbox/unselected/__init__.py
+++ b/plotly/graph_objs/choroplethmapbox/unselected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._marker.Marker"])
diff --git a/plotly/graph_objs/choroplethmapbox/unselected/_marker.py b/plotly/graph_objs/choroplethmapbox/unselected/_marker.py
index 4b0c9c707c6..dfa08e554e8 100644
--- a/plotly/graph_objs/choroplethmapbox/unselected/_marker.py
+++ b/plotly/graph_objs/choroplethmapbox/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "choroplethmapbox.unselected"
-    _path_str = "choroplethmapbox.unselected.marker"
+    _parent_path_str = 'choroplethmapbox.unselected'
+    _path_str = 'choroplethmapbox.unselected.marker'
     _valid_props = {"opacity"}
 
     @property
@@ -24,11 +28,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             Sets the marker opacity of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, opacity=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.choroplethmapbox.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.choroplethmapbox.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.choroplethmapbox.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("opacity", arg, opacity)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/cone/__init__.py b/plotly/graph_objs/cone/__init__.py
index c3eb9c5f21e..244b32a925b 100644
--- a/plotly/graph_objs/cone/__init__.py
+++ b/plotly/graph_objs/cone/__init__.py
@@ -1,15 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._lighting import Lighting
+    from ._lightposition import Lightposition
+    from ._stream import Stream
+    from . import colorbar
+    from . import hoverlabel
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar', '.hoverlabel', '.legendgrouptitle'],
+        ['._colorbar.ColorBar', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._lighting.Lighting', '._lightposition.Lightposition', '._stream.Stream']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar", ".hoverlabel", ".legendgrouptitle"],
-    [
-        "._colorbar.ColorBar",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._lighting.Lighting",
-        "._lightposition.Lightposition",
-        "._stream.Stream",
-    ],
-)
diff --git a/plotly/graph_objs/cone/_colorbar.py b/plotly/graph_objs/cone/_colorbar.py
index 992ae1811a7..a8e81a3ed85 100644
--- a/plotly/graph_objs/cone/_colorbar.py
+++ b/plotly/graph_objs/cone/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "cone"
-    _path_str = "cone.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'cone'
+    _path_str = 'cone.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.cone.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.cone.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.cone.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.cone.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1649,9 +1601,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1661,64 +1613,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.cone.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.cone.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.cone.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/cone/_hoverlabel.py b/plotly/graph_objs/cone/_hoverlabel.py
index ecb067e96fe..f6eaf0f2408 100644
--- a/plotly/graph_objs/cone/_hoverlabel.py
+++ b/plotly/graph_objs/cone/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "cone"
-    _path_str = "cone.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'cone'
+    _path_str = 'cone.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.cone.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.cone.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.cone.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.cone.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/cone/_legendgrouptitle.py b/plotly/graph_objs/cone/_legendgrouptitle.py
index bf86738c7bf..c0483f6daeb 100644
--- a/plotly/graph_objs/cone/_legendgrouptitle.py
+++ b/plotly/graph_objs/cone/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "cone"
-    _path_str = "cone.legendgrouptitle"
+    _parent_path_str = 'cone'
+    _path_str = 'cone.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.cone.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.cone.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.cone.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.cone.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/cone/_lighting.py b/plotly/graph_objs/cone/_lighting.py
index 9feeee4f318..029fe100d08 100644
--- a/plotly/graph_objs/cone/_lighting.py
+++ b/plotly/graph_objs/cone/_lighting.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,17 +11,9 @@
 
 class Lighting(_BaseTraceHierarchyType):
 
-    _parent_path_str = "cone"
-    _path_str = "cone.lighting"
-    _valid_props = {
-        "ambient",
-        "diffuse",
-        "facenormalsepsilon",
-        "fresnel",
-        "roughness",
-        "specular",
-        "vertexnormalsepsilon",
-    }
+    _parent_path_str = 'cone'
+    _path_str = 'cone.lighting'
+    _valid_props = {"ambient", "diffuse", "facenormalsepsilon", "fresnel", "roughness", "specular", "vertexnormalsepsilon"}
 
     @property
     def ambient(self):
@@ -32,11 +28,11 @@ def ambient(self):
         -------
         int|float
         """
-        return self["ambient"]
+        return self['ambient']
 
     @ambient.setter
     def ambient(self, val):
-        self["ambient"] = val
+        self['ambient'] = val
 
     @property
     def diffuse(self):
@@ -51,11 +47,11 @@ def diffuse(self):
         -------
         int|float
         """
-        return self["diffuse"]
+        return self['diffuse']
 
     @diffuse.setter
     def diffuse(self, val):
-        self["diffuse"] = val
+        self['diffuse'] = val
 
     @property
     def facenormalsepsilon(self):
@@ -70,11 +66,11 @@ def facenormalsepsilon(self):
         -------
         int|float
         """
-        return self["facenormalsepsilon"]
+        return self['facenormalsepsilon']
 
     @facenormalsepsilon.setter
     def facenormalsepsilon(self, val):
-        self["facenormalsepsilon"] = val
+        self['facenormalsepsilon'] = val
 
     @property
     def fresnel(self):
@@ -90,11 +86,11 @@ def fresnel(self):
         -------
         int|float
         """
-        return self["fresnel"]
+        return self['fresnel']
 
     @fresnel.setter
     def fresnel(self, val):
-        self["fresnel"] = val
+        self['fresnel'] = val
 
     @property
     def roughness(self):
@@ -109,11 +105,11 @@ def roughness(self):
         -------
         int|float
         """
-        return self["roughness"]
+        return self['roughness']
 
     @roughness.setter
     def roughness(self, val):
-        self["roughness"] = val
+        self['roughness'] = val
 
     @property
     def specular(self):
@@ -128,11 +124,11 @@ def specular(self):
         -------
         int|float
         """
-        return self["specular"]
+        return self['specular']
 
     @specular.setter
     def specular(self, val):
-        self["specular"] = val
+        self['specular'] = val
 
     @property
     def vertexnormalsepsilon(self):
@@ -147,11 +143,11 @@ def vertexnormalsepsilon(self):
         -------
         int|float
         """
-        return self["vertexnormalsepsilon"]
+        return self['vertexnormalsepsilon']
 
     @vertexnormalsepsilon.setter
     def vertexnormalsepsilon(self, val):
-        self["vertexnormalsepsilon"] = val
+        self['vertexnormalsepsilon'] = val
 
     @property
     def _prop_descriptions(self):
@@ -180,19 +176,17 @@ def _prop_descriptions(self):
             Epsilon for vertex normals calculation avoids math
             issues arising from degenerate geometry.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        ambient=None,
-        diffuse=None,
-        facenormalsepsilon=None,
-        fresnel=None,
-        roughness=None,
-        specular=None,
-        vertexnormalsepsilon=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            ambient=None,
+            diffuse=None,
+            facenormalsepsilon=None,
+            fresnel=None,
+            roughness=None,
+            specular=None,
+            vertexnormalsepsilon=None,
+            **kwargs
+        ):
         """
         Construct a new Lighting object
 
@@ -229,9 +223,9 @@ def __init__(
         -------
         Lighting
         """
-        super().__init__("lighting")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('lighting')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -241,22 +235,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.cone.Lighting
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.cone.Lighting`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("ambient", arg, ambient)
-        self._set_property("diffuse", arg, diffuse)
-        self._set_property("facenormalsepsilon", arg, facenormalsepsilon)
-        self._set_property("fresnel", arg, fresnel)
-        self._set_property("roughness", arg, roughness)
-        self._set_property("specular", arg, specular)
-        self._set_property("vertexnormalsepsilon", arg, vertexnormalsepsilon)
+an instance of :class:`plotly.graph_objs.cone.Lighting`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('ambient', arg, ambient)
+        self._set_property('diffuse', arg, diffuse)
+        self._set_property('facenormalsepsilon', arg, facenormalsepsilon)
+        self._set_property('fresnel', arg, fresnel)
+        self._set_property('roughness', arg, roughness)
+        self._set_property('specular', arg, specular)
+        self._set_property('vertexnormalsepsilon', arg, vertexnormalsepsilon)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/cone/_lightposition.py b/plotly/graph_objs/cone/_lightposition.py
index 737785ef37e..299841ccaa6 100644
--- a/plotly/graph_objs/cone/_lightposition.py
+++ b/plotly/graph_objs/cone/_lightposition.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Lightposition(_BaseTraceHierarchyType):
 
-    _parent_path_str = "cone"
-    _path_str = "cone.lightposition"
+    _parent_path_str = 'cone'
+    _path_str = 'cone.lightposition'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -23,11 +27,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -41,11 +45,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -59,11 +63,11 @@ def z(self):
         -------
         int|float
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -78,8 +82,13 @@ def _prop_descriptions(self):
             Numeric vector, representing the Z coordinate for each
             vertex.
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Lightposition object
 
@@ -103,9 +112,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Lightposition
         """
-        super().__init__("lightposition")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('lightposition')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -115,18 +124,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.cone.Lightposition
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.cone.Lightposition`"""
-            )
+an instance of :class:`plotly.graph_objs.cone.Lightposition`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/cone/_stream.py b/plotly/graph_objs/cone/_stream.py
index 0bb3806ed2b..59b2015a2d2 100644
--- a/plotly/graph_objs/cone/_stream.py
+++ b/plotly/graph_objs/cone/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "cone"
-    _path_str = "cone.stream"
+    _parent_path_str = 'cone'
+    _path_str = 'cone.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.cone.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.cone.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.cone.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/cone/colorbar/__init__.py b/plotly/graph_objs/cone/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/cone/colorbar/__init__.py
+++ b/plotly/graph_objs/cone/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/cone/colorbar/_tickfont.py b/plotly/graph_objs/cone/colorbar/_tickfont.py
index 9296220ef49..b244e6c3c84 100644
--- a/plotly/graph_objs/cone/colorbar/_tickfont.py
+++ b/plotly/graph_objs/cone/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "cone.colorbar"
-    _path_str = "cone.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'cone.colorbar'
+    _path_str = 'cone.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.cone.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.cone.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.cone.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/cone/colorbar/_tickformatstop.py b/plotly/graph_objs/cone/colorbar/_tickformatstop.py
index d9c4699f10a..68614ef9470 100644
--- a/plotly/graph_objs/cone/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/cone/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "cone.colorbar"
-    _path_str = "cone.colorbar.tickformatstop"
+    _parent_path_str = 'cone.colorbar'
+    _path_str = 'cone.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.cone.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.cone.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.cone.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/cone/colorbar/_title.py b/plotly/graph_objs/cone/colorbar/_title.py
index 760e95a2748..76a1b32ece6 100644
--- a/plotly/graph_objs/cone/colorbar/_title.py
+++ b/plotly/graph_objs/cone/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "cone.colorbar"
-    _path_str = "cone.colorbar.title"
+    _parent_path_str = 'cone.colorbar'
+    _path_str = 'cone.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.cone.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.cone.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.cone.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.cone.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/cone/colorbar/title/__init__.py b/plotly/graph_objs/cone/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/cone/colorbar/title/__init__.py
+++ b/plotly/graph_objs/cone/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/cone/colorbar/title/_font.py b/plotly/graph_objs/cone/colorbar/title/_font.py
index 25debdef61c..882ea82d331 100644
--- a/plotly/graph_objs/cone/colorbar/title/_font.py
+++ b/plotly/graph_objs/cone/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "cone.colorbar.title"
-    _path_str = "cone.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'cone.colorbar.title'
+    _path_str = 'cone.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.cone.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.cone.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.cone.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/cone/hoverlabel/__init__.py b/plotly/graph_objs/cone/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/cone/hoverlabel/__init__.py
+++ b/plotly/graph_objs/cone/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/cone/hoverlabel/_font.py b/plotly/graph_objs/cone/hoverlabel/_font.py
index d6ab1619581..15234219e00 100644
--- a/plotly/graph_objs/cone/hoverlabel/_font.py
+++ b/plotly/graph_objs/cone/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "cone.hoverlabel"
-    _path_str = "cone.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'cone.hoverlabel'
+    _path_str = 'cone.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.cone.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.cone.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.cone.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/cone/legendgrouptitle/__init__.py b/plotly/graph_objs/cone/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/cone/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/cone/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/cone/legendgrouptitle/_font.py b/plotly/graph_objs/cone/legendgrouptitle/_font.py
index f2eb484bc23..4c8fd420096 100644
--- a/plotly/graph_objs/cone/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/cone/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "cone.legendgrouptitle"
-    _path_str = "cone.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'cone.legendgrouptitle'
+    _path_str = 'cone.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.cone.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.cone.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.cone.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contour/__init__.py b/plotly/graph_objs/contour/__init__.py
index 6830694f751..bd710981baf 100644
--- a/plotly/graph_objs/contour/__init__.py
+++ b/plotly/graph_objs/contour/__init__.py
@@ -1,16 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._contours import Contours
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from . import colorbar
+    from . import contours
+    from . import hoverlabel
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar', '.contours', '.hoverlabel', '.legendgrouptitle'],
+        ['._colorbar.ColorBar', '._contours.Contours', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._stream.Stream', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar", ".contours", ".hoverlabel", ".legendgrouptitle"],
-    [
-        "._colorbar.ColorBar",
-        "._contours.Contours",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._stream.Stream",
-        "._textfont.Textfont",
-    ],
-)
diff --git a/plotly/graph_objs/contour/_colorbar.py b/plotly/graph_objs/contour/_colorbar.py
index 85d4f3124ca..66bfb97cf52 100644
--- a/plotly/graph_objs/contour/_colorbar.py
+++ b/plotly/graph_objs/contour/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contour"
-    _path_str = "contour.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'contour'
+    _path_str = 'contour.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.contour.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.contour.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.contour.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.contour.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contour.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contour.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.contour.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contour/_contours.py b/plotly/graph_objs/contour/_contours.py
index ef0f4374fbc..4d168c50cff 100644
--- a/plotly/graph_objs/contour/_contours.py
+++ b/plotly/graph_objs/contour/_contours.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,21 +11,9 @@
 
 class Contours(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contour"
-    _path_str = "contour.contours"
-    _valid_props = {
-        "coloring",
-        "end",
-        "labelfont",
-        "labelformat",
-        "operation",
-        "showlabels",
-        "showlines",
-        "size",
-        "start",
-        "type",
-        "value",
-    }
+    _parent_path_str = 'contour'
+    _path_str = 'contour.contours'
+    _valid_props = {"coloring", "end", "labelfont", "labelformat", "operation", "showlabels", "showlines", "size", "start", "type", "value"}
 
     @property
     def coloring(self):
@@ -40,11 +32,11 @@ def coloring(self):
         -------
         Any
         """
-        return self["coloring"]
+        return self['coloring']
 
     @coloring.setter
     def coloring(self, val):
-        self["coloring"] = val
+        self['coloring'] = val
 
     @property
     def end(self):
@@ -59,11 +51,11 @@ def end(self):
         -------
         int|float
         """
-        return self["end"]
+        return self['end']
 
     @end.setter
     def end(self, val):
-        self["end"] = val
+        self['end'] = val
 
     @property
     def labelfont(self):
@@ -82,11 +74,11 @@ def labelfont(self):
         -------
         plotly.graph_objs.contour.contours.Labelfont
         """
-        return self["labelfont"]
+        return self['labelfont']
 
     @labelfont.setter
     def labelfont(self, val):
-        self["labelfont"] = val
+        self['labelfont'] = val
 
     @property
     def labelformat(self):
@@ -104,11 +96,11 @@ def labelformat(self):
         -------
         str
         """
-        return self["labelformat"]
+        return self['labelformat']
 
     @labelformat.setter
     def labelformat(self, val):
-        self["labelformat"] = val
+        self['labelformat'] = val
 
     @property
     def operation(self):
@@ -131,11 +123,11 @@ def operation(self):
         -------
         Any
         """
-        return self["operation"]
+        return self['operation']
 
     @operation.setter
     def operation(self, val):
-        self["operation"] = val
+        self['operation'] = val
 
     @property
     def showlabels(self):
@@ -150,11 +142,11 @@ def showlabels(self):
         -------
         bool
         """
-        return self["showlabels"]
+        return self['showlabels']
 
     @showlabels.setter
     def showlabels(self, val):
-        self["showlabels"] = val
+        self['showlabels'] = val
 
     @property
     def showlines(self):
@@ -169,11 +161,11 @@ def showlines(self):
         -------
         bool
         """
-        return self["showlines"]
+        return self['showlines']
 
     @showlines.setter
     def showlines(self, val):
-        self["showlines"] = val
+        self['showlines'] = val
 
     @property
     def size(self):
@@ -187,11 +179,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def start(self):
@@ -206,11 +198,11 @@ def start(self):
         -------
         int|float
         """
-        return self["start"]
+        return self['start']
 
     @start.setter
     def start(self, val):
-        self["start"] = val
+        self['start'] = val
 
     @property
     def type(self):
@@ -228,11 +220,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def value(self):
@@ -251,11 +243,11 @@ def value(self):
         -------
         Any
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -316,23 +308,21 @@ def _prop_descriptions(self):
             array of two numbers where the first is the lower bound
             and the second is the upper bound.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        coloring=None,
-        end=None,
-        labelfont=None,
-        labelformat=None,
-        operation=None,
-        showlabels=None,
-        showlines=None,
-        size=None,
-        start=None,
-        type=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            coloring=None,
+            end=None,
+            labelfont=None,
+            labelformat=None,
+            operation=None,
+            showlabels=None,
+            showlines=None,
+            size=None,
+            start=None,
+            type=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Contours object
 
@@ -402,9 +392,9 @@ def __init__(
         -------
         Contours
         """
-        super().__init__("contours")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('contours')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -414,26 +404,26 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contour.Contours
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contour.Contours`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("coloring", arg, coloring)
-        self._set_property("end", arg, end)
-        self._set_property("labelfont", arg, labelfont)
-        self._set_property("labelformat", arg, labelformat)
-        self._set_property("operation", arg, operation)
-        self._set_property("showlabels", arg, showlabels)
-        self._set_property("showlines", arg, showlines)
-        self._set_property("size", arg, size)
-        self._set_property("start", arg, start)
-        self._set_property("type", arg, type)
-        self._set_property("value", arg, value)
+an instance of :class:`plotly.graph_objs.contour.Contours`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('coloring', arg, coloring)
+        self._set_property('end', arg, end)
+        self._set_property('labelfont', arg, labelfont)
+        self._set_property('labelformat', arg, labelformat)
+        self._set_property('operation', arg, operation)
+        self._set_property('showlabels', arg, showlabels)
+        self._set_property('showlines', arg, showlines)
+        self._set_property('size', arg, size)
+        self._set_property('start', arg, start)
+        self._set_property('type', arg, type)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contour/_hoverlabel.py b/plotly/graph_objs/contour/_hoverlabel.py
index 4b4d5ecb3ca..1a3e6a81a4e 100644
--- a/plotly/graph_objs/contour/_hoverlabel.py
+++ b/plotly/graph_objs/contour/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contour"
-    _path_str = "contour.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'contour'
+    _path_str = 'contour.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.contour.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contour.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contour.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.contour.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contour/_legendgrouptitle.py b/plotly/graph_objs/contour/_legendgrouptitle.py
index b5ffa80ebe8..b332e66081a 100644
--- a/plotly/graph_objs/contour/_legendgrouptitle.py
+++ b/plotly/graph_objs/contour/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contour"
-    _path_str = "contour.legendgrouptitle"
+    _parent_path_str = 'contour'
+    _path_str = 'contour.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.contour.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contour.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contour.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.contour.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contour/_line.py b/plotly/graph_objs/contour/_line.py
index 5b69afca1c2..ac869981c26 100644
--- a/plotly/graph_objs/contour/_line.py
+++ b/plotly/graph_objs/contour/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contour"
-    _path_str = "contour.line"
+    _parent_path_str = 'contour'
+    _path_str = 'contour.line'
     _valid_props = {"color", "dash", "smoothing", "width"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -52,11 +56,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def smoothing(self):
@@ -71,11 +75,11 @@ def smoothing(self):
         -------
         int|float
         """
-        return self["smoothing"]
+        return self['smoothing']
 
     @smoothing.setter
     def smoothing(self, val):
-        self["smoothing"] = val
+        self['smoothing'] = val
 
     @property
     def width(self):
@@ -91,11 +95,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -116,10 +120,14 @@ def _prop_descriptions(self):
             when `contours.type` is "levels". Defaults to 2 when
             `contour.type` is "constraint".
         """
-
-    def __init__(
-        self, arg=None, color=None, dash=None, smoothing=None, width=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dash=None,
+            smoothing=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -148,9 +156,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -160,19 +168,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contour.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contour.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.contour.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("smoothing", arg, smoothing)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('smoothing', arg, smoothing)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contour/_stream.py b/plotly/graph_objs/contour/_stream.py
index 377e5079593..d53c02f1bf8 100644
--- a/plotly/graph_objs/contour/_stream.py
+++ b/plotly/graph_objs/contour/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contour"
-    _path_str = "contour.stream"
+    _parent_path_str = 'contour'
+    _path_str = 'contour.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contour.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contour.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.contour.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contour/_textfont.py b/plotly/graph_objs/contour/_textfont.py
index 9f6be125dac..799e48f6a3d 100644
--- a/plotly/graph_objs/contour/_textfont.py
+++ b/plotly/graph_objs/contour/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contour"
-    _path_str = "contour.textfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'contour'
+    _path_str = 'contour.textfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -303,9 +295,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -315,24 +307,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contour.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contour.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.contour.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contour/colorbar/__init__.py b/plotly/graph_objs/contour/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/contour/colorbar/__init__.py
+++ b/plotly/graph_objs/contour/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/contour/colorbar/_tickfont.py b/plotly/graph_objs/contour/colorbar/_tickfont.py
index 9f48bd0f753..9d73981610c 100644
--- a/plotly/graph_objs/contour/colorbar/_tickfont.py
+++ b/plotly/graph_objs/contour/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contour.colorbar"
-    _path_str = "contour.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'contour.colorbar'
+    _path_str = 'contour.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contour.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contour.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.contour.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contour/colorbar/_tickformatstop.py b/plotly/graph_objs/contour/colorbar/_tickformatstop.py
index 2881ae4a84a..c02b0db55e9 100644
--- a/plotly/graph_objs/contour/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/contour/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contour.colorbar"
-    _path_str = "contour.colorbar.tickformatstop"
+    _parent_path_str = 'contour.colorbar'
+    _path_str = 'contour.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contour.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contour.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.contour.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contour/colorbar/_title.py b/plotly/graph_objs/contour/colorbar/_title.py
index b98fa282146..530d375a6db 100644
--- a/plotly/graph_objs/contour/colorbar/_title.py
+++ b/plotly/graph_objs/contour/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contour.colorbar"
-    _path_str = "contour.colorbar.title"
+    _parent_path_str = 'contour.colorbar'
+    _path_str = 'contour.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.contour.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contour.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contour.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.contour.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contour/colorbar/title/__init__.py b/plotly/graph_objs/contour/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/contour/colorbar/title/__init__.py
+++ b/plotly/graph_objs/contour/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/contour/colorbar/title/_font.py b/plotly/graph_objs/contour/colorbar/title/_font.py
index 0dd77b80e51..b87c17a5323 100644
--- a/plotly/graph_objs/contour/colorbar/title/_font.py
+++ b/plotly/graph_objs/contour/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contour.colorbar.title"
-    _path_str = "contour.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'contour.colorbar.title'
+    _path_str = 'contour.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contour.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contour.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.contour.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contour/contours/__init__.py b/plotly/graph_objs/contour/contours/__init__.py
index ca8d81e748c..7cedabc68e2 100644
--- a/plotly/graph_objs/contour/contours/__init__.py
+++ b/plotly/graph_objs/contour/contours/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._labelfont import Labelfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._labelfont.Labelfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._labelfont.Labelfont"])
diff --git a/plotly/graph_objs/contour/contours/_labelfont.py b/plotly/graph_objs/contour/contours/_labelfont.py
index 63420933834..1dded0d1ddd 100644
--- a/plotly/graph_objs/contour/contours/_labelfont.py
+++ b/plotly/graph_objs/contour/contours/_labelfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Labelfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contour.contours"
-    _path_str = "contour.contours.labelfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'contour.contours'
+    _path_str = 'contour.contours.labelfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Labelfont object
 
@@ -304,9 +296,9 @@ def __init__(
         -------
         Labelfont
         """
-        super().__init__("labelfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('labelfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -316,24 +308,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contour.contours.Labelfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contour.contours.Labelfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.contour.contours.Labelfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contour/hoverlabel/__init__.py b/plotly/graph_objs/contour/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/contour/hoverlabel/__init__.py
+++ b/plotly/graph_objs/contour/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/contour/hoverlabel/_font.py b/plotly/graph_objs/contour/hoverlabel/_font.py
index 59bb4af4aba..71efe17f701 100644
--- a/plotly/graph_objs/contour/hoverlabel/_font.py
+++ b/plotly/graph_objs/contour/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contour.hoverlabel"
-    _path_str = "contour.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'contour.hoverlabel'
+    _path_str = 'contour.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contour.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contour.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.contour.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contour/legendgrouptitle/__init__.py b/plotly/graph_objs/contour/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/contour/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/contour/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/contour/legendgrouptitle/_font.py b/plotly/graph_objs/contour/legendgrouptitle/_font.py
index 577248fb4a7..2261e48f912 100644
--- a/plotly/graph_objs/contour/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/contour/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contour.legendgrouptitle"
-    _path_str = "contour.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'contour.legendgrouptitle'
+    _path_str = 'contour.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contour.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contour.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.contour.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contourcarpet/__init__.py b/plotly/graph_objs/contourcarpet/__init__.py
index 8fe23c2e45d..37df9041d83 100644
--- a/plotly/graph_objs/contourcarpet/__init__.py
+++ b/plotly/graph_objs/contourcarpet/__init__.py
@@ -1,14 +1,20 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._contours import Contours
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._stream import Stream
+    from . import colorbar
+    from . import contours
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar', '.contours', '.legendgrouptitle'],
+        ['._colorbar.ColorBar', '._contours.Contours', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._stream.Stream']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar", ".contours", ".legendgrouptitle"],
-    [
-        "._colorbar.ColorBar",
-        "._contours.Contours",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._stream.Stream",
-    ],
-)
diff --git a/plotly/graph_objs/contourcarpet/_colorbar.py b/plotly/graph_objs/contourcarpet/_colorbar.py
index f66f9e07290..858e21e1180 100644
--- a/plotly/graph_objs/contourcarpet/_colorbar.py
+++ b/plotly/graph_objs/contourcarpet/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contourcarpet"
-    _path_str = "contourcarpet.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'contourcarpet'
+    _path_str = 'contourcarpet.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.contourcarpet.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.contourcarpet.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.contourcarpet.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.contourcarpet.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contourcarpet.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contourcarpet.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.contourcarpet.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contourcarpet/_contours.py b/plotly/graph_objs/contourcarpet/_contours.py
index 8a62c79c045..5a7783b1cff 100644
--- a/plotly/graph_objs/contourcarpet/_contours.py
+++ b/plotly/graph_objs/contourcarpet/_contours.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,21 +11,9 @@
 
 class Contours(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contourcarpet"
-    _path_str = "contourcarpet.contours"
-    _valid_props = {
-        "coloring",
-        "end",
-        "labelfont",
-        "labelformat",
-        "operation",
-        "showlabels",
-        "showlines",
-        "size",
-        "start",
-        "type",
-        "value",
-    }
+    _parent_path_str = 'contourcarpet'
+    _path_str = 'contourcarpet.contours'
+    _valid_props = {"coloring", "end", "labelfont", "labelformat", "operation", "showlabels", "showlines", "size", "start", "type", "value"}
 
     @property
     def coloring(self):
@@ -39,11 +31,11 @@ def coloring(self):
         -------
         Any
         """
-        return self["coloring"]
+        return self['coloring']
 
     @coloring.setter
     def coloring(self, val):
-        self["coloring"] = val
+        self['coloring'] = val
 
     @property
     def end(self):
@@ -58,11 +50,11 @@ def end(self):
         -------
         int|float
         """
-        return self["end"]
+        return self['end']
 
     @end.setter
     def end(self, val):
-        self["end"] = val
+        self['end'] = val
 
     @property
     def labelfont(self):
@@ -81,11 +73,11 @@ def labelfont(self):
         -------
         plotly.graph_objs.contourcarpet.contours.Labelfont
         """
-        return self["labelfont"]
+        return self['labelfont']
 
     @labelfont.setter
     def labelfont(self, val):
-        self["labelfont"] = val
+        self['labelfont'] = val
 
     @property
     def labelformat(self):
@@ -103,11 +95,11 @@ def labelformat(self):
         -------
         str
         """
-        return self["labelformat"]
+        return self['labelformat']
 
     @labelformat.setter
     def labelformat(self, val):
-        self["labelformat"] = val
+        self['labelformat'] = val
 
     @property
     def operation(self):
@@ -130,11 +122,11 @@ def operation(self):
         -------
         Any
         """
-        return self["operation"]
+        return self['operation']
 
     @operation.setter
     def operation(self, val):
-        self["operation"] = val
+        self['operation'] = val
 
     @property
     def showlabels(self):
@@ -149,11 +141,11 @@ def showlabels(self):
         -------
         bool
         """
-        return self["showlabels"]
+        return self['showlabels']
 
     @showlabels.setter
     def showlabels(self, val):
-        self["showlabels"] = val
+        self['showlabels'] = val
 
     @property
     def showlines(self):
@@ -168,11 +160,11 @@ def showlines(self):
         -------
         bool
         """
-        return self["showlines"]
+        return self['showlines']
 
     @showlines.setter
     def showlines(self, val):
-        self["showlines"] = val
+        self['showlines'] = val
 
     @property
     def size(self):
@@ -186,11 +178,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def start(self):
@@ -205,11 +197,11 @@ def start(self):
         -------
         int|float
         """
-        return self["start"]
+        return self['start']
 
     @start.setter
     def start(self, val):
-        self["start"] = val
+        self['start'] = val
 
     @property
     def type(self):
@@ -227,11 +219,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def value(self):
@@ -250,11 +242,11 @@ def value(self):
         -------
         Any
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -314,23 +306,21 @@ def _prop_descriptions(self):
             array of two numbers where the first is the lower bound
             and the second is the upper bound.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        coloring=None,
-        end=None,
-        labelfont=None,
-        labelformat=None,
-        operation=None,
-        showlabels=None,
-        showlines=None,
-        size=None,
-        start=None,
-        type=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            coloring=None,
+            end=None,
+            labelfont=None,
+            labelformat=None,
+            operation=None,
+            showlabels=None,
+            showlines=None,
+            size=None,
+            start=None,
+            type=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Contours object
 
@@ -399,9 +389,9 @@ def __init__(
         -------
         Contours
         """
-        super().__init__("contours")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('contours')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -411,26 +401,26 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contourcarpet.Contours
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contourcarpet.Contours`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("coloring", arg, coloring)
-        self._set_property("end", arg, end)
-        self._set_property("labelfont", arg, labelfont)
-        self._set_property("labelformat", arg, labelformat)
-        self._set_property("operation", arg, operation)
-        self._set_property("showlabels", arg, showlabels)
-        self._set_property("showlines", arg, showlines)
-        self._set_property("size", arg, size)
-        self._set_property("start", arg, start)
-        self._set_property("type", arg, type)
-        self._set_property("value", arg, value)
+an instance of :class:`plotly.graph_objs.contourcarpet.Contours`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('coloring', arg, coloring)
+        self._set_property('end', arg, end)
+        self._set_property('labelfont', arg, labelfont)
+        self._set_property('labelformat', arg, labelformat)
+        self._set_property('operation', arg, operation)
+        self._set_property('showlabels', arg, showlabels)
+        self._set_property('showlines', arg, showlines)
+        self._set_property('size', arg, size)
+        self._set_property('start', arg, start)
+        self._set_property('type', arg, type)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contourcarpet/_legendgrouptitle.py b/plotly/graph_objs/contourcarpet/_legendgrouptitle.py
index 0b0182c3788..78c62930453 100644
--- a/plotly/graph_objs/contourcarpet/_legendgrouptitle.py
+++ b/plotly/graph_objs/contourcarpet/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contourcarpet"
-    _path_str = "contourcarpet.legendgrouptitle"
+    _parent_path_str = 'contourcarpet'
+    _path_str = 'contourcarpet.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.contourcarpet.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contourcarpet.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contourcarpet.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.contourcarpet.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contourcarpet/_line.py b/plotly/graph_objs/contourcarpet/_line.py
index 5d8dfaabb6b..b65a93a388c 100644
--- a/plotly/graph_objs/contourcarpet/_line.py
+++ b/plotly/graph_objs/contourcarpet/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contourcarpet"
-    _path_str = "contourcarpet.line"
+    _parent_path_str = 'contourcarpet'
+    _path_str = 'contourcarpet.line'
     _valid_props = {"color", "dash", "smoothing", "width"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -52,11 +56,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def smoothing(self):
@@ -71,11 +75,11 @@ def smoothing(self):
         -------
         int|float
         """
-        return self["smoothing"]
+        return self['smoothing']
 
     @smoothing.setter
     def smoothing(self, val):
-        self["smoothing"] = val
+        self['smoothing'] = val
 
     @property
     def width(self):
@@ -91,11 +95,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -116,10 +120,14 @@ def _prop_descriptions(self):
             when `contours.type` is "levels". Defaults to 2 when
             `contour.type` is "constraint".
         """
-
-    def __init__(
-        self, arg=None, color=None, dash=None, smoothing=None, width=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dash=None,
+            smoothing=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -149,9 +157,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -161,19 +169,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contourcarpet.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contourcarpet.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.contourcarpet.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("smoothing", arg, smoothing)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('smoothing', arg, smoothing)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contourcarpet/_stream.py b/plotly/graph_objs/contourcarpet/_stream.py
index e70573422f9..180f3a46c5a 100644
--- a/plotly/graph_objs/contourcarpet/_stream.py
+++ b/plotly/graph_objs/contourcarpet/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contourcarpet"
-    _path_str = "contourcarpet.stream"
+    _parent_path_str = 'contourcarpet'
+    _path_str = 'contourcarpet.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contourcarpet.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contourcarpet.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.contourcarpet.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contourcarpet/colorbar/__init__.py b/plotly/graph_objs/contourcarpet/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/contourcarpet/colorbar/__init__.py
+++ b/plotly/graph_objs/contourcarpet/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/contourcarpet/colorbar/_tickfont.py b/plotly/graph_objs/contourcarpet/colorbar/_tickfont.py
index 541be1accb1..91e4cebb947 100644
--- a/plotly/graph_objs/contourcarpet/colorbar/_tickfont.py
+++ b/plotly/graph_objs/contourcarpet/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contourcarpet.colorbar"
-    _path_str = "contourcarpet.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'contourcarpet.colorbar'
+    _path_str = 'contourcarpet.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contourcarpet.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contourcarpet.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.contourcarpet.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contourcarpet/colorbar/_tickformatstop.py b/plotly/graph_objs/contourcarpet/colorbar/_tickformatstop.py
index 79742e915f4..0c403028be8 100644
--- a/plotly/graph_objs/contourcarpet/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/contourcarpet/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contourcarpet.colorbar"
-    _path_str = "contourcarpet.colorbar.tickformatstop"
+    _parent_path_str = 'contourcarpet.colorbar'
+    _path_str = 'contourcarpet.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contourcarpet.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contourcarpet.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.contourcarpet.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contourcarpet/colorbar/_title.py b/plotly/graph_objs/contourcarpet/colorbar/_title.py
index 7cfc3fcd0a7..a7e06b3b50d 100644
--- a/plotly/graph_objs/contourcarpet/colorbar/_title.py
+++ b/plotly/graph_objs/contourcarpet/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contourcarpet.colorbar"
-    _path_str = "contourcarpet.colorbar.title"
+    _parent_path_str = 'contourcarpet.colorbar'
+    _path_str = 'contourcarpet.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.contourcarpet.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contourcarpet.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contourcarpet.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.contourcarpet.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contourcarpet/colorbar/title/__init__.py b/plotly/graph_objs/contourcarpet/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/contourcarpet/colorbar/title/__init__.py
+++ b/plotly/graph_objs/contourcarpet/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/contourcarpet/colorbar/title/_font.py b/plotly/graph_objs/contourcarpet/colorbar/title/_font.py
index 8e80bfdbafd..1f3b855665e 100644
--- a/plotly/graph_objs/contourcarpet/colorbar/title/_font.py
+++ b/plotly/graph_objs/contourcarpet/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contourcarpet.colorbar.title"
-    _path_str = "contourcarpet.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'contourcarpet.colorbar.title'
+    _path_str = 'contourcarpet.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contourcarpet.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contourcarpet.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.contourcarpet.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contourcarpet/contours/__init__.py b/plotly/graph_objs/contourcarpet/contours/__init__.py
index ca8d81e748c..7cedabc68e2 100644
--- a/plotly/graph_objs/contourcarpet/contours/__init__.py
+++ b/plotly/graph_objs/contourcarpet/contours/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._labelfont import Labelfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._labelfont.Labelfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._labelfont.Labelfont"])
diff --git a/plotly/graph_objs/contourcarpet/contours/_labelfont.py b/plotly/graph_objs/contourcarpet/contours/_labelfont.py
index 730a04b8787..c1ebefea552 100644
--- a/plotly/graph_objs/contourcarpet/contours/_labelfont.py
+++ b/plotly/graph_objs/contourcarpet/contours/_labelfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Labelfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contourcarpet.contours"
-    _path_str = "contourcarpet.contours.labelfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'contourcarpet.contours'
+    _path_str = 'contourcarpet.contours.labelfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Labelfont object
 
@@ -304,9 +296,9 @@ def __init__(
         -------
         Labelfont
         """
-        super().__init__("labelfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('labelfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -316,24 +308,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contourcarpet.contours.Labelfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contourcarpet.contours.Labelfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.contourcarpet.contours.Labelfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/contourcarpet/legendgrouptitle/__init__.py b/plotly/graph_objs/contourcarpet/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/contourcarpet/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/contourcarpet/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/contourcarpet/legendgrouptitle/_font.py b/plotly/graph_objs/contourcarpet/legendgrouptitle/_font.py
index a45a8a1f015..51c9f15b384 100644
--- a/plotly/graph_objs/contourcarpet/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/contourcarpet/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "contourcarpet.legendgrouptitle"
-    _path_str = "contourcarpet.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'contourcarpet.legendgrouptitle'
+    _path_str = 'contourcarpet.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.contourcarpet.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.contourcarpet.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.contourcarpet.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymap/__init__.py b/plotly/graph_objs/densitymap/__init__.py
index 90ecc6d2d04..43cbf8ab33d 100644
--- a/plotly/graph_objs/densitymap/__init__.py
+++ b/plotly/graph_objs/densitymap/__init__.py
@@ -1,13 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._stream import Stream
+    from . import colorbar
+    from . import hoverlabel
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar', '.hoverlabel', '.legendgrouptitle'],
+        ['._colorbar.ColorBar', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._stream.Stream']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar", ".hoverlabel", ".legendgrouptitle"],
-    [
-        "._colorbar.ColorBar",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._stream.Stream",
-    ],
-)
diff --git a/plotly/graph_objs/densitymap/_colorbar.py b/plotly/graph_objs/densitymap/_colorbar.py
index 9ac17542b74..a954a25e74c 100644
--- a/plotly/graph_objs/densitymap/_colorbar.py
+++ b/plotly/graph_objs/densitymap/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymap"
-    _path_str = "densitymap.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'densitymap'
+    _path_str = 'densitymap.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.densitymap.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.densitymap.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -641,11 +595,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.densitymap.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -663,11 +617,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -686,11 +640,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -710,11 +664,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -728,11 +682,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -753,11 +707,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -772,11 +726,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -793,11 +747,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -812,11 +766,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -832,11 +786,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -850,11 +804,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -869,11 +823,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -887,11 +841,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -905,11 +859,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -924,11 +878,11 @@ def title(self):
         -------
         plotly.graph_objs.densitymap.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -948,11 +902,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -970,11 +924,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -988,11 +942,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1009,11 +963,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1033,11 +987,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1055,11 +1009,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1073,11 +1027,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1094,11 +1048,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1342,61 +1296,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1649,9 +1601,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1661,64 +1613,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymap.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymap.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.densitymap.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymap/_hoverlabel.py b/plotly/graph_objs/densitymap/_hoverlabel.py
index 8b5bb51aa42..27b8f91dccc 100644
--- a/plotly/graph_objs/densitymap/_hoverlabel.py
+++ b/plotly/graph_objs/densitymap/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymap"
-    _path_str = "densitymap.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'densitymap'
+    _path_str = 'densitymap.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.densitymap.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymap.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymap.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.densitymap.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymap/_legendgrouptitle.py b/plotly/graph_objs/densitymap/_legendgrouptitle.py
index 088c7c1760c..8feadbb7b31 100644
--- a/plotly/graph_objs/densitymap/_legendgrouptitle.py
+++ b/plotly/graph_objs/densitymap/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymap"
-    _path_str = "densitymap.legendgrouptitle"
+    _parent_path_str = 'densitymap'
+    _path_str = 'densitymap.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.densitymap.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymap.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymap.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.densitymap.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymap/_stream.py b/plotly/graph_objs/densitymap/_stream.py
index 8c552898e1a..6d91ab2ec03 100644
--- a/plotly/graph_objs/densitymap/_stream.py
+++ b/plotly/graph_objs/densitymap/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymap"
-    _path_str = "densitymap.stream"
+    _parent_path_str = 'densitymap'
+    _path_str = 'densitymap.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymap.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymap.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.densitymap.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymap/colorbar/__init__.py b/plotly/graph_objs/densitymap/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/densitymap/colorbar/__init__.py
+++ b/plotly/graph_objs/densitymap/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/densitymap/colorbar/_tickfont.py b/plotly/graph_objs/densitymap/colorbar/_tickfont.py
index 2177f1a8d29..67cd55bd720 100644
--- a/plotly/graph_objs/densitymap/colorbar/_tickfont.py
+++ b/plotly/graph_objs/densitymap/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymap.colorbar"
-    _path_str = "densitymap.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'densitymap.colorbar'
+    _path_str = 'densitymap.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymap.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymap.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.densitymap.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymap/colorbar/_tickformatstop.py b/plotly/graph_objs/densitymap/colorbar/_tickformatstop.py
index 94c09d099b4..4ab51d54ee9 100644
--- a/plotly/graph_objs/densitymap/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/densitymap/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymap.colorbar"
-    _path_str = "densitymap.colorbar.tickformatstop"
+    _parent_path_str = 'densitymap.colorbar'
+    _path_str = 'densitymap.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymap.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymap.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.densitymap.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymap/colorbar/_title.py b/plotly/graph_objs/densitymap/colorbar/_title.py
index 8d91992112f..879730f82d6 100644
--- a/plotly/graph_objs/densitymap/colorbar/_title.py
+++ b/plotly/graph_objs/densitymap/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymap.colorbar"
-    _path_str = "densitymap.colorbar.title"
+    _parent_path_str = 'densitymap.colorbar'
+    _path_str = 'densitymap.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.densitymap.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymap.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymap.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.densitymap.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymap/colorbar/title/__init__.py b/plotly/graph_objs/densitymap/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/densitymap/colorbar/title/__init__.py
+++ b/plotly/graph_objs/densitymap/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/densitymap/colorbar/title/_font.py b/plotly/graph_objs/densitymap/colorbar/title/_font.py
index 25cddae36d0..0e7f8fa8df8 100644
--- a/plotly/graph_objs/densitymap/colorbar/title/_font.py
+++ b/plotly/graph_objs/densitymap/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymap.colorbar.title"
-    _path_str = "densitymap.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'densitymap.colorbar.title'
+    _path_str = 'densitymap.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymap.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymap.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.densitymap.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymap/hoverlabel/__init__.py b/plotly/graph_objs/densitymap/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/densitymap/hoverlabel/__init__.py
+++ b/plotly/graph_objs/densitymap/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/densitymap/hoverlabel/_font.py b/plotly/graph_objs/densitymap/hoverlabel/_font.py
index 8a472eca20e..8a26aa077f3 100644
--- a/plotly/graph_objs/densitymap/hoverlabel/_font.py
+++ b/plotly/graph_objs/densitymap/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymap.hoverlabel"
-    _path_str = "densitymap.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'densitymap.hoverlabel'
+    _path_str = 'densitymap.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymap.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymap.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.densitymap.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymap/legendgrouptitle/__init__.py b/plotly/graph_objs/densitymap/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/densitymap/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/densitymap/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/densitymap/legendgrouptitle/_font.py b/plotly/graph_objs/densitymap/legendgrouptitle/_font.py
index d1f90139c20..d8c6ea64f94 100644
--- a/plotly/graph_objs/densitymap/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/densitymap/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymap.legendgrouptitle"
-    _path_str = "densitymap.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'densitymap.legendgrouptitle'
+    _path_str = 'densitymap.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymap.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymap.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.densitymap.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymapbox/__init__.py b/plotly/graph_objs/densitymapbox/__init__.py
index 90ecc6d2d04..43cbf8ab33d 100644
--- a/plotly/graph_objs/densitymapbox/__init__.py
+++ b/plotly/graph_objs/densitymapbox/__init__.py
@@ -1,13 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._stream import Stream
+    from . import colorbar
+    from . import hoverlabel
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar', '.hoverlabel', '.legendgrouptitle'],
+        ['._colorbar.ColorBar', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._stream.Stream']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar", ".hoverlabel", ".legendgrouptitle"],
-    [
-        "._colorbar.ColorBar",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._stream.Stream",
-    ],
-)
diff --git a/plotly/graph_objs/densitymapbox/_colorbar.py b/plotly/graph_objs/densitymapbox/_colorbar.py
index 6e9befa57f2..e405e471fd4 100644
--- a/plotly/graph_objs/densitymapbox/_colorbar.py
+++ b/plotly/graph_objs/densitymapbox/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymapbox"
-    _path_str = "densitymapbox.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'densitymapbox'
+    _path_str = 'densitymapbox.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.densitymapbox.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.densitymapbox.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.densitymapbox.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.densitymapbox.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymapbox.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymapbox.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.densitymapbox.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymapbox/_hoverlabel.py b/plotly/graph_objs/densitymapbox/_hoverlabel.py
index 610e7149261..f196c459583 100644
--- a/plotly/graph_objs/densitymapbox/_hoverlabel.py
+++ b/plotly/graph_objs/densitymapbox/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymapbox"
-    _path_str = "densitymapbox.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'densitymapbox'
+    _path_str = 'densitymapbox.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.densitymapbox.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymapbox.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymapbox.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.densitymapbox.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymapbox/_legendgrouptitle.py b/plotly/graph_objs/densitymapbox/_legendgrouptitle.py
index c474355b76e..2177cd3e65b 100644
--- a/plotly/graph_objs/densitymapbox/_legendgrouptitle.py
+++ b/plotly/graph_objs/densitymapbox/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymapbox"
-    _path_str = "densitymapbox.legendgrouptitle"
+    _parent_path_str = 'densitymapbox'
+    _path_str = 'densitymapbox.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.densitymapbox.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymapbox.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymapbox.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.densitymapbox.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymapbox/_stream.py b/plotly/graph_objs/densitymapbox/_stream.py
index cf7ba5e5f79..044550b6b49 100644
--- a/plotly/graph_objs/densitymapbox/_stream.py
+++ b/plotly/graph_objs/densitymapbox/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymapbox"
-    _path_str = "densitymapbox.stream"
+    _parent_path_str = 'densitymapbox'
+    _path_str = 'densitymapbox.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymapbox.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymapbox.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.densitymapbox.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymapbox/colorbar/__init__.py b/plotly/graph_objs/densitymapbox/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/densitymapbox/colorbar/__init__.py
+++ b/plotly/graph_objs/densitymapbox/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/densitymapbox/colorbar/_tickfont.py b/plotly/graph_objs/densitymapbox/colorbar/_tickfont.py
index 74715514d1b..1f37694bc48 100644
--- a/plotly/graph_objs/densitymapbox/colorbar/_tickfont.py
+++ b/plotly/graph_objs/densitymapbox/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymapbox.colorbar"
-    _path_str = "densitymapbox.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'densitymapbox.colorbar'
+    _path_str = 'densitymapbox.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymapbox.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymapbox.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.densitymapbox.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymapbox/colorbar/_tickformatstop.py b/plotly/graph_objs/densitymapbox/colorbar/_tickformatstop.py
index 23fa41065f4..5c1aaadb8e6 100644
--- a/plotly/graph_objs/densitymapbox/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/densitymapbox/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymapbox.colorbar"
-    _path_str = "densitymapbox.colorbar.tickformatstop"
+    _parent_path_str = 'densitymapbox.colorbar'
+    _path_str = 'densitymapbox.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymapbox.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymapbox.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.densitymapbox.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymapbox/colorbar/_title.py b/plotly/graph_objs/densitymapbox/colorbar/_title.py
index e0176aded70..60797a5e25b 100644
--- a/plotly/graph_objs/densitymapbox/colorbar/_title.py
+++ b/plotly/graph_objs/densitymapbox/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymapbox.colorbar"
-    _path_str = "densitymapbox.colorbar.title"
+    _parent_path_str = 'densitymapbox.colorbar'
+    _path_str = 'densitymapbox.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.densitymapbox.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymapbox.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymapbox.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.densitymapbox.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymapbox/colorbar/title/__init__.py b/plotly/graph_objs/densitymapbox/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/densitymapbox/colorbar/title/__init__.py
+++ b/plotly/graph_objs/densitymapbox/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/densitymapbox/colorbar/title/_font.py b/plotly/graph_objs/densitymapbox/colorbar/title/_font.py
index c5f03a53d65..a7d7da15572 100644
--- a/plotly/graph_objs/densitymapbox/colorbar/title/_font.py
+++ b/plotly/graph_objs/densitymapbox/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymapbox.colorbar.title"
-    _path_str = "densitymapbox.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'densitymapbox.colorbar.title'
+    _path_str = 'densitymapbox.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymapbox.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymapbox.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.densitymapbox.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymapbox/hoverlabel/__init__.py b/plotly/graph_objs/densitymapbox/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/densitymapbox/hoverlabel/__init__.py
+++ b/plotly/graph_objs/densitymapbox/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/densitymapbox/hoverlabel/_font.py b/plotly/graph_objs/densitymapbox/hoverlabel/_font.py
index 055a4f7f169..6fbe8c622c0 100644
--- a/plotly/graph_objs/densitymapbox/hoverlabel/_font.py
+++ b/plotly/graph_objs/densitymapbox/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymapbox.hoverlabel"
-    _path_str = "densitymapbox.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'densitymapbox.hoverlabel'
+    _path_str = 'densitymapbox.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymapbox.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymapbox.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.densitymapbox.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/densitymapbox/legendgrouptitle/__init__.py b/plotly/graph_objs/densitymapbox/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/densitymapbox/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/densitymapbox/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/densitymapbox/legendgrouptitle/_font.py b/plotly/graph_objs/densitymapbox/legendgrouptitle/_font.py
index 00ce1aae917..7d05ac43e33 100644
--- a/plotly/graph_objs/densitymapbox/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/densitymapbox/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "densitymapbox.legendgrouptitle"
-    _path_str = "densitymapbox.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'densitymapbox.legendgrouptitle'
+    _path_str = 'densitymapbox.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.densitymapbox.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.densitymapbox.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.densitymapbox.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/__init__.py b/plotly/graph_objs/funnel/__init__.py
index e0dcdc7a110..cade63d9a9c 100644
--- a/plotly/graph_objs/funnel/__init__.py
+++ b/plotly/graph_objs/funnel/__init__.py
@@ -1,17 +1,24 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._connector import Connector
+    from ._hoverlabel import Hoverlabel
+    from ._insidetextfont import Insidetextfont
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._marker import Marker
+    from ._outsidetextfont import Outsidetextfont
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from . import connector
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.connector', '.hoverlabel', '.legendgrouptitle', '.marker'],
+        ['._connector.Connector', '._hoverlabel.Hoverlabel', '._insidetextfont.Insidetextfont', '._legendgrouptitle.Legendgrouptitle', '._marker.Marker', '._outsidetextfont.Outsidetextfont', '._stream.Stream', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".connector", ".hoverlabel", ".legendgrouptitle", ".marker"],
-    [
-        "._connector.Connector",
-        "._hoverlabel.Hoverlabel",
-        "._insidetextfont.Insidetextfont",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._marker.Marker",
-        "._outsidetextfont.Outsidetextfont",
-        "._stream.Stream",
-        "._textfont.Textfont",
-    ],
-)
diff --git a/plotly/graph_objs/funnel/_connector.py b/plotly/graph_objs/funnel/_connector.py
index ed07fd07199..c07ac4bf476 100644
--- a/plotly/graph_objs/funnel/_connector.py
+++ b/plotly/graph_objs/funnel/_connector.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Connector(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel"
-    _path_str = "funnel.connector"
+    _parent_path_str = 'funnel'
+    _path_str = 'funnel.connector'
     _valid_props = {"fillcolor", "line", "visible"}
 
     @property
@@ -27,11 +31,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def line(self):
@@ -46,11 +50,11 @@ def line(self):
         -------
         plotly.graph_objs.funnel.connector.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def visible(self):
@@ -64,11 +68,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -81,8 +85,13 @@ def _prop_descriptions(self):
         visible
             Determines if connector regions and lines are drawn.
         """
-
-    def __init__(self, arg=None, fillcolor=None, line=None, visible=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            fillcolor=None,
+            line=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Connector object
 
@@ -104,9 +113,9 @@ def __init__(self, arg=None, fillcolor=None, line=None, visible=None, **kwargs):
         -------
         Connector
         """
-        super().__init__("connector")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('connector')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -116,18 +125,18 @@ def __init__(self, arg=None, fillcolor=None, line=None, visible=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.Connector
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.Connector`"""
-            )
+an instance of :class:`plotly.graph_objs.funnel.Connector`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("line", arg, line)
-        self._set_property("visible", arg, visible)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('line', arg, line)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/_hoverlabel.py b/plotly/graph_objs/funnel/_hoverlabel.py
index 345c8b02a75..3469badd59c 100644
--- a/plotly/graph_objs/funnel/_hoverlabel.py
+++ b/plotly/graph_objs/funnel/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel"
-    _path_str = "funnel.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'funnel'
+    _path_str = 'funnel.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.funnel.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.funnel.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/_insidetextfont.py b/plotly/graph_objs/funnel/_insidetextfont.py
index 181e01cc9d7..81c82ba098e 100644
--- a/plotly/graph_objs/funnel/_insidetextfont.py
+++ b/plotly/graph_objs/funnel/_insidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Insidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel"
-    _path_str = "funnel.insidetextfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'funnel'
+    _path_str = 'funnel.insidetextfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Insidetextfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Insidetextfont
         """
-        super().__init__("insidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('insidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.Insidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.Insidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.funnel.Insidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/_legendgrouptitle.py b/plotly/graph_objs/funnel/_legendgrouptitle.py
index 5e38ba56993..3212127257c 100644
--- a/plotly/graph_objs/funnel/_legendgrouptitle.py
+++ b/plotly/graph_objs/funnel/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel"
-    _path_str = "funnel.legendgrouptitle"
+    _parent_path_str = 'funnel'
+    _path_str = 'funnel.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.funnel.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.funnel.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/_marker.py b/plotly/graph_objs/funnel/_marker.py
index 598cd19bd60..6fa3faff344 100644
--- a/plotly/graph_objs/funnel/_marker.py
+++ b/plotly/graph_objs/funnel/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,25 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel"
-    _path_str = "funnel.marker"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "line",
-        "opacity",
-        "opacitysrc",
-        "reversescale",
-        "showscale",
-    }
+    _parent_path_str = 'funnel'
+    _path_str = 'funnel.marker'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "line", "opacity", "opacitysrc", "reversescale", "showscale"}
 
     @property
     def autocolorscale(self):
@@ -45,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -68,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -89,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -111,11 +99,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -132,11 +120,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -160,11 +148,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -185,11 +173,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -204,11 +192,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.funnel.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -256,11 +244,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -274,11 +262,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def line(self):
@@ -293,11 +281,11 @@ def line(self):
         -------
         plotly.graph_objs.funnel.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def opacity(self):
@@ -312,11 +300,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -330,11 +318,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def reversescale(self):
@@ -351,11 +339,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -371,11 +359,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def _prop_descriptions(self):
@@ -465,27 +453,25 @@ def _prop_descriptions(self):
             this trace. Has an effect only if in `marker.color` is
             set to a numerical array.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        line=None,
-        opacity=None,
-        opacitysrc=None,
-        reversescale=None,
-        showscale=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            line=None,
+            opacity=None,
+            opacitysrc=None,
+            reversescale=None,
+            showscale=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -583,9 +569,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -595,30 +581,30 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("line", arg, line)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
+an instance of :class:`plotly.graph_objs.funnel.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('line', arg, line)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/_outsidetextfont.py b/plotly/graph_objs/funnel/_outsidetextfont.py
index 4302f39947b..57ef34f7f3c 100644
--- a/plotly/graph_objs/funnel/_outsidetextfont.py
+++ b/plotly/graph_objs/funnel/_outsidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Outsidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel"
-    _path_str = "funnel.outsidetextfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'funnel'
+    _path_str = 'funnel.outsidetextfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Outsidetextfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Outsidetextfont
         """
-        super().__init__("outsidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('outsidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.Outsidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.Outsidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.funnel.Outsidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/_stream.py b/plotly/graph_objs/funnel/_stream.py
index 200a88d6c05..f0288a34dba 100644
--- a/plotly/graph_objs/funnel/_stream.py
+++ b/plotly/graph_objs/funnel/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel"
-    _path_str = "funnel.stream"
+    _parent_path_str = 'funnel'
+    _path_str = 'funnel.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.funnel.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/_textfont.py b/plotly/graph_objs/funnel/_textfont.py
index 8283117fe96..4385edc4c87 100644
--- a/plotly/graph_objs/funnel/_textfont.py
+++ b/plotly/graph_objs/funnel/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel"
-    _path_str = "funnel.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'funnel'
+    _path_str = 'funnel.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.funnel.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/connector/__init__.py b/plotly/graph_objs/funnel/connector/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/funnel/connector/__init__.py
+++ b/plotly/graph_objs/funnel/connector/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/funnel/connector/_line.py b/plotly/graph_objs/funnel/connector/_line.py
index 74d3ec6f3f1..45c8398603b 100644
--- a/plotly/graph_objs/funnel/connector/_line.py
+++ b/plotly/graph_objs/funnel/connector/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel.connector"
-    _path_str = "funnel.connector.line"
+    _parent_path_str = 'funnel.connector'
+    _path_str = 'funnel.connector.line'
     _valid_props = {"color", "dash", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -51,11 +55,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def width(self):
@@ -69,11 +73,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -88,8 +92,13 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dash=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -113,9 +122,9 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -125,18 +134,18 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.connector.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.connector.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.funnel.connector.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/hoverlabel/__init__.py b/plotly/graph_objs/funnel/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/funnel/hoverlabel/__init__.py
+++ b/plotly/graph_objs/funnel/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/funnel/hoverlabel/_font.py b/plotly/graph_objs/funnel/hoverlabel/_font.py
index 594a074d511..3a75b0fc1a0 100644
--- a/plotly/graph_objs/funnel/hoverlabel/_font.py
+++ b/plotly/graph_objs/funnel/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel.hoverlabel"
-    _path_str = "funnel.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'funnel.hoverlabel'
+    _path_str = 'funnel.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.funnel.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/legendgrouptitle/__init__.py b/plotly/graph_objs/funnel/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/funnel/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/funnel/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/funnel/legendgrouptitle/_font.py b/plotly/graph_objs/funnel/legendgrouptitle/_font.py
index cabd5f6de14..c5cbe4b10ee 100644
--- a/plotly/graph_objs/funnel/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/funnel/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel.legendgrouptitle"
-    _path_str = "funnel.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'funnel.legendgrouptitle'
+    _path_str = 'funnel.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.funnel.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/marker/__init__.py b/plotly/graph_objs/funnel/marker/__init__.py
index ff536ec8b25..60bb7edb6d5 100644
--- a/plotly/graph_objs/funnel/marker/__init__.py
+++ b/plotly/graph_objs/funnel/marker/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._line import Line
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".colorbar"], ["._colorbar.ColorBar", "._line.Line"]
-)
diff --git a/plotly/graph_objs/funnel/marker/_colorbar.py b/plotly/graph_objs/funnel/marker/_colorbar.py
index 0b339d6bf18..e7615950f3c 100644
--- a/plotly/graph_objs/funnel/marker/_colorbar.py
+++ b/plotly/graph_objs/funnel/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel.marker"
-    _path_str = "funnel.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'funnel.marker'
+    _path_str = 'funnel.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.funnel.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.funnel.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.funnel.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.funnel.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.funnel.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/marker/_line.py b/plotly/graph_objs/funnel/marker/_line.py
index ac49f331081..533c1174f3d 100644
--- a/plotly/graph_objs/funnel/marker/_line.py
+++ b/plotly/graph_objs/funnel/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel.marker"
-    _path_str = "funnel.marker.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorscale",
-        "colorsrc",
-        "reversescale",
-        "width",
-        "widthsrc",
-    }
+    _parent_path_str = 'funnel.marker'
+    _path_str = 'funnel.marker.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorscale", "colorsrc", "reversescale", "width", "widthsrc"}
 
     @property
     def autocolorscale(self):
@@ -42,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -65,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -86,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -109,11 +100,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -130,11 +121,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -158,11 +149,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -183,11 +174,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorscale(self):
@@ -236,11 +227,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -254,11 +245,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def reversescale(self):
@@ -276,11 +267,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def width(self):
@@ -295,11 +286,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -313,11 +304,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -401,24 +392,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorscale=None,
-        colorsrc=None,
-        reversescale=None,
-        width=None,
-        widthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorscale=None,
+            colorsrc=None,
+            reversescale=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -511,9 +500,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -523,27 +512,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.marker.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+an instance of :class:`plotly.graph_objs.funnel.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/marker/colorbar/__init__.py b/plotly/graph_objs/funnel/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/funnel/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/funnel/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/funnel/marker/colorbar/_tickfont.py b/plotly/graph_objs/funnel/marker/colorbar/_tickfont.py
index 38c76adfe2a..f71d6f7351a 100644
--- a/plotly/graph_objs/funnel/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/funnel/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel.marker.colorbar"
-    _path_str = "funnel.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'funnel.marker.colorbar'
+    _path_str = 'funnel.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.funnel.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/funnel/marker/colorbar/_tickformatstop.py
index c4d83d6e0c9..9e1d1675d61 100644
--- a/plotly/graph_objs/funnel/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/funnel/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel.marker.colorbar"
-    _path_str = "funnel.marker.colorbar.tickformatstop"
+    _parent_path_str = 'funnel.marker.colorbar'
+    _path_str = 'funnel.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.funnel.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/marker/colorbar/_title.py b/plotly/graph_objs/funnel/marker/colorbar/_title.py
index 352a9552ac2..5d84f09080b 100644
--- a/plotly/graph_objs/funnel/marker/colorbar/_title.py
+++ b/plotly/graph_objs/funnel/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel.marker.colorbar"
-    _path_str = "funnel.marker.colorbar.title"
+    _parent_path_str = 'funnel.marker.colorbar'
+    _path_str = 'funnel.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.funnel.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.funnel.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnel/marker/colorbar/title/__init__.py b/plotly/graph_objs/funnel/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/funnel/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/funnel/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/funnel/marker/colorbar/title/_font.py b/plotly/graph_objs/funnel/marker/colorbar/title/_font.py
index ae84aa05c40..bf475960260 100644
--- a/plotly/graph_objs/funnel/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/funnel/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnel.marker.colorbar.title"
-    _path_str = "funnel.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'funnel.marker.colorbar.title'
+    _path_str = 'funnel.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnel.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnel.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.funnel.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnelarea/__init__.py b/plotly/graph_objs/funnelarea/__init__.py
index 2cf7d53da7f..c75a5948c4e 100644
--- a/plotly/graph_objs/funnelarea/__init__.py
+++ b/plotly/graph_objs/funnelarea/__init__.py
@@ -1,17 +1,24 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._domain import Domain
+    from ._hoverlabel import Hoverlabel
+    from ._insidetextfont import Insidetextfont
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._marker import Marker
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._title import Title
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.title'],
+        ['._domain.Domain', '._hoverlabel.Hoverlabel', '._insidetextfont.Insidetextfont', '._legendgrouptitle.Legendgrouptitle', '._marker.Marker', '._stream.Stream', '._textfont.Textfont', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".title"],
-    [
-        "._domain.Domain",
-        "._hoverlabel.Hoverlabel",
-        "._insidetextfont.Insidetextfont",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._marker.Marker",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._title.Title",
-    ],
-)
diff --git a/plotly/graph_objs/funnelarea/_domain.py b/plotly/graph_objs/funnelarea/_domain.py
index 51fb5506479..8f537d96086 100644
--- a/plotly/graph_objs/funnelarea/_domain.py
+++ b/plotly/graph_objs/funnelarea/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnelarea"
-    _path_str = "funnelarea.domain"
+    _parent_path_str = 'funnelarea'
+    _path_str = 'funnelarea.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -25,11 +29,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -45,59 +49,59 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this funnelarea trace (in plot
-            fraction).
-
-            The 'x' property is an info array that may be specified as:
+        Sets the horizontal domain of this funnelarea trace (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this funnelarea trace (in plot
-            fraction).
-
-            The 'y' property is an info array that may be specified as:
+        Sets the vertical domain of this funnelarea trace (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,8 +119,14 @@ def _prop_descriptions(self):
             Sets the vertical domain of this funnelarea trace (in
             plot fraction).
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -143,9 +153,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -155,19 +165,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnelarea.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnelarea.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.funnelarea.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnelarea/_hoverlabel.py b/plotly/graph_objs/funnelarea/_hoverlabel.py
index 22c916d70d6..1d4d51a0119 100644
--- a/plotly/graph_objs/funnelarea/_hoverlabel.py
+++ b/plotly/graph_objs/funnelarea/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnelarea"
-    _path_str = "funnelarea.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'funnelarea'
+    _path_str = 'funnelarea.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.funnelarea.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnelarea.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnelarea.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.funnelarea.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnelarea/_insidetextfont.py b/plotly/graph_objs/funnelarea/_insidetextfont.py
index 82c97ea0a89..89e371641ec 100644
--- a/plotly/graph_objs/funnelarea/_insidetextfont.py
+++ b/plotly/graph_objs/funnelarea/_insidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Insidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnelarea"
-    _path_str = "funnelarea.insidetextfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'funnelarea'
+    _path_str = 'funnelarea.insidetextfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Insidetextfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Insidetextfont
         """
-        super().__init__("insidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('insidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnelarea.Insidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnelarea.Insidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.funnelarea.Insidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnelarea/_legendgrouptitle.py b/plotly/graph_objs/funnelarea/_legendgrouptitle.py
index 7e3a106eac6..36959056b38 100644
--- a/plotly/graph_objs/funnelarea/_legendgrouptitle.py
+++ b/plotly/graph_objs/funnelarea/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnelarea"
-    _path_str = "funnelarea.legendgrouptitle"
+    _parent_path_str = 'funnelarea'
+    _path_str = 'funnelarea.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.funnelarea.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnelarea.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnelarea.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.funnelarea.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnelarea/_marker.py b/plotly/graph_objs/funnelarea/_marker.py
index 2ed4e1afc36..6aa6517e991 100644
--- a/plotly/graph_objs/funnelarea/_marker.py
+++ b/plotly/graph_objs/funnelarea/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnelarea"
-    _path_str = "funnelarea.marker"
+    _parent_path_str = 'funnelarea'
+    _path_str = 'funnelarea.marker'
     _valid_props = {"colors", "colorssrc", "line", "pattern"}
 
     @property
@@ -24,11 +28,11 @@ def colors(self):
         -------
         numpy.ndarray
         """
-        return self["colors"]
+        return self['colors']
 
     @colors.setter
     def colors(self, val):
-        self["colors"] = val
+        self['colors'] = val
 
     @property
     def colorssrc(self):
@@ -42,11 +46,11 @@ def colorssrc(self):
         -------
         str
         """
-        return self["colorssrc"]
+        return self['colorssrc']
 
     @colorssrc.setter
     def colorssrc(self, val):
-        self["colorssrc"] = val
+        self['colorssrc'] = val
 
     @property
     def line(self):
@@ -61,11 +65,11 @@ def line(self):
         -------
         plotly.graph_objs.funnelarea.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def pattern(self):
@@ -82,11 +86,11 @@ def pattern(self):
         -------
         plotly.graph_objs.funnelarea.marker.Pattern
         """
-        return self["pattern"]
+        return self['pattern']
 
     @pattern.setter
     def pattern(self, val):
-        self["pattern"] = val
+        self['pattern'] = val
 
     @property
     def _prop_descriptions(self):
@@ -104,10 +108,14 @@ def _prop_descriptions(self):
         pattern
             Sets the pattern within the marker.
         """
-
-    def __init__(
-        self, arg=None, colors=None, colorssrc=None, line=None, pattern=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            colors=None,
+            colorssrc=None,
+            line=None,
+            pattern=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -134,9 +142,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -146,19 +154,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnelarea.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnelarea.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.funnelarea.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("colors", arg, colors)
-        self._set_property("colorssrc", arg, colorssrc)
-        self._set_property("line", arg, line)
-        self._set_property("pattern", arg, pattern)
+        self._set_property('colors', arg, colors)
+        self._set_property('colorssrc', arg, colorssrc)
+        self._set_property('line', arg, line)
+        self._set_property('pattern', arg, pattern)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnelarea/_stream.py b/plotly/graph_objs/funnelarea/_stream.py
index ac97c47b4f5..c078f2314bc 100644
--- a/plotly/graph_objs/funnelarea/_stream.py
+++ b/plotly/graph_objs/funnelarea/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnelarea"
-    _path_str = "funnelarea.stream"
+    _parent_path_str = 'funnelarea'
+    _path_str = 'funnelarea.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnelarea.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnelarea.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.funnelarea.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnelarea/_textfont.py b/plotly/graph_objs/funnelarea/_textfont.py
index f3685214385..cc32a597c70 100644
--- a/plotly/graph_objs/funnelarea/_textfont.py
+++ b/plotly/graph_objs/funnelarea/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnelarea"
-    _path_str = "funnelarea.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'funnelarea'
+    _path_str = 'funnelarea.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnelarea.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnelarea.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.funnelarea.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnelarea/_title.py b/plotly/graph_objs/funnelarea/_title.py
index e6f0a52aaab..cdd33a4f35c 100644
--- a/plotly/graph_objs/funnelarea/_title.py
+++ b/plotly/graph_objs/funnelarea/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnelarea"
-    _path_str = "funnelarea.title"
+    _parent_path_str = 'funnelarea'
+    _path_str = 'funnelarea.title'
     _valid_props = {"font", "position", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.funnelarea.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def position(self):
@@ -45,11 +49,11 @@ def position(self):
         -------
         Any
         """
-        return self["position"]
+        return self['position']
 
     @position.setter
     def position(self, val):
-        self["position"] = val
+        self['position'] = val
 
     @property
     def text(self):
@@ -65,11 +69,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -82,8 +86,13 @@ def _prop_descriptions(self):
             Sets the title of the chart. If it is empty, no title
             is displayed.
         """
-
-    def __init__(self, arg=None, font=None, position=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            position=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -105,9 +114,9 @@ def __init__(self, arg=None, font=None, position=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -117,18 +126,18 @@ def __init__(self, arg=None, font=None, position=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnelarea.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnelarea.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.funnelarea.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("position", arg, position)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('position', arg, position)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnelarea/hoverlabel/__init__.py b/plotly/graph_objs/funnelarea/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/funnelarea/hoverlabel/__init__.py
+++ b/plotly/graph_objs/funnelarea/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/funnelarea/hoverlabel/_font.py b/plotly/graph_objs/funnelarea/hoverlabel/_font.py
index 6356b0c7452..81f0bd49a4f 100644
--- a/plotly/graph_objs/funnelarea/hoverlabel/_font.py
+++ b/plotly/graph_objs/funnelarea/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnelarea.hoverlabel"
-    _path_str = "funnelarea.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'funnelarea.hoverlabel'
+    _path_str = 'funnelarea.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnelarea.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnelarea.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.funnelarea.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnelarea/legendgrouptitle/__init__.py b/plotly/graph_objs/funnelarea/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/funnelarea/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/funnelarea/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/funnelarea/legendgrouptitle/_font.py b/plotly/graph_objs/funnelarea/legendgrouptitle/_font.py
index 6d58400bcf5..89d912f5dbf 100644
--- a/plotly/graph_objs/funnelarea/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/funnelarea/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnelarea.legendgrouptitle"
-    _path_str = "funnelarea.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'funnelarea.legendgrouptitle'
+    _path_str = 'funnelarea.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnelarea.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnelarea.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.funnelarea.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnelarea/marker/__init__.py b/plotly/graph_objs/funnelarea/marker/__init__.py
index 4e5d01c99ba..16a84c1ec30 100644
--- a/plotly/graph_objs/funnelarea/marker/__init__.py
+++ b/plotly/graph_objs/funnelarea/marker/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+    from ._pattern import Pattern
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line', '._pattern.Pattern']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._line.Line", "._pattern.Pattern"]
-)
diff --git a/plotly/graph_objs/funnelarea/marker/_line.py b/plotly/graph_objs/funnelarea/marker/_line.py
index 392396b6fa0..6844f29192c 100644
--- a/plotly/graph_objs/funnelarea/marker/_line.py
+++ b/plotly/graph_objs/funnelarea/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnelarea.marker"
-    _path_str = "funnelarea.marker.line"
+    _parent_path_str = 'funnelarea.marker'
+    _path_str = 'funnelarea.marker.line'
     _valid_props = {"color", "colorsrc", "width", "widthsrc"}
 
     @property
@@ -29,11 +33,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -47,11 +51,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def width(self):
@@ -66,11 +70,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -84,11 +88,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -106,10 +110,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, width=None, widthsrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -136,9 +144,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -148,19 +156,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnelarea.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnelarea.marker.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.funnelarea.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnelarea/marker/_pattern.py b/plotly/graph_objs/funnelarea/marker/_pattern.py
index 56d68a6f172..b61d3f96566 100644
--- a/plotly/graph_objs/funnelarea/marker/_pattern.py
+++ b/plotly/graph_objs/funnelarea/marker/_pattern.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Pattern(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnelarea.marker"
-    _path_str = "funnelarea.marker.pattern"
-    _valid_props = {
-        "bgcolor",
-        "bgcolorsrc",
-        "fgcolor",
-        "fgcolorsrc",
-        "fgopacity",
-        "fillmode",
-        "shape",
-        "shapesrc",
-        "size",
-        "sizesrc",
-        "solidity",
-        "soliditysrc",
-    }
+    _parent_path_str = 'funnelarea.marker'
+    _path_str = 'funnelarea.marker.pattern'
+    _valid_props = {"bgcolor", "bgcolorsrc", "fgcolor", "fgcolorsrc", "fgopacity", "fillmode", "shape", "shapesrc", "size", "sizesrc", "solidity", "soliditysrc"}
 
     @property
     def bgcolor(self):
@@ -44,11 +35,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -62,11 +53,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def fgcolor(self):
@@ -88,11 +79,11 @@ def fgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["fgcolor"]
+        return self['fgcolor']
 
     @fgcolor.setter
     def fgcolor(self, val):
-        self["fgcolor"] = val
+        self['fgcolor'] = val
 
     @property
     def fgcolorsrc(self):
@@ -106,11 +97,11 @@ def fgcolorsrc(self):
         -------
         str
         """
-        return self["fgcolorsrc"]
+        return self['fgcolorsrc']
 
     @fgcolorsrc.setter
     def fgcolorsrc(self, val):
-        self["fgcolorsrc"] = val
+        self['fgcolorsrc'] = val
 
     @property
     def fgopacity(self):
@@ -125,11 +116,11 @@ def fgopacity(self):
         -------
         int|float
         """
-        return self["fgopacity"]
+        return self['fgopacity']
 
     @fgopacity.setter
     def fgopacity(self, val):
-        self["fgopacity"] = val
+        self['fgopacity'] = val
 
     @property
     def fillmode(self):
@@ -145,11 +136,11 @@ def fillmode(self):
         -------
         Any
         """
-        return self["fillmode"]
+        return self['fillmode']
 
     @fillmode.setter
     def fillmode(self, val):
-        self["fillmode"] = val
+        self['fillmode'] = val
 
     @property
     def shape(self):
@@ -166,11 +157,11 @@ def shape(self):
         -------
         Any|numpy.ndarray
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def shapesrc(self):
@@ -184,11 +175,11 @@ def shapesrc(self):
         -------
         str
         """
-        return self["shapesrc"]
+        return self['shapesrc']
 
     @shapesrc.setter
     def shapesrc(self, val):
-        self["shapesrc"] = val
+        self['shapesrc'] = val
 
     @property
     def size(self):
@@ -204,11 +195,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -222,11 +213,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def solidity(self):
@@ -244,11 +235,11 @@ def solidity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["solidity"]
+        return self['solidity']
 
     @solidity.setter
     def solidity(self, val):
-        self["solidity"] = val
+        self['solidity'] = val
 
     @property
     def soliditysrc(self):
@@ -262,11 +253,11 @@ def soliditysrc(self):
         -------
         str
         """
-        return self["soliditysrc"]
+        return self['soliditysrc']
 
     @soliditysrc.setter
     def soliditysrc(self, val):
-        self["soliditysrc"] = val
+        self['soliditysrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -318,24 +309,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `solidity`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        fgcolor=None,
-        fgcolorsrc=None,
-        fgopacity=None,
-        fillmode=None,
-        shape=None,
-        shapesrc=None,
-        size=None,
-        sizesrc=None,
-        solidity=None,
-        soliditysrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            fgcolor=None,
+            fgcolorsrc=None,
+            fgopacity=None,
+            fillmode=None,
+            shape=None,
+            shapesrc=None,
+            size=None,
+            sizesrc=None,
+            solidity=None,
+            soliditysrc=None,
+            **kwargs
+        ):
         """
         Construct a new Pattern object
 
@@ -398,9 +387,9 @@ def __init__(
         -------
         Pattern
         """
-        super().__init__("pattern")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('pattern')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -410,27 +399,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnelarea.marker.Pattern
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnelarea.marker.Pattern`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("fgcolor", arg, fgcolor)
-        self._set_property("fgcolorsrc", arg, fgcolorsrc)
-        self._set_property("fgopacity", arg, fgopacity)
-        self._set_property("fillmode", arg, fillmode)
-        self._set_property("shape", arg, shape)
-        self._set_property("shapesrc", arg, shapesrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("solidity", arg, solidity)
-        self._set_property("soliditysrc", arg, soliditysrc)
+an instance of :class:`plotly.graph_objs.funnelarea.marker.Pattern`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('fgcolor', arg, fgcolor)
+        self._set_property('fgcolorsrc', arg, fgcolorsrc)
+        self._set_property('fgopacity', arg, fgopacity)
+        self._set_property('fillmode', arg, fillmode)
+        self._set_property('shape', arg, shape)
+        self._set_property('shapesrc', arg, shapesrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('solidity', arg, solidity)
+        self._set_property('soliditysrc', arg, soliditysrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/funnelarea/title/__init__.py b/plotly/graph_objs/funnelarea/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/funnelarea/title/__init__.py
+++ b/plotly/graph_objs/funnelarea/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/funnelarea/title/_font.py b/plotly/graph_objs/funnelarea/title/_font.py
index d163adc8c79..9f83fa1a58a 100644
--- a/plotly/graph_objs/funnelarea/title/_font.py
+++ b/plotly/graph_objs/funnelarea/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "funnelarea.title"
-    _path_str = "funnelarea.title.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'funnelarea.title'
+    _path_str = 'funnelarea.title.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.funnelarea.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.funnelarea.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.funnelarea.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/heatmap/__init__.py b/plotly/graph_objs/heatmap/__init__.py
index 60493177917..89d9dcdf636 100644
--- a/plotly/graph_objs/heatmap/__init__.py
+++ b/plotly/graph_objs/heatmap/__init__.py
@@ -1,14 +1,20 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from . import colorbar
+    from . import hoverlabel
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar', '.hoverlabel', '.legendgrouptitle'],
+        ['._colorbar.ColorBar', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._stream.Stream', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar", ".hoverlabel", ".legendgrouptitle"],
-    [
-        "._colorbar.ColorBar",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._stream.Stream",
-        "._textfont.Textfont",
-    ],
-)
diff --git a/plotly/graph_objs/heatmap/_colorbar.py b/plotly/graph_objs/heatmap/_colorbar.py
index 6da027a31cf..40bbfc56f6b 100644
--- a/plotly/graph_objs/heatmap/_colorbar.py
+++ b/plotly/graph_objs/heatmap/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "heatmap"
-    _path_str = "heatmap.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'heatmap'
+    _path_str = 'heatmap.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.heatmap.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.heatmap.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.heatmap.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.heatmap.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.heatmap.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.heatmap.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.heatmap.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/heatmap/_hoverlabel.py b/plotly/graph_objs/heatmap/_hoverlabel.py
index bb6a313a673..656626e162c 100644
--- a/plotly/graph_objs/heatmap/_hoverlabel.py
+++ b/plotly/graph_objs/heatmap/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "heatmap"
-    _path_str = "heatmap.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'heatmap'
+    _path_str = 'heatmap.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.heatmap.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.heatmap.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.heatmap.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.heatmap.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/heatmap/_legendgrouptitle.py b/plotly/graph_objs/heatmap/_legendgrouptitle.py
index 44174c63c8b..cee0f4e781a 100644
--- a/plotly/graph_objs/heatmap/_legendgrouptitle.py
+++ b/plotly/graph_objs/heatmap/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "heatmap"
-    _path_str = "heatmap.legendgrouptitle"
+    _parent_path_str = 'heatmap'
+    _path_str = 'heatmap.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.heatmap.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.heatmap.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.heatmap.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.heatmap.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/heatmap/_stream.py b/plotly/graph_objs/heatmap/_stream.py
index ee5711fce70..ad66a0b9584 100644
--- a/plotly/graph_objs/heatmap/_stream.py
+++ b/plotly/graph_objs/heatmap/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "heatmap"
-    _path_str = "heatmap.stream"
+    _parent_path_str = 'heatmap'
+    _path_str = 'heatmap.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.heatmap.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.heatmap.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.heatmap.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/heatmap/_textfont.py b/plotly/graph_objs/heatmap/_textfont.py
index dba110bd365..76b96b5ca26 100644
--- a/plotly/graph_objs/heatmap/_textfont.py
+++ b/plotly/graph_objs/heatmap/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "heatmap"
-    _path_str = "heatmap.textfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'heatmap'
+    _path_str = 'heatmap.textfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.heatmap.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.heatmap.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.heatmap.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/heatmap/colorbar/__init__.py b/plotly/graph_objs/heatmap/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/heatmap/colorbar/__init__.py
+++ b/plotly/graph_objs/heatmap/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/heatmap/colorbar/_tickfont.py b/plotly/graph_objs/heatmap/colorbar/_tickfont.py
index d70f013582f..23902f5ad16 100644
--- a/plotly/graph_objs/heatmap/colorbar/_tickfont.py
+++ b/plotly/graph_objs/heatmap/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "heatmap.colorbar"
-    _path_str = "heatmap.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'heatmap.colorbar'
+    _path_str = 'heatmap.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.heatmap.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.heatmap.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.heatmap.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/heatmap/colorbar/_tickformatstop.py b/plotly/graph_objs/heatmap/colorbar/_tickformatstop.py
index c411a9d4823..4b016db6441 100644
--- a/plotly/graph_objs/heatmap/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/heatmap/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "heatmap.colorbar"
-    _path_str = "heatmap.colorbar.tickformatstop"
+    _parent_path_str = 'heatmap.colorbar'
+    _path_str = 'heatmap.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.heatmap.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.heatmap.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.heatmap.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/heatmap/colorbar/_title.py b/plotly/graph_objs/heatmap/colorbar/_title.py
index da046604ef2..cd652f6e4da 100644
--- a/plotly/graph_objs/heatmap/colorbar/_title.py
+++ b/plotly/graph_objs/heatmap/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "heatmap.colorbar"
-    _path_str = "heatmap.colorbar.title"
+    _parent_path_str = 'heatmap.colorbar'
+    _path_str = 'heatmap.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.heatmap.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.heatmap.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.heatmap.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.heatmap.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/heatmap/colorbar/title/__init__.py b/plotly/graph_objs/heatmap/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/heatmap/colorbar/title/__init__.py
+++ b/plotly/graph_objs/heatmap/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/heatmap/colorbar/title/_font.py b/plotly/graph_objs/heatmap/colorbar/title/_font.py
index 1f32cffddf2..19c5c611ccb 100644
--- a/plotly/graph_objs/heatmap/colorbar/title/_font.py
+++ b/plotly/graph_objs/heatmap/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "heatmap.colorbar.title"
-    _path_str = "heatmap.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'heatmap.colorbar.title'
+    _path_str = 'heatmap.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.heatmap.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.heatmap.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.heatmap.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/heatmap/hoverlabel/__init__.py b/plotly/graph_objs/heatmap/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/heatmap/hoverlabel/__init__.py
+++ b/plotly/graph_objs/heatmap/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/heatmap/hoverlabel/_font.py b/plotly/graph_objs/heatmap/hoverlabel/_font.py
index a3ea942b57f..64359fd5be5 100644
--- a/plotly/graph_objs/heatmap/hoverlabel/_font.py
+++ b/plotly/graph_objs/heatmap/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "heatmap.hoverlabel"
-    _path_str = "heatmap.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'heatmap.hoverlabel'
+    _path_str = 'heatmap.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.heatmap.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.heatmap.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.heatmap.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/heatmap/legendgrouptitle/__init__.py b/plotly/graph_objs/heatmap/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/heatmap/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/heatmap/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/heatmap/legendgrouptitle/_font.py b/plotly/graph_objs/heatmap/legendgrouptitle/_font.py
index 81d2d30e9ad..277c96d5790 100644
--- a/plotly/graph_objs/heatmap/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/heatmap/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "heatmap.legendgrouptitle"
-    _path_str = "heatmap.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'heatmap.legendgrouptitle'
+    _path_str = 'heatmap.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.heatmap.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.heatmap.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.heatmap.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/__init__.py b/plotly/graph_objs/histogram/__init__.py
index 54f32ea233e..54264d0bdd9 100644
--- a/plotly/graph_objs/histogram/__init__.py
+++ b/plotly/graph_objs/histogram/__init__.py
@@ -1,23 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._cumulative import Cumulative
+    from ._error_x import ErrorX
+    from ._error_y import ErrorY
+    from ._hoverlabel import Hoverlabel
+    from ._insidetextfont import Insidetextfont
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._marker import Marker
+    from ._outsidetextfont import Outsidetextfont
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._unselected import Unselected
+    from ._xbins import XBins
+    from ._ybins import YBins
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._cumulative.Cumulative', '._error_x.ErrorX', '._error_y.ErrorY', '._hoverlabel.Hoverlabel', '._insidetextfont.Insidetextfont', '._legendgrouptitle.Legendgrouptitle', '._marker.Marker', '._outsidetextfont.Outsidetextfont', '._selected.Selected', '._stream.Stream', '._textfont.Textfont', '._unselected.Unselected', '._xbins.XBins', '._ybins.YBins']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".selected", ".unselected"],
-    [
-        "._cumulative.Cumulative",
-        "._error_x.ErrorX",
-        "._error_y.ErrorY",
-        "._hoverlabel.Hoverlabel",
-        "._insidetextfont.Insidetextfont",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._marker.Marker",
-        "._outsidetextfont.Outsidetextfont",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._unselected.Unselected",
-        "._xbins.XBins",
-        "._ybins.YBins",
-    ],
-)
diff --git a/plotly/graph_objs/histogram/_cumulative.py b/plotly/graph_objs/histogram/_cumulative.py
index 62fc155f824..6a8f14fc577 100644
--- a/plotly/graph_objs/histogram/_cumulative.py
+++ b/plotly/graph_objs/histogram/_cumulative.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Cumulative(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram"
-    _path_str = "histogram.cumulative"
+    _parent_path_str = 'histogram'
+    _path_str = 'histogram.cumulative'
     _valid_props = {"currentbin", "direction", "enabled"}
 
     @property
@@ -29,11 +33,11 @@ def currentbin(self):
         -------
         Any
         """
-        return self["currentbin"]
+        return self['currentbin']
 
     @currentbin.setter
     def currentbin(self, val):
-        self["currentbin"] = val
+        self['currentbin'] = val
 
     @property
     def direction(self):
@@ -51,11 +55,11 @@ def direction(self):
         -------
         Any
         """
-        return self["direction"]
+        return self['direction']
 
     @direction.setter
     def direction(self, val):
-        self["direction"] = val
+        self['direction'] = val
 
     @property
     def enabled(self):
@@ -75,11 +79,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def _prop_descriptions(self):
@@ -107,10 +111,13 @@ def _prop_descriptions(self):
             "probability" and *probability density* both rise to
             the number of sample points.
         """
-
-    def __init__(
-        self, arg=None, currentbin=None, direction=None, enabled=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            currentbin=None,
+            direction=None,
+            enabled=None,
+            **kwargs
+        ):
         """
         Construct a new Cumulative object
 
@@ -147,9 +154,9 @@ def __init__(
         -------
         Cumulative
         """
-        super().__init__("cumulative")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('cumulative')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -159,18 +166,18 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.Cumulative
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.Cumulative`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram.Cumulative`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("currentbin", arg, currentbin)
-        self._set_property("direction", arg, direction)
-        self._set_property("enabled", arg, enabled)
+        self._set_property('currentbin', arg, currentbin)
+        self._set_property('direction', arg, direction)
+        self._set_property('enabled', arg, enabled)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/_error_x.py b/plotly/graph_objs/histogram/_error_x.py
index b5638247883..bb4d6bb7310 100644
--- a/plotly/graph_objs/histogram/_error_x.py
+++ b/plotly/graph_objs/histogram/_error_x.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,25 +11,9 @@
 
 class ErrorX(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram"
-    _path_str = "histogram.error_x"
-    _valid_props = {
-        "array",
-        "arrayminus",
-        "arrayminussrc",
-        "arraysrc",
-        "color",
-        "copy_ystyle",
-        "symmetric",
-        "thickness",
-        "traceref",
-        "tracerefminus",
-        "type",
-        "value",
-        "valueminus",
-        "visible",
-        "width",
-    }
+    _parent_path_str = 'histogram'
+    _path_str = 'histogram.error_x'
+    _valid_props = {"array", "arrayminus", "arrayminussrc", "arraysrc", "color", "copy_ystyle", "symmetric", "thickness", "traceref", "tracerefminus", "type", "value", "valueminus", "visible", "width"}
 
     @property
     def array(self):
@@ -40,11 +28,11 @@ def array(self):
         -------
         numpy.ndarray
         """
-        return self["array"]
+        return self['array']
 
     @array.setter
     def array(self, val):
-        self["array"] = val
+        self['array'] = val
 
     @property
     def arrayminus(self):
@@ -60,11 +48,11 @@ def arrayminus(self):
         -------
         numpy.ndarray
         """
-        return self["arrayminus"]
+        return self['arrayminus']
 
     @arrayminus.setter
     def arrayminus(self, val):
-        self["arrayminus"] = val
+        self['arrayminus'] = val
 
     @property
     def arrayminussrc(self):
@@ -79,11 +67,11 @@ def arrayminussrc(self):
         -------
         str
         """
-        return self["arrayminussrc"]
+        return self['arrayminussrc']
 
     @arrayminussrc.setter
     def arrayminussrc(self, val):
-        self["arrayminussrc"] = val
+        self['arrayminussrc'] = val
 
     @property
     def arraysrc(self):
@@ -97,11 +85,11 @@ def arraysrc(self):
         -------
         str
         """
-        return self["arraysrc"]
+        return self['arraysrc']
 
     @arraysrc.setter
     def arraysrc(self, val):
-        self["arraysrc"] = val
+        self['arraysrc'] = val
 
     @property
     def color(self):
@@ -119,11 +107,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def copy_ystyle(self):
@@ -135,11 +123,11 @@ def copy_ystyle(self):
         -------
         bool
         """
-        return self["copy_ystyle"]
+        return self['copy_ystyle']
 
     @copy_ystyle.setter
     def copy_ystyle(self, val):
-        self["copy_ystyle"] = val
+        self['copy_ystyle'] = val
 
     @property
     def symmetric(self):
@@ -155,11 +143,11 @@ def symmetric(self):
         -------
         bool
         """
-        return self["symmetric"]
+        return self['symmetric']
 
     @symmetric.setter
     def symmetric(self, val):
-        self["symmetric"] = val
+        self['symmetric'] = val
 
     @property
     def thickness(self):
@@ -173,11 +161,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def traceref(self):
@@ -190,11 +178,11 @@ def traceref(self):
         -------
         int
         """
-        return self["traceref"]
+        return self['traceref']
 
     @traceref.setter
     def traceref(self, val):
-        self["traceref"] = val
+        self['traceref'] = val
 
     @property
     def tracerefminus(self):
@@ -207,11 +195,11 @@ def tracerefminus(self):
         -------
         int
         """
-        return self["tracerefminus"]
+        return self['tracerefminus']
 
     @tracerefminus.setter
     def tracerefminus(self, val):
-        self["tracerefminus"] = val
+        self['tracerefminus'] = val
 
     @property
     def type(self):
@@ -232,11 +220,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def value(self):
@@ -252,11 +240,11 @@ def value(self):
         -------
         int|float
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def valueminus(self):
@@ -273,11 +261,11 @@ def valueminus(self):
         -------
         int|float
         """
-        return self["valueminus"]
+        return self['valueminus']
 
     @valueminus.setter
     def valueminus(self, val):
-        self["valueminus"] = val
+        self['valueminus'] = val
 
     @property
     def visible(self):
@@ -291,11 +279,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -310,11 +298,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -375,27 +363,25 @@ def _prop_descriptions(self):
             Sets the width (in px) of the cross-bar at both ends of
             the error bars.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        array=None,
-        arrayminus=None,
-        arrayminussrc=None,
-        arraysrc=None,
-        color=None,
-        copy_ystyle=None,
-        symmetric=None,
-        thickness=None,
-        traceref=None,
-        tracerefminus=None,
-        type=None,
-        value=None,
-        valueminus=None,
-        visible=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            array=None,
+            arrayminus=None,
+            arrayminussrc=None,
+            arraysrc=None,
+            color=None,
+            copy_ystyle=None,
+            symmetric=None,
+            thickness=None,
+            traceref=None,
+            tracerefminus=None,
+            type=None,
+            value=None,
+            valueminus=None,
+            visible=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new ErrorX object
 
@@ -465,9 +451,9 @@ def __init__(
         -------
         ErrorX
         """
-        super().__init__("error_x")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('error_x')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -477,30 +463,30 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.ErrorX
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.ErrorX`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("array", arg, array)
-        self._set_property("arrayminus", arg, arrayminus)
-        self._set_property("arrayminussrc", arg, arrayminussrc)
-        self._set_property("arraysrc", arg, arraysrc)
-        self._set_property("color", arg, color)
-        self._set_property("copy_ystyle", arg, copy_ystyle)
-        self._set_property("symmetric", arg, symmetric)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("traceref", arg, traceref)
-        self._set_property("tracerefminus", arg, tracerefminus)
-        self._set_property("type", arg, type)
-        self._set_property("value", arg, value)
-        self._set_property("valueminus", arg, valueminus)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.histogram.ErrorX`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('array', arg, array)
+        self._set_property('arrayminus', arg, arrayminus)
+        self._set_property('arrayminussrc', arg, arrayminussrc)
+        self._set_property('arraysrc', arg, arraysrc)
+        self._set_property('color', arg, color)
+        self._set_property('copy_ystyle', arg, copy_ystyle)
+        self._set_property('symmetric', arg, symmetric)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('traceref', arg, traceref)
+        self._set_property('tracerefminus', arg, tracerefminus)
+        self._set_property('type', arg, type)
+        self._set_property('value', arg, value)
+        self._set_property('valueminus', arg, valueminus)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/_error_y.py b/plotly/graph_objs/histogram/_error_y.py
index 0e7f61938a4..86aae469aac 100644
--- a/plotly/graph_objs/histogram/_error_y.py
+++ b/plotly/graph_objs/histogram/_error_y.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,24 +11,9 @@
 
 class ErrorY(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram"
-    _path_str = "histogram.error_y"
-    _valid_props = {
-        "array",
-        "arrayminus",
-        "arrayminussrc",
-        "arraysrc",
-        "color",
-        "symmetric",
-        "thickness",
-        "traceref",
-        "tracerefminus",
-        "type",
-        "value",
-        "valueminus",
-        "visible",
-        "width",
-    }
+    _parent_path_str = 'histogram'
+    _path_str = 'histogram.error_y'
+    _valid_props = {"array", "arrayminus", "arrayminussrc", "arraysrc", "color", "symmetric", "thickness", "traceref", "tracerefminus", "type", "value", "valueminus", "visible", "width"}
 
     @property
     def array(self):
@@ -39,11 +28,11 @@ def array(self):
         -------
         numpy.ndarray
         """
-        return self["array"]
+        return self['array']
 
     @array.setter
     def array(self, val):
-        self["array"] = val
+        self['array'] = val
 
     @property
     def arrayminus(self):
@@ -59,11 +48,11 @@ def arrayminus(self):
         -------
         numpy.ndarray
         """
-        return self["arrayminus"]
+        return self['arrayminus']
 
     @arrayminus.setter
     def arrayminus(self, val):
-        self["arrayminus"] = val
+        self['arrayminus'] = val
 
     @property
     def arrayminussrc(self):
@@ -78,11 +67,11 @@ def arrayminussrc(self):
         -------
         str
         """
-        return self["arrayminussrc"]
+        return self['arrayminussrc']
 
     @arrayminussrc.setter
     def arrayminussrc(self, val):
-        self["arrayminussrc"] = val
+        self['arrayminussrc'] = val
 
     @property
     def arraysrc(self):
@@ -96,11 +85,11 @@ def arraysrc(self):
         -------
         str
         """
-        return self["arraysrc"]
+        return self['arraysrc']
 
     @arraysrc.setter
     def arraysrc(self, val):
-        self["arraysrc"] = val
+        self['arraysrc'] = val
 
     @property
     def color(self):
@@ -118,11 +107,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def symmetric(self):
@@ -138,11 +127,11 @@ def symmetric(self):
         -------
         bool
         """
-        return self["symmetric"]
+        return self['symmetric']
 
     @symmetric.setter
     def symmetric(self, val):
-        self["symmetric"] = val
+        self['symmetric'] = val
 
     @property
     def thickness(self):
@@ -156,11 +145,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def traceref(self):
@@ -173,11 +162,11 @@ def traceref(self):
         -------
         int
         """
-        return self["traceref"]
+        return self['traceref']
 
     @traceref.setter
     def traceref(self, val):
-        self["traceref"] = val
+        self['traceref'] = val
 
     @property
     def tracerefminus(self):
@@ -190,11 +179,11 @@ def tracerefminus(self):
         -------
         int
         """
-        return self["tracerefminus"]
+        return self['tracerefminus']
 
     @tracerefminus.setter
     def tracerefminus(self, val):
-        self["tracerefminus"] = val
+        self['tracerefminus'] = val
 
     @property
     def type(self):
@@ -215,11 +204,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def value(self):
@@ -235,11 +224,11 @@ def value(self):
         -------
         int|float
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def valueminus(self):
@@ -256,11 +245,11 @@ def valueminus(self):
         -------
         int|float
         """
-        return self["valueminus"]
+        return self['valueminus']
 
     @valueminus.setter
     def valueminus(self, val):
-        self["valueminus"] = val
+        self['valueminus'] = val
 
     @property
     def visible(self):
@@ -274,11 +263,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -293,11 +282,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -356,26 +345,24 @@ def _prop_descriptions(self):
             Sets the width (in px) of the cross-bar at both ends of
             the error bars.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        array=None,
-        arrayminus=None,
-        arrayminussrc=None,
-        arraysrc=None,
-        color=None,
-        symmetric=None,
-        thickness=None,
-        traceref=None,
-        tracerefminus=None,
-        type=None,
-        value=None,
-        valueminus=None,
-        visible=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            array=None,
+            arrayminus=None,
+            arrayminussrc=None,
+            arraysrc=None,
+            color=None,
+            symmetric=None,
+            thickness=None,
+            traceref=None,
+            tracerefminus=None,
+            type=None,
+            value=None,
+            valueminus=None,
+            visible=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new ErrorY object
 
@@ -443,9 +430,9 @@ def __init__(
         -------
         ErrorY
         """
-        super().__init__("error_y")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('error_y')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -455,29 +442,29 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.ErrorY
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.ErrorY`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("array", arg, array)
-        self._set_property("arrayminus", arg, arrayminus)
-        self._set_property("arrayminussrc", arg, arrayminussrc)
-        self._set_property("arraysrc", arg, arraysrc)
-        self._set_property("color", arg, color)
-        self._set_property("symmetric", arg, symmetric)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("traceref", arg, traceref)
-        self._set_property("tracerefminus", arg, tracerefminus)
-        self._set_property("type", arg, type)
-        self._set_property("value", arg, value)
-        self._set_property("valueminus", arg, valueminus)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.histogram.ErrorY`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('array', arg, array)
+        self._set_property('arrayminus', arg, arrayminus)
+        self._set_property('arrayminussrc', arg, arrayminussrc)
+        self._set_property('arraysrc', arg, arraysrc)
+        self._set_property('color', arg, color)
+        self._set_property('symmetric', arg, symmetric)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('traceref', arg, traceref)
+        self._set_property('tracerefminus', arg, tracerefminus)
+        self._set_property('type', arg, type)
+        self._set_property('value', arg, value)
+        self._set_property('valueminus', arg, valueminus)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/_hoverlabel.py b/plotly/graph_objs/histogram/_hoverlabel.py
index bb3d1ff9408..6d918a8f8d6 100644
--- a/plotly/graph_objs/histogram/_hoverlabel.py
+++ b/plotly/graph_objs/histogram/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram"
-    _path_str = "histogram.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'histogram'
+    _path_str = 'histogram.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.histogram.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.histogram.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/_insidetextfont.py b/plotly/graph_objs/histogram/_insidetextfont.py
index 280ad6e9ce3..ac6c0d3cafb 100644
--- a/plotly/graph_objs/histogram/_insidetextfont.py
+++ b/plotly/graph_objs/histogram/_insidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Insidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram"
-    _path_str = "histogram.insidetextfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'histogram'
+    _path_str = 'histogram.insidetextfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Insidetextfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Insidetextfont
         """
-        super().__init__("insidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('insidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.Insidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.Insidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.histogram.Insidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/_legendgrouptitle.py b/plotly/graph_objs/histogram/_legendgrouptitle.py
index c2a443eb7b5..0f0909f5a59 100644
--- a/plotly/graph_objs/histogram/_legendgrouptitle.py
+++ b/plotly/graph_objs/histogram/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram"
-    _path_str = "histogram.legendgrouptitle"
+    _parent_path_str = 'histogram'
+    _path_str = 'histogram.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.histogram.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/_marker.py b/plotly/graph_objs/histogram/_marker.py
index 7b5a9257957..eeeb472c95d 100644
--- a/plotly/graph_objs/histogram/_marker.py
+++ b/plotly/graph_objs/histogram/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,27 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram"
-    _path_str = "histogram.marker"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "cornerradius",
-        "line",
-        "opacity",
-        "opacitysrc",
-        "pattern",
-        "reversescale",
-        "showscale",
-    }
+    _parent_path_str = 'histogram'
+    _path_str = 'histogram.marker'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "cornerradius", "line", "opacity", "opacitysrc", "pattern", "reversescale", "showscale"}
 
     @property
     def autocolorscale(self):
@@ -47,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -70,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -91,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -113,11 +99,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -134,11 +120,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -162,11 +148,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -187,11 +173,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -206,11 +192,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.histogram.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -258,11 +244,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -276,11 +262,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def cornerradius(self):
@@ -297,11 +283,11 @@ def cornerradius(self):
         -------
         Any
         """
-        return self["cornerradius"]
+        return self['cornerradius']
 
     @cornerradius.setter
     def cornerradius(self, val):
-        self["cornerradius"] = val
+        self['cornerradius'] = val
 
     @property
     def line(self):
@@ -316,11 +302,11 @@ def line(self):
         -------
         plotly.graph_objs.histogram.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def opacity(self):
@@ -335,11 +321,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -353,11 +339,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def pattern(self):
@@ -374,11 +360,11 @@ def pattern(self):
         -------
         plotly.graph_objs.histogram.marker.Pattern
         """
-        return self["pattern"]
+        return self['pattern']
 
     @pattern.setter
     def pattern(self, val):
-        self["pattern"] = val
+        self['pattern'] = val
 
     @property
     def reversescale(self):
@@ -395,11 +381,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -415,11 +401,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def _prop_descriptions(self):
@@ -517,29 +503,27 @@ def _prop_descriptions(self):
             this trace. Has an effect only if in `marker.color` is
             set to a numerical array.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        cornerradius=None,
-        line=None,
-        opacity=None,
-        opacitysrc=None,
-        pattern=None,
-        reversescale=None,
-        showscale=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            cornerradius=None,
+            line=None,
+            opacity=None,
+            opacitysrc=None,
+            pattern=None,
+            reversescale=None,
+            showscale=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -646,9 +630,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -658,32 +642,32 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("cornerradius", arg, cornerradius)
-        self._set_property("line", arg, line)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("pattern", arg, pattern)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
+an instance of :class:`plotly.graph_objs.histogram.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('cornerradius', arg, cornerradius)
+        self._set_property('line', arg, line)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('pattern', arg, pattern)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/_outsidetextfont.py b/plotly/graph_objs/histogram/_outsidetextfont.py
index 0b6d47f90d4..4d0b4d553bf 100644
--- a/plotly/graph_objs/histogram/_outsidetextfont.py
+++ b/plotly/graph_objs/histogram/_outsidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Outsidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram"
-    _path_str = "histogram.outsidetextfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'histogram'
+    _path_str = 'histogram.outsidetextfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Outsidetextfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Outsidetextfont
         """
-        super().__init__("outsidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('outsidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.Outsidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.Outsidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.histogram.Outsidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/_selected.py b/plotly/graph_objs/histogram/_selected.py
index 6bbd91bb3de..22285ff656f 100644
--- a/plotly/graph_objs/histogram/_selected.py
+++ b/plotly/graph_objs/histogram/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram"
-    _path_str = "histogram.selected"
+    _parent_path_str = 'histogram'
+    _path_str = 'histogram.selected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.histogram.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.histogram.selected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.histogram.selected.Textfon
             t` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/_stream.py b/plotly/graph_objs/histogram/_stream.py
index 3231b450bc9..595f9e398b7 100644
--- a/plotly/graph_objs/histogram/_stream.py
+++ b/plotly/graph_objs/histogram/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram"
-    _path_str = "histogram.stream"
+    _parent_path_str = 'histogram'
+    _path_str = 'histogram.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/_textfont.py b/plotly/graph_objs/histogram/_textfont.py
index 36ff9588cd3..35e3d4c869b 100644
--- a/plotly/graph_objs/histogram/_textfont.py
+++ b/plotly/graph_objs/histogram/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram"
-    _path_str = "histogram.textfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'histogram'
+    _path_str = 'histogram.textfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.histogram.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/_unselected.py b/plotly/graph_objs/histogram/_unselected.py
index 928c14e1d36..b2d9e044f1e 100644
--- a/plotly/graph_objs/histogram/_unselected.py
+++ b/plotly/graph_objs/histogram/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram"
-    _path_str = "histogram.unselected"
+    _parent_path_str = 'histogram'
+    _path_str = 'histogram.unselected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.histogram.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.histogram.unselected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.histogram.unselected.Textf
             ont` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/_xbins.py b/plotly/graph_objs/histogram/_xbins.py
index 387a8d14200..f32f5bef8bb 100644
--- a/plotly/graph_objs/histogram/_xbins.py
+++ b/plotly/graph_objs/histogram/_xbins.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class XBins(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram"
-    _path_str = "histogram.xbins"
+    _parent_path_str = 'histogram'
+    _path_str = 'histogram.xbins'
     _valid_props = {"end", "size", "start"}
 
     @property
@@ -27,11 +31,11 @@ def end(self):
         -------
         Any
         """
-        return self["end"]
+        return self['end']
 
     @end.setter
     def end(self, val):
-        self["end"] = val
+        self['end'] = val
 
     @property
     def size(self):
@@ -55,11 +59,11 @@ def size(self):
         -------
         Any
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def start(self):
@@ -84,11 +88,11 @@ def start(self):
         -------
         Any
         """
-        return self["start"]
+        return self['start']
 
     @start.setter
     def start(self, val):
-        self["start"] = val
+        self['start'] = val
 
     @property
     def _prop_descriptions(self):
@@ -131,8 +135,13 @@ def _prop_descriptions(self):
             are shifted down (if necessary) to differ from that one
             by an integer number of bins.
         """
-
-    def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            end=None,
+            size=None,
+            start=None,
+            **kwargs
+        ):
         """
         Construct a new XBins object
 
@@ -184,9 +193,9 @@ def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
         -------
         XBins
         """
-        super().__init__("xbins")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('xbins')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -196,18 +205,18 @@ def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.XBins
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.XBins`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram.XBins`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("end", arg, end)
-        self._set_property("size", arg, size)
-        self._set_property("start", arg, start)
+        self._set_property('end', arg, end)
+        self._set_property('size', arg, size)
+        self._set_property('start', arg, start)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/_ybins.py b/plotly/graph_objs/histogram/_ybins.py
index dd9a06af3e7..e48315d0907 100644
--- a/plotly/graph_objs/histogram/_ybins.py
+++ b/plotly/graph_objs/histogram/_ybins.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class YBins(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram"
-    _path_str = "histogram.ybins"
+    _parent_path_str = 'histogram'
+    _path_str = 'histogram.ybins'
     _valid_props = {"end", "size", "start"}
 
     @property
@@ -27,11 +31,11 @@ def end(self):
         -------
         Any
         """
-        return self["end"]
+        return self['end']
 
     @end.setter
     def end(self, val):
-        self["end"] = val
+        self['end'] = val
 
     @property
     def size(self):
@@ -55,11 +59,11 @@ def size(self):
         -------
         Any
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def start(self):
@@ -84,11 +88,11 @@ def start(self):
         -------
         Any
         """
-        return self["start"]
+        return self['start']
 
     @start.setter
     def start(self, val):
-        self["start"] = val
+        self['start'] = val
 
     @property
     def _prop_descriptions(self):
@@ -131,8 +135,13 @@ def _prop_descriptions(self):
             are shifted down (if necessary) to differ from that one
             by an integer number of bins.
         """
-
-    def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            end=None,
+            size=None,
+            start=None,
+            **kwargs
+        ):
         """
         Construct a new YBins object
 
@@ -184,9 +193,9 @@ def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
         -------
         YBins
         """
-        super().__init__("ybins")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('ybins')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -196,18 +205,18 @@ def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.YBins
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.YBins`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram.YBins`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("end", arg, end)
-        self._set_property("size", arg, size)
-        self._set_property("start", arg, start)
+        self._set_property('end', arg, end)
+        self._set_property('size', arg, size)
+        self._set_property('start', arg, start)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/hoverlabel/__init__.py b/plotly/graph_objs/histogram/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/histogram/hoverlabel/__init__.py
+++ b/plotly/graph_objs/histogram/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/histogram/hoverlabel/_font.py b/plotly/graph_objs/histogram/hoverlabel/_font.py
index f30201e2319..7d5a4d0f281 100644
--- a/plotly/graph_objs/histogram/hoverlabel/_font.py
+++ b/plotly/graph_objs/histogram/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram.hoverlabel"
-    _path_str = "histogram.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'histogram.hoverlabel'
+    _path_str = 'histogram.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.histogram.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/legendgrouptitle/__init__.py b/plotly/graph_objs/histogram/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/histogram/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/histogram/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/histogram/legendgrouptitle/_font.py b/plotly/graph_objs/histogram/legendgrouptitle/_font.py
index 214354be87b..4a7d2d75f92 100644
--- a/plotly/graph_objs/histogram/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/histogram/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram.legendgrouptitle"
-    _path_str = "histogram.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'histogram.legendgrouptitle'
+    _path_str = 'histogram.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.histogram.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/marker/__init__.py b/plotly/graph_objs/histogram/marker/__init__.py
index 700941a53ec..210a88dd222 100644
--- a/plotly/graph_objs/histogram/marker/__init__.py
+++ b/plotly/graph_objs/histogram/marker/__init__.py
@@ -1,6 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._line import Line
+    from ._pattern import Pattern
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._line.Line', '._pattern.Pattern']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".colorbar"], ["._colorbar.ColorBar", "._line.Line", "._pattern.Pattern"]
-)
diff --git a/plotly/graph_objs/histogram/marker/_colorbar.py b/plotly/graph_objs/histogram/marker/_colorbar.py
index 5cd038ca85e..68060f83e09 100644
--- a/plotly/graph_objs/histogram/marker/_colorbar.py
+++ b/plotly/graph_objs/histogram/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram.marker"
-    _path_str = "histogram.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'histogram.marker'
+    _path_str = 'histogram.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.histogram.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.histogram.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.histogram.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.histogram.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.histogram.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/marker/_line.py b/plotly/graph_objs/histogram/marker/_line.py
index 3d4cbedb042..d06957e43ea 100644
--- a/plotly/graph_objs/histogram/marker/_line.py
+++ b/plotly/graph_objs/histogram/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram.marker"
-    _path_str = "histogram.marker.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorscale",
-        "colorsrc",
-        "reversescale",
-        "width",
-        "widthsrc",
-    }
+    _parent_path_str = 'histogram.marker'
+    _path_str = 'histogram.marker.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorscale", "colorsrc", "reversescale", "width", "widthsrc"}
 
     @property
     def autocolorscale(self):
@@ -42,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -65,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -86,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -109,11 +100,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -130,11 +121,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -158,11 +149,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -183,11 +174,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorscale(self):
@@ -236,11 +227,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -254,11 +245,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def reversescale(self):
@@ -276,11 +267,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def width(self):
@@ -295,11 +286,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -313,11 +304,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -401,24 +392,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorscale=None,
-        colorsrc=None,
-        reversescale=None,
-        width=None,
-        widthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorscale=None,
+            colorsrc=None,
+            reversescale=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -511,9 +500,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -523,27 +512,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.marker.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+an instance of :class:`plotly.graph_objs.histogram.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/marker/_pattern.py b/plotly/graph_objs/histogram/marker/_pattern.py
index 7682690dc3d..2f577ecf2e7 100644
--- a/plotly/graph_objs/histogram/marker/_pattern.py
+++ b/plotly/graph_objs/histogram/marker/_pattern.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Pattern(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram.marker"
-    _path_str = "histogram.marker.pattern"
-    _valid_props = {
-        "bgcolor",
-        "bgcolorsrc",
-        "fgcolor",
-        "fgcolorsrc",
-        "fgopacity",
-        "fillmode",
-        "shape",
-        "shapesrc",
-        "size",
-        "sizesrc",
-        "solidity",
-        "soliditysrc",
-    }
+    _parent_path_str = 'histogram.marker'
+    _path_str = 'histogram.marker.pattern'
+    _valid_props = {"bgcolor", "bgcolorsrc", "fgcolor", "fgcolorsrc", "fgopacity", "fillmode", "shape", "shapesrc", "size", "sizesrc", "solidity", "soliditysrc"}
 
     @property
     def bgcolor(self):
@@ -44,11 +35,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -62,11 +53,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def fgcolor(self):
@@ -88,11 +79,11 @@ def fgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["fgcolor"]
+        return self['fgcolor']
 
     @fgcolor.setter
     def fgcolor(self, val):
-        self["fgcolor"] = val
+        self['fgcolor'] = val
 
     @property
     def fgcolorsrc(self):
@@ -106,11 +97,11 @@ def fgcolorsrc(self):
         -------
         str
         """
-        return self["fgcolorsrc"]
+        return self['fgcolorsrc']
 
     @fgcolorsrc.setter
     def fgcolorsrc(self, val):
-        self["fgcolorsrc"] = val
+        self['fgcolorsrc'] = val
 
     @property
     def fgopacity(self):
@@ -125,11 +116,11 @@ def fgopacity(self):
         -------
         int|float
         """
-        return self["fgopacity"]
+        return self['fgopacity']
 
     @fgopacity.setter
     def fgopacity(self, val):
-        self["fgopacity"] = val
+        self['fgopacity'] = val
 
     @property
     def fillmode(self):
@@ -145,11 +136,11 @@ def fillmode(self):
         -------
         Any
         """
-        return self["fillmode"]
+        return self['fillmode']
 
     @fillmode.setter
     def fillmode(self, val):
-        self["fillmode"] = val
+        self['fillmode'] = val
 
     @property
     def shape(self):
@@ -166,11 +157,11 @@ def shape(self):
         -------
         Any|numpy.ndarray
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def shapesrc(self):
@@ -184,11 +175,11 @@ def shapesrc(self):
         -------
         str
         """
-        return self["shapesrc"]
+        return self['shapesrc']
 
     @shapesrc.setter
     def shapesrc(self, val):
-        self["shapesrc"] = val
+        self['shapesrc'] = val
 
     @property
     def size(self):
@@ -204,11 +195,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -222,11 +213,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def solidity(self):
@@ -244,11 +235,11 @@ def solidity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["solidity"]
+        return self['solidity']
 
     @solidity.setter
     def solidity(self, val):
-        self["solidity"] = val
+        self['solidity'] = val
 
     @property
     def soliditysrc(self):
@@ -262,11 +253,11 @@ def soliditysrc(self):
         -------
         str
         """
-        return self["soliditysrc"]
+        return self['soliditysrc']
 
     @soliditysrc.setter
     def soliditysrc(self, val):
-        self["soliditysrc"] = val
+        self['soliditysrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -318,24 +309,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `solidity`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        fgcolor=None,
-        fgcolorsrc=None,
-        fgopacity=None,
-        fillmode=None,
-        shape=None,
-        shapesrc=None,
-        size=None,
-        sizesrc=None,
-        solidity=None,
-        soliditysrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            fgcolor=None,
+            fgcolorsrc=None,
+            fgopacity=None,
+            fillmode=None,
+            shape=None,
+            shapesrc=None,
+            size=None,
+            sizesrc=None,
+            solidity=None,
+            soliditysrc=None,
+            **kwargs
+        ):
         """
         Construct a new Pattern object
 
@@ -398,9 +387,9 @@ def __init__(
         -------
         Pattern
         """
-        super().__init__("pattern")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('pattern')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -410,27 +399,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.marker.Pattern
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.marker.Pattern`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("fgcolor", arg, fgcolor)
-        self._set_property("fgcolorsrc", arg, fgcolorsrc)
-        self._set_property("fgopacity", arg, fgopacity)
-        self._set_property("fillmode", arg, fillmode)
-        self._set_property("shape", arg, shape)
-        self._set_property("shapesrc", arg, shapesrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("solidity", arg, solidity)
-        self._set_property("soliditysrc", arg, soliditysrc)
+an instance of :class:`plotly.graph_objs.histogram.marker.Pattern`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('fgcolor', arg, fgcolor)
+        self._set_property('fgcolorsrc', arg, fgcolorsrc)
+        self._set_property('fgopacity', arg, fgopacity)
+        self._set_property('fillmode', arg, fillmode)
+        self._set_property('shape', arg, shape)
+        self._set_property('shapesrc', arg, shapesrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('solidity', arg, solidity)
+        self._set_property('soliditysrc', arg, soliditysrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/marker/colorbar/__init__.py b/plotly/graph_objs/histogram/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/histogram/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/histogram/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/histogram/marker/colorbar/_tickfont.py b/plotly/graph_objs/histogram/marker/colorbar/_tickfont.py
index 2eacb07f78c..d4c838bc300 100644
--- a/plotly/graph_objs/histogram/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/histogram/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram.marker.colorbar"
-    _path_str = "histogram.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'histogram.marker.colorbar'
+    _path_str = 'histogram.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.histogram.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/histogram/marker/colorbar/_tickformatstop.py
index 9960c2a6a35..0a498838508 100644
--- a/plotly/graph_objs/histogram/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/histogram/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram.marker.colorbar"
-    _path_str = "histogram.marker.colorbar.tickformatstop"
+    _parent_path_str = 'histogram.marker.colorbar'
+    _path_str = 'histogram.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/marker/colorbar/_title.py b/plotly/graph_objs/histogram/marker/colorbar/_title.py
index 4cc0782ca40..dc808193949 100644
--- a/plotly/graph_objs/histogram/marker/colorbar/_title.py
+++ b/plotly/graph_objs/histogram/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram.marker.colorbar"
-    _path_str = "histogram.marker.colorbar.title"
+    _parent_path_str = 'histogram.marker.colorbar'
+    _path_str = 'histogram.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.histogram.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/marker/colorbar/title/__init__.py b/plotly/graph_objs/histogram/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/histogram/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/histogram/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/histogram/marker/colorbar/title/_font.py b/plotly/graph_objs/histogram/marker/colorbar/title/_font.py
index 28b036ea3cf..18ee65a86bd 100644
--- a/plotly/graph_objs/histogram/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/histogram/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram.marker.colorbar.title"
-    _path_str = "histogram.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'histogram.marker.colorbar.title'
+    _path_str = 'histogram.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.histogram.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/selected/__init__.py b/plotly/graph_objs/histogram/selected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/histogram/selected/__init__.py
+++ b/plotly/graph_objs/histogram/selected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/histogram/selected/_marker.py b/plotly/graph_objs/histogram/selected/_marker.py
index 3a358102475..6fce0b0ccbc 100644
--- a/plotly/graph_objs/histogram/selected/_marker.py
+++ b/plotly/graph_objs/histogram/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram.selected"
-    _path_str = "histogram.selected.marker"
+    _parent_path_str = 'histogram.selected'
+    _path_str = 'histogram.selected.marker'
     _valid_props = {"color", "opacity"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         opacity
             Sets the marker opacity of selected points.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, color=None, opacity=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, color=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/selected/_textfont.py b/plotly/graph_objs/histogram/selected/_textfont.py
index 894084ded3e..c686401082a 100644
--- a/plotly/graph_objs/histogram/selected/_textfont.py
+++ b/plotly/graph_objs/histogram/selected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram.selected"
-    _path_str = "histogram.selected.textfont"
+    _parent_path_str = 'histogram.selected'
+    _path_str = 'histogram.selected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -39,8 +43,11 @@ def _prop_descriptions(self):
         color
             Sets the text font color of selected points.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -57,9 +64,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -69,16 +76,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.selected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.selected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram.selected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/unselected/__init__.py b/plotly/graph_objs/histogram/unselected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/histogram/unselected/__init__.py
+++ b/plotly/graph_objs/histogram/unselected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/histogram/unselected/_marker.py b/plotly/graph_objs/histogram/unselected/_marker.py
index eba6958cfc9..e9c4428435d 100644
--- a/plotly/graph_objs/histogram/unselected/_marker.py
+++ b/plotly/graph_objs/histogram/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram.unselected"
-    _path_str = "histogram.unselected.marker"
+    _parent_path_str = 'histogram.unselected'
+    _path_str = 'histogram.unselected.marker'
     _valid_props = {"color", "opacity"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -47,11 +51,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -63,8 +67,12 @@ def _prop_descriptions(self):
             Sets the marker opacity of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -85,9 +93,9 @@ def __init__(self, arg=None, color=None, opacity=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -97,17 +105,17 @@ def __init__(self, arg=None, color=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram/unselected/_textfont.py b/plotly/graph_objs/histogram/unselected/_textfont.py
index 2c84d5c53c7..0be9e2931ce 100644
--- a/plotly/graph_objs/histogram/unselected/_textfont.py
+++ b/plotly/graph_objs/histogram/unselected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram.unselected"
-    _path_str = "histogram.unselected.textfont"
+    _parent_path_str = 'histogram.unselected'
+    _path_str = 'histogram.unselected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -41,8 +45,11 @@ def _prop_descriptions(self):
             Sets the text font color of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -60,9 +67,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -72,16 +79,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram.unselected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram.unselected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram.unselected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2d/__init__.py b/plotly/graph_objs/histogram2d/__init__.py
index 0c0f6488315..7f267d2c55b 100644
--- a/plotly/graph_objs/histogram2d/__init__.py
+++ b/plotly/graph_objs/histogram2d/__init__.py
@@ -1,17 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._marker import Marker
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._xbins import XBins
+    from ._ybins import YBins
+    from . import colorbar
+    from . import hoverlabel
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar', '.hoverlabel', '.legendgrouptitle'],
+        ['._colorbar.ColorBar', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._marker.Marker', '._stream.Stream', '._textfont.Textfont', '._xbins.XBins', '._ybins.YBins']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar", ".hoverlabel", ".legendgrouptitle"],
-    [
-        "._colorbar.ColorBar",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._marker.Marker",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._xbins.XBins",
-        "._ybins.YBins",
-    ],
-)
diff --git a/plotly/graph_objs/histogram2d/_colorbar.py b/plotly/graph_objs/histogram2d/_colorbar.py
index ca25240d6ec..66cddc8763a 100644
--- a/plotly/graph_objs/histogram2d/_colorbar.py
+++ b/plotly/graph_objs/histogram2d/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2d"
-    _path_str = "histogram2d.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'histogram2d'
+    _path_str = 'histogram2d.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.histogram2d.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.histogram2d.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.histogram2d.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.histogram2d.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2d.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2d.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.histogram2d.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2d/_hoverlabel.py b/plotly/graph_objs/histogram2d/_hoverlabel.py
index 6412f1dafba..629b806051c 100644
--- a/plotly/graph_objs/histogram2d/_hoverlabel.py
+++ b/plotly/graph_objs/histogram2d/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2d"
-    _path_str = "histogram2d.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'histogram2d'
+    _path_str = 'histogram2d.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.histogram2d.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2d.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2d.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.histogram2d.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2d/_legendgrouptitle.py b/plotly/graph_objs/histogram2d/_legendgrouptitle.py
index 8d54b8dcc7f..8146958a28a 100644
--- a/plotly/graph_objs/histogram2d/_legendgrouptitle.py
+++ b/plotly/graph_objs/histogram2d/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2d"
-    _path_str = "histogram2d.legendgrouptitle"
+    _parent_path_str = 'histogram2d'
+    _path_str = 'histogram2d.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.histogram2d.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2d.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2d.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram2d.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2d/_marker.py b/plotly/graph_objs/histogram2d/_marker.py
index a6d0c401a06..11e3ddfc598 100644
--- a/plotly/graph_objs/histogram2d/_marker.py
+++ b/plotly/graph_objs/histogram2d/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2d"
-    _path_str = "histogram2d.marker"
+    _parent_path_str = 'histogram2d'
+    _path_str = 'histogram2d.marker'
     _valid_props = {"color", "colorsrc"}
 
     @property
@@ -23,11 +27,11 @@ def color(self):
         -------
         numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -41,11 +45,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -56,8 +60,12 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `color`.
         """
-
-    def __init__(self, arg=None, color=None, colorsrc=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -77,9 +85,9 @@ def __init__(self, arg=None, color=None, colorsrc=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -89,17 +97,17 @@ def __init__(self, arg=None, color=None, colorsrc=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2d.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2d.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram2d.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2d/_stream.py b/plotly/graph_objs/histogram2d/_stream.py
index 970b8c238ff..a3cb482da48 100644
--- a/plotly/graph_objs/histogram2d/_stream.py
+++ b/plotly/graph_objs/histogram2d/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2d"
-    _path_str = "histogram2d.stream"
+    _parent_path_str = 'histogram2d'
+    _path_str = 'histogram2d.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2d.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2d.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram2d.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2d/_textfont.py b/plotly/graph_objs/histogram2d/_textfont.py
index 61a55ea0a57..f38ad5efea9 100644
--- a/plotly/graph_objs/histogram2d/_textfont.py
+++ b/plotly/graph_objs/histogram2d/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2d"
-    _path_str = "histogram2d.textfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'histogram2d'
+    _path_str = 'histogram2d.textfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2d.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2d.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.histogram2d.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2d/_xbins.py b/plotly/graph_objs/histogram2d/_xbins.py
index 8022c4dfd8b..fe87d854c15 100644
--- a/plotly/graph_objs/histogram2d/_xbins.py
+++ b/plotly/graph_objs/histogram2d/_xbins.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class XBins(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2d"
-    _path_str = "histogram2d.xbins"
+    _parent_path_str = 'histogram2d'
+    _path_str = 'histogram2d.xbins'
     _valid_props = {"end", "size", "start"}
 
     @property
@@ -27,11 +31,11 @@ def end(self):
         -------
         Any
         """
-        return self["end"]
+        return self['end']
 
     @end.setter
     def end(self, val):
-        self["end"] = val
+        self['end'] = val
 
     @property
     def size(self):
@@ -51,11 +55,11 @@ def size(self):
         -------
         Any
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def start(self):
@@ -77,11 +81,11 @@ def start(self):
         -------
         Any
         """
-        return self["start"]
+        return self['start']
 
     @start.setter
     def start(self, val):
-        self["start"] = val
+        self['start'] = val
 
     @property
     def _prop_descriptions(self):
@@ -116,8 +120,13 @@ def _prop_descriptions(self):
             string. For category data, `start` is based on the
             category serial numbers, and defaults to -0.5.
         """
-
-    def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            end=None,
+            size=None,
+            start=None,
+            **kwargs
+        ):
         """
         Construct a new XBins object
 
@@ -161,9 +170,9 @@ def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
         -------
         XBins
         """
-        super().__init__("xbins")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('xbins')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -173,18 +182,18 @@ def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2d.XBins
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2d.XBins`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram2d.XBins`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("end", arg, end)
-        self._set_property("size", arg, size)
-        self._set_property("start", arg, start)
+        self._set_property('end', arg, end)
+        self._set_property('size', arg, size)
+        self._set_property('start', arg, start)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2d/_ybins.py b/plotly/graph_objs/histogram2d/_ybins.py
index a6f02dca885..dfd8acb9939 100644
--- a/plotly/graph_objs/histogram2d/_ybins.py
+++ b/plotly/graph_objs/histogram2d/_ybins.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class YBins(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2d"
-    _path_str = "histogram2d.ybins"
+    _parent_path_str = 'histogram2d'
+    _path_str = 'histogram2d.ybins'
     _valid_props = {"end", "size", "start"}
 
     @property
@@ -27,11 +31,11 @@ def end(self):
         -------
         Any
         """
-        return self["end"]
+        return self['end']
 
     @end.setter
     def end(self, val):
-        self["end"] = val
+        self['end'] = val
 
     @property
     def size(self):
@@ -51,11 +55,11 @@ def size(self):
         -------
         Any
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def start(self):
@@ -77,11 +81,11 @@ def start(self):
         -------
         Any
         """
-        return self["start"]
+        return self['start']
 
     @start.setter
     def start(self, val):
-        self["start"] = val
+        self['start'] = val
 
     @property
     def _prop_descriptions(self):
@@ -116,8 +120,13 @@ def _prop_descriptions(self):
             string. For category data, `start` is based on the
             category serial numbers, and defaults to -0.5.
         """
-
-    def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            end=None,
+            size=None,
+            start=None,
+            **kwargs
+        ):
         """
         Construct a new YBins object
 
@@ -161,9 +170,9 @@ def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
         -------
         YBins
         """
-        super().__init__("ybins")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('ybins')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -173,18 +182,18 @@ def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2d.YBins
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2d.YBins`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram2d.YBins`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("end", arg, end)
-        self._set_property("size", arg, size)
-        self._set_property("start", arg, start)
+        self._set_property('end', arg, end)
+        self._set_property('size', arg, size)
+        self._set_property('start', arg, start)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2d/colorbar/__init__.py b/plotly/graph_objs/histogram2d/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/histogram2d/colorbar/__init__.py
+++ b/plotly/graph_objs/histogram2d/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/histogram2d/colorbar/_tickfont.py b/plotly/graph_objs/histogram2d/colorbar/_tickfont.py
index 01cca1e48c8..d690783be7b 100644
--- a/plotly/graph_objs/histogram2d/colorbar/_tickfont.py
+++ b/plotly/graph_objs/histogram2d/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2d.colorbar"
-    _path_str = "histogram2d.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'histogram2d.colorbar'
+    _path_str = 'histogram2d.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2d.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2d.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.histogram2d.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2d/colorbar/_tickformatstop.py b/plotly/graph_objs/histogram2d/colorbar/_tickformatstop.py
index 03591189530..02f517dc4ba 100644
--- a/plotly/graph_objs/histogram2d/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/histogram2d/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2d.colorbar"
-    _path_str = "histogram2d.colorbar.tickformatstop"
+    _parent_path_str = 'histogram2d.colorbar'
+    _path_str = 'histogram2d.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2d.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2d.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram2d.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2d/colorbar/_title.py b/plotly/graph_objs/histogram2d/colorbar/_title.py
index 1fe10f69070..6193539038f 100644
--- a/plotly/graph_objs/histogram2d/colorbar/_title.py
+++ b/plotly/graph_objs/histogram2d/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2d.colorbar"
-    _path_str = "histogram2d.colorbar.title"
+    _parent_path_str = 'histogram2d.colorbar'
+    _path_str = 'histogram2d.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.histogram2d.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2d.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2d.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram2d.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2d/colorbar/title/__init__.py b/plotly/graph_objs/histogram2d/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/histogram2d/colorbar/title/__init__.py
+++ b/plotly/graph_objs/histogram2d/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/histogram2d/colorbar/title/_font.py b/plotly/graph_objs/histogram2d/colorbar/title/_font.py
index 7a58d7c078d..c9df6b10f3b 100644
--- a/plotly/graph_objs/histogram2d/colorbar/title/_font.py
+++ b/plotly/graph_objs/histogram2d/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2d.colorbar.title"
-    _path_str = "histogram2d.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'histogram2d.colorbar.title'
+    _path_str = 'histogram2d.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2d.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2d.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.histogram2d.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2d/hoverlabel/__init__.py b/plotly/graph_objs/histogram2d/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/histogram2d/hoverlabel/__init__.py
+++ b/plotly/graph_objs/histogram2d/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/histogram2d/hoverlabel/_font.py b/plotly/graph_objs/histogram2d/hoverlabel/_font.py
index 150eec33bb0..3bc5159dc9b 100644
--- a/plotly/graph_objs/histogram2d/hoverlabel/_font.py
+++ b/plotly/graph_objs/histogram2d/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2d.hoverlabel"
-    _path_str = "histogram2d.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'histogram2d.hoverlabel'
+    _path_str = 'histogram2d.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2d.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2d.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.histogram2d.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2d/legendgrouptitle/__init__.py b/plotly/graph_objs/histogram2d/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/histogram2d/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/histogram2d/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/histogram2d/legendgrouptitle/_font.py b/plotly/graph_objs/histogram2d/legendgrouptitle/_font.py
index 8a6d9df215d..a1693514468 100644
--- a/plotly/graph_objs/histogram2d/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/histogram2d/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2d.legendgrouptitle"
-    _path_str = "histogram2d.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'histogram2d.legendgrouptitle'
+    _path_str = 'histogram2d.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2d.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2d.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.histogram2d.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/__init__.py b/plotly/graph_objs/histogram2dcontour/__init__.py
index 2d04faeed7b..9f09c7cf741 100644
--- a/plotly/graph_objs/histogram2dcontour/__init__.py
+++ b/plotly/graph_objs/histogram2dcontour/__init__.py
@@ -1,19 +1,26 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._contours import Contours
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._marker import Marker
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._xbins import XBins
+    from ._ybins import YBins
+    from . import colorbar
+    from . import contours
+    from . import hoverlabel
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar', '.contours', '.hoverlabel', '.legendgrouptitle'],
+        ['._colorbar.ColorBar', '._contours.Contours', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._marker.Marker', '._stream.Stream', '._textfont.Textfont', '._xbins.XBins', '._ybins.YBins']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar", ".contours", ".hoverlabel", ".legendgrouptitle"],
-    [
-        "._colorbar.ColorBar",
-        "._contours.Contours",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._marker.Marker",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._xbins.XBins",
-        "._ybins.YBins",
-    ],
-)
diff --git a/plotly/graph_objs/histogram2dcontour/_colorbar.py b/plotly/graph_objs/histogram2dcontour/_colorbar.py
index edea249057b..cf6c244a06e 100644
--- a/plotly/graph_objs/histogram2dcontour/_colorbar.py
+++ b/plotly/graph_objs/histogram2dcontour/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour"
-    _path_str = "histogram2dcontour.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'histogram2dcontour'
+    _path_str = 'histogram2dcontour.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.histogram2dcontour.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.histogram2dcontour.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.histogram2dcontour.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.histogram2dcontour.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.histogram2dcontour.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/_contours.py b/plotly/graph_objs/histogram2dcontour/_contours.py
index 6c7f0d94c2f..df2baeb037a 100644
--- a/plotly/graph_objs/histogram2dcontour/_contours.py
+++ b/plotly/graph_objs/histogram2dcontour/_contours.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,21 +11,9 @@
 
 class Contours(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour"
-    _path_str = "histogram2dcontour.contours"
-    _valid_props = {
-        "coloring",
-        "end",
-        "labelfont",
-        "labelformat",
-        "operation",
-        "showlabels",
-        "showlines",
-        "size",
-        "start",
-        "type",
-        "value",
-    }
+    _parent_path_str = 'histogram2dcontour'
+    _path_str = 'histogram2dcontour.contours'
+    _valid_props = {"coloring", "end", "labelfont", "labelformat", "operation", "showlabels", "showlines", "size", "start", "type", "value"}
 
     @property
     def coloring(self):
@@ -40,11 +32,11 @@ def coloring(self):
         -------
         Any
         """
-        return self["coloring"]
+        return self['coloring']
 
     @coloring.setter
     def coloring(self, val):
-        self["coloring"] = val
+        self['coloring'] = val
 
     @property
     def end(self):
@@ -59,11 +51,11 @@ def end(self):
         -------
         int|float
         """
-        return self["end"]
+        return self['end']
 
     @end.setter
     def end(self, val):
-        self["end"] = val
+        self['end'] = val
 
     @property
     def labelfont(self):
@@ -82,11 +74,11 @@ def labelfont(self):
         -------
         plotly.graph_objs.histogram2dcontour.contours.Labelfont
         """
-        return self["labelfont"]
+        return self['labelfont']
 
     @labelfont.setter
     def labelfont(self, val):
-        self["labelfont"] = val
+        self['labelfont'] = val
 
     @property
     def labelformat(self):
@@ -104,11 +96,11 @@ def labelformat(self):
         -------
         str
         """
-        return self["labelformat"]
+        return self['labelformat']
 
     @labelformat.setter
     def labelformat(self, val):
-        self["labelformat"] = val
+        self['labelformat'] = val
 
     @property
     def operation(self):
@@ -131,11 +123,11 @@ def operation(self):
         -------
         Any
         """
-        return self["operation"]
+        return self['operation']
 
     @operation.setter
     def operation(self, val):
-        self["operation"] = val
+        self['operation'] = val
 
     @property
     def showlabels(self):
@@ -150,11 +142,11 @@ def showlabels(self):
         -------
         bool
         """
-        return self["showlabels"]
+        return self['showlabels']
 
     @showlabels.setter
     def showlabels(self, val):
-        self["showlabels"] = val
+        self['showlabels'] = val
 
     @property
     def showlines(self):
@@ -169,11 +161,11 @@ def showlines(self):
         -------
         bool
         """
-        return self["showlines"]
+        return self['showlines']
 
     @showlines.setter
     def showlines(self, val):
-        self["showlines"] = val
+        self['showlines'] = val
 
     @property
     def size(self):
@@ -187,11 +179,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def start(self):
@@ -206,11 +198,11 @@ def start(self):
         -------
         int|float
         """
-        return self["start"]
+        return self['start']
 
     @start.setter
     def start(self, val):
-        self["start"] = val
+        self['start'] = val
 
     @property
     def type(self):
@@ -228,11 +220,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def value(self):
@@ -251,11 +243,11 @@ def value(self):
         -------
         Any
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -316,23 +308,21 @@ def _prop_descriptions(self):
             array of two numbers where the first is the lower bound
             and the second is the upper bound.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        coloring=None,
-        end=None,
-        labelfont=None,
-        labelformat=None,
-        operation=None,
-        showlabels=None,
-        showlines=None,
-        size=None,
-        start=None,
-        type=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            coloring=None,
+            end=None,
+            labelfont=None,
+            labelformat=None,
+            operation=None,
+            showlabels=None,
+            showlines=None,
+            size=None,
+            start=None,
+            type=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Contours object
 
@@ -402,9 +392,9 @@ def __init__(
         -------
         Contours
         """
-        super().__init__("contours")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('contours')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -414,26 +404,26 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.Contours
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.Contours`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("coloring", arg, coloring)
-        self._set_property("end", arg, end)
-        self._set_property("labelfont", arg, labelfont)
-        self._set_property("labelformat", arg, labelformat)
-        self._set_property("operation", arg, operation)
-        self._set_property("showlabels", arg, showlabels)
-        self._set_property("showlines", arg, showlines)
-        self._set_property("size", arg, size)
-        self._set_property("start", arg, start)
-        self._set_property("type", arg, type)
-        self._set_property("value", arg, value)
+an instance of :class:`plotly.graph_objs.histogram2dcontour.Contours`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('coloring', arg, coloring)
+        self._set_property('end', arg, end)
+        self._set_property('labelfont', arg, labelfont)
+        self._set_property('labelformat', arg, labelformat)
+        self._set_property('operation', arg, operation)
+        self._set_property('showlabels', arg, showlabels)
+        self._set_property('showlines', arg, showlines)
+        self._set_property('size', arg, size)
+        self._set_property('start', arg, start)
+        self._set_property('type', arg, type)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/_hoverlabel.py b/plotly/graph_objs/histogram2dcontour/_hoverlabel.py
index e9aeaeb3d9f..76dc51b0d1e 100644
--- a/plotly/graph_objs/histogram2dcontour/_hoverlabel.py
+++ b/plotly/graph_objs/histogram2dcontour/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour"
-    _path_str = "histogram2dcontour.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'histogram2dcontour'
+    _path_str = 'histogram2dcontour.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.histogram2dcontour.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.histogram2dcontour.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/_legendgrouptitle.py b/plotly/graph_objs/histogram2dcontour/_legendgrouptitle.py
index 1d4720bb64b..74786a7330c 100644
--- a/plotly/graph_objs/histogram2dcontour/_legendgrouptitle.py
+++ b/plotly/graph_objs/histogram2dcontour/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour"
-    _path_str = "histogram2dcontour.legendgrouptitle"
+    _parent_path_str = 'histogram2dcontour'
+    _path_str = 'histogram2dcontour.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.histogram2dcontour.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram2dcontour.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/_line.py b/plotly/graph_objs/histogram2dcontour/_line.py
index bda57c1e4d5..892c6995efe 100644
--- a/plotly/graph_objs/histogram2dcontour/_line.py
+++ b/plotly/graph_objs/histogram2dcontour/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour"
-    _path_str = "histogram2dcontour.line"
+    _parent_path_str = 'histogram2dcontour'
+    _path_str = 'histogram2dcontour.line'
     _valid_props = {"color", "dash", "smoothing", "width"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -52,11 +56,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def smoothing(self):
@@ -71,11 +75,11 @@ def smoothing(self):
         -------
         int|float
         """
-        return self["smoothing"]
+        return self['smoothing']
 
     @smoothing.setter
     def smoothing(self, val):
-        self["smoothing"] = val
+        self['smoothing'] = val
 
     @property
     def width(self):
@@ -89,11 +93,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -112,10 +116,14 @@ def _prop_descriptions(self):
         width
             Sets the contour line width in (in px)
         """
-
-    def __init__(
-        self, arg=None, color=None, dash=None, smoothing=None, width=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dash=None,
+            smoothing=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -143,9 +151,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -155,19 +163,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram2dcontour.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("smoothing", arg, smoothing)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('smoothing', arg, smoothing)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/_marker.py b/plotly/graph_objs/histogram2dcontour/_marker.py
index f3d11bcca62..1aec58ca67e 100644
--- a/plotly/graph_objs/histogram2dcontour/_marker.py
+++ b/plotly/graph_objs/histogram2dcontour/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour"
-    _path_str = "histogram2dcontour.marker"
+    _parent_path_str = 'histogram2dcontour'
+    _path_str = 'histogram2dcontour.marker'
     _valid_props = {"color", "colorsrc"}
 
     @property
@@ -23,11 +27,11 @@ def color(self):
         -------
         numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -41,11 +45,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -56,8 +60,12 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `color`.
         """
-
-    def __init__(self, arg=None, color=None, colorsrc=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -77,9 +85,9 @@ def __init__(self, arg=None, color=None, colorsrc=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -89,17 +97,17 @@ def __init__(self, arg=None, color=None, colorsrc=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram2dcontour.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/_stream.py b/plotly/graph_objs/histogram2dcontour/_stream.py
index 31287da504f..4b3e66a2b10 100644
--- a/plotly/graph_objs/histogram2dcontour/_stream.py
+++ b/plotly/graph_objs/histogram2dcontour/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour"
-    _path_str = "histogram2dcontour.stream"
+    _parent_path_str = 'histogram2dcontour'
+    _path_str = 'histogram2dcontour.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram2dcontour.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/_textfont.py b/plotly/graph_objs/histogram2dcontour/_textfont.py
index ea163a2df3e..ab0d03b56b6 100644
--- a/plotly/graph_objs/histogram2dcontour/_textfont.py
+++ b/plotly/graph_objs/histogram2dcontour/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour"
-    _path_str = "histogram2dcontour.textfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'histogram2dcontour'
+    _path_str = 'histogram2dcontour.textfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -303,9 +295,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -315,24 +307,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.histogram2dcontour.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/_xbins.py b/plotly/graph_objs/histogram2dcontour/_xbins.py
index 45a192f63cd..05f51f93510 100644
--- a/plotly/graph_objs/histogram2dcontour/_xbins.py
+++ b/plotly/graph_objs/histogram2dcontour/_xbins.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class XBins(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour"
-    _path_str = "histogram2dcontour.xbins"
+    _parent_path_str = 'histogram2dcontour'
+    _path_str = 'histogram2dcontour.xbins'
     _valid_props = {"end", "size", "start"}
 
     @property
@@ -27,11 +31,11 @@ def end(self):
         -------
         Any
         """
-        return self["end"]
+        return self['end']
 
     @end.setter
     def end(self, val):
-        self["end"] = val
+        self['end'] = val
 
     @property
     def size(self):
@@ -51,11 +55,11 @@ def size(self):
         -------
         Any
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def start(self):
@@ -77,11 +81,11 @@ def start(self):
         -------
         Any
         """
-        return self["start"]
+        return self['start']
 
     @start.setter
     def start(self, val):
-        self["start"] = val
+        self['start'] = val
 
     @property
     def _prop_descriptions(self):
@@ -116,8 +120,13 @@ def _prop_descriptions(self):
             string. For category data, `start` is based on the
             category serial numbers, and defaults to -0.5.
         """
-
-    def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            end=None,
+            size=None,
+            start=None,
+            **kwargs
+        ):
         """
         Construct a new XBins object
 
@@ -161,9 +170,9 @@ def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
         -------
         XBins
         """
-        super().__init__("xbins")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('xbins')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -173,18 +182,18 @@ def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.XBins
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.XBins`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram2dcontour.XBins`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("end", arg, end)
-        self._set_property("size", arg, size)
-        self._set_property("start", arg, start)
+        self._set_property('end', arg, end)
+        self._set_property('size', arg, size)
+        self._set_property('start', arg, start)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/_ybins.py b/plotly/graph_objs/histogram2dcontour/_ybins.py
index c8f003e1d82..09234c01490 100644
--- a/plotly/graph_objs/histogram2dcontour/_ybins.py
+++ b/plotly/graph_objs/histogram2dcontour/_ybins.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class YBins(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour"
-    _path_str = "histogram2dcontour.ybins"
+    _parent_path_str = 'histogram2dcontour'
+    _path_str = 'histogram2dcontour.ybins'
     _valid_props = {"end", "size", "start"}
 
     @property
@@ -27,11 +31,11 @@ def end(self):
         -------
         Any
         """
-        return self["end"]
+        return self['end']
 
     @end.setter
     def end(self, val):
-        self["end"] = val
+        self['end'] = val
 
     @property
     def size(self):
@@ -51,11 +55,11 @@ def size(self):
         -------
         Any
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def start(self):
@@ -77,11 +81,11 @@ def start(self):
         -------
         Any
         """
-        return self["start"]
+        return self['start']
 
     @start.setter
     def start(self, val):
-        self["start"] = val
+        self['start'] = val
 
     @property
     def _prop_descriptions(self):
@@ -116,8 +120,13 @@ def _prop_descriptions(self):
             string. For category data, `start` is based on the
             category serial numbers, and defaults to -0.5.
         """
-
-    def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            end=None,
+            size=None,
+            start=None,
+            **kwargs
+        ):
         """
         Construct a new YBins object
 
@@ -161,9 +170,9 @@ def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
         -------
         YBins
         """
-        super().__init__("ybins")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('ybins')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -173,18 +182,18 @@ def __init__(self, arg=None, end=None, size=None, start=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.YBins
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.YBins`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram2dcontour.YBins`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("end", arg, end)
-        self._set_property("size", arg, size)
-        self._set_property("start", arg, start)
+        self._set_property('end', arg, end)
+        self._set_property('size', arg, size)
+        self._set_property('start', arg, start)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/colorbar/__init__.py b/plotly/graph_objs/histogram2dcontour/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/histogram2dcontour/colorbar/__init__.py
+++ b/plotly/graph_objs/histogram2dcontour/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/histogram2dcontour/colorbar/_tickfont.py b/plotly/graph_objs/histogram2dcontour/colorbar/_tickfont.py
index eb96a8103bc..3a567a6c4c5 100644
--- a/plotly/graph_objs/histogram2dcontour/colorbar/_tickfont.py
+++ b/plotly/graph_objs/histogram2dcontour/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour.colorbar"
-    _path_str = "histogram2dcontour.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'histogram2dcontour.colorbar'
+    _path_str = 'histogram2dcontour.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.histogram2dcontour.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/colorbar/_tickformatstop.py b/plotly/graph_objs/histogram2dcontour/colorbar/_tickformatstop.py
index 8b49cb32a83..8c405bfa02f 100644
--- a/plotly/graph_objs/histogram2dcontour/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/histogram2dcontour/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour.colorbar"
-    _path_str = "histogram2dcontour.colorbar.tickformatstop"
+    _parent_path_str = 'histogram2dcontour.colorbar'
+    _path_str = 'histogram2dcontour.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram2dcontour.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/colorbar/_title.py b/plotly/graph_objs/histogram2dcontour/colorbar/_title.py
index 6a6a2c9226a..63844fbc29c 100644
--- a/plotly/graph_objs/histogram2dcontour/colorbar/_title.py
+++ b/plotly/graph_objs/histogram2dcontour/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour.colorbar"
-    _path_str = "histogram2dcontour.colorbar.title"
+    _parent_path_str = 'histogram2dcontour.colorbar'
+    _path_str = 'histogram2dcontour.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.histogram2dcontour.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.histogram2dcontour.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/colorbar/title/__init__.py b/plotly/graph_objs/histogram2dcontour/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/histogram2dcontour/colorbar/title/__init__.py
+++ b/plotly/graph_objs/histogram2dcontour/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/histogram2dcontour/colorbar/title/_font.py b/plotly/graph_objs/histogram2dcontour/colorbar/title/_font.py
index c60f261f3e4..0d2bb28d6e4 100644
--- a/plotly/graph_objs/histogram2dcontour/colorbar/title/_font.py
+++ b/plotly/graph_objs/histogram2dcontour/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour.colorbar.title"
-    _path_str = "histogram2dcontour.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'histogram2dcontour.colorbar.title'
+    _path_str = 'histogram2dcontour.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.histogram2dcontour.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/contours/__init__.py b/plotly/graph_objs/histogram2dcontour/contours/__init__.py
index ca8d81e748c..7cedabc68e2 100644
--- a/plotly/graph_objs/histogram2dcontour/contours/__init__.py
+++ b/plotly/graph_objs/histogram2dcontour/contours/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._labelfont import Labelfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._labelfont.Labelfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._labelfont.Labelfont"])
diff --git a/plotly/graph_objs/histogram2dcontour/contours/_labelfont.py b/plotly/graph_objs/histogram2dcontour/contours/_labelfont.py
index dd2620bea00..88405958efe 100644
--- a/plotly/graph_objs/histogram2dcontour/contours/_labelfont.py
+++ b/plotly/graph_objs/histogram2dcontour/contours/_labelfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Labelfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour.contours"
-    _path_str = "histogram2dcontour.contours.labelfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'histogram2dcontour.contours'
+    _path_str = 'histogram2dcontour.contours.labelfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Labelfont object
 
@@ -304,9 +296,9 @@ def __init__(
         -------
         Labelfont
         """
-        super().__init__("labelfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('labelfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -316,24 +308,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.contours.Labelfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.contours.Labelfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.histogram2dcontour.contours.Labelfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/hoverlabel/__init__.py b/plotly/graph_objs/histogram2dcontour/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/histogram2dcontour/hoverlabel/__init__.py
+++ b/plotly/graph_objs/histogram2dcontour/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/histogram2dcontour/hoverlabel/_font.py b/plotly/graph_objs/histogram2dcontour/hoverlabel/_font.py
index c2b7fc96190..054799af2c6 100644
--- a/plotly/graph_objs/histogram2dcontour/hoverlabel/_font.py
+++ b/plotly/graph_objs/histogram2dcontour/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour.hoverlabel"
-    _path_str = "histogram2dcontour.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'histogram2dcontour.hoverlabel'
+    _path_str = 'histogram2dcontour.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.histogram2dcontour.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/histogram2dcontour/legendgrouptitle/__init__.py b/plotly/graph_objs/histogram2dcontour/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/histogram2dcontour/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/histogram2dcontour/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/histogram2dcontour/legendgrouptitle/_font.py b/plotly/graph_objs/histogram2dcontour/legendgrouptitle/_font.py
index b0c9d71e644..6d4b00fd816 100644
--- a/plotly/graph_objs/histogram2dcontour/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/histogram2dcontour/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "histogram2dcontour.legendgrouptitle"
-    _path_str = "histogram2dcontour.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'histogram2dcontour.legendgrouptitle'
+    _path_str = 'histogram2dcontour.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.histogram2dcontour.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.histogram2dcontour.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.histogram2dcontour.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/__init__.py b/plotly/graph_objs/icicle/__init__.py
index 714467ed349..07d4d478cf1 100644
--- a/plotly/graph_objs/icicle/__init__.py
+++ b/plotly/graph_objs/icicle/__init__.py
@@ -1,21 +1,28 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._domain import Domain
+    from ._hoverlabel import Hoverlabel
+    from ._insidetextfont import Insidetextfont
+    from ._leaf import Leaf
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._marker import Marker
+    from ._outsidetextfont import Outsidetextfont
+    from ._pathbar import Pathbar
+    from ._root import Root
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._tiling import Tiling
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import pathbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.pathbar'],
+        ['._domain.Domain', '._hoverlabel.Hoverlabel', '._insidetextfont.Insidetextfont', '._leaf.Leaf', '._legendgrouptitle.Legendgrouptitle', '._marker.Marker', '._outsidetextfont.Outsidetextfont', '._pathbar.Pathbar', '._root.Root', '._stream.Stream', '._textfont.Textfont', '._tiling.Tiling']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".pathbar"],
-    [
-        "._domain.Domain",
-        "._hoverlabel.Hoverlabel",
-        "._insidetextfont.Insidetextfont",
-        "._leaf.Leaf",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._marker.Marker",
-        "._outsidetextfont.Outsidetextfont",
-        "._pathbar.Pathbar",
-        "._root.Root",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._tiling.Tiling",
-    ],
-)
diff --git a/plotly/graph_objs/icicle/_domain.py b/plotly/graph_objs/icicle/_domain.py
index fa2758792ed..31a41be2e08 100644
--- a/plotly/graph_objs/icicle/_domain.py
+++ b/plotly/graph_objs/icicle/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle"
-    _path_str = "icicle.domain"
+    _parent_path_str = 'icicle'
+    _path_str = 'icicle.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -25,11 +29,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -45,59 +49,59 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this icicle trace (in plot
-            fraction).
-
-            The 'x' property is an info array that may be specified as:
+        Sets the horizontal domain of this icicle trace (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this icicle trace (in plot
-            fraction).
+        Sets the vertical domain of this icicle trace (in plot
+        fraction).
 
-            The 'y' property is an info array that may be specified as:
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,8 +119,14 @@ def _prop_descriptions(self):
             Sets the vertical domain of this icicle trace (in plot
             fraction).
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -142,9 +152,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -154,19 +164,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.icicle.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/_hoverlabel.py b/plotly/graph_objs/icicle/_hoverlabel.py
index fdc9e22c327..f598fc8e0ea 100644
--- a/plotly/graph_objs/icicle/_hoverlabel.py
+++ b/plotly/graph_objs/icicle/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle"
-    _path_str = "icicle.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'icicle'
+    _path_str = 'icicle.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.icicle.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.icicle.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/_insidetextfont.py b/plotly/graph_objs/icicle/_insidetextfont.py
index 38ee58c10ce..4207dd979a7 100644
--- a/plotly/graph_objs/icicle/_insidetextfont.py
+++ b/plotly/graph_objs/icicle/_insidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Insidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle"
-    _path_str = "icicle.insidetextfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'icicle'
+    _path_str = 'icicle.insidetextfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Insidetextfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Insidetextfont
         """
-        super().__init__("insidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('insidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.Insidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.Insidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.icicle.Insidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/_leaf.py b/plotly/graph_objs/icicle/_leaf.py
index 39596517195..58df3a005a8 100644
--- a/plotly/graph_objs/icicle/_leaf.py
+++ b/plotly/graph_objs/icicle/_leaf.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Leaf(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle"
-    _path_str = "icicle.leaf"
+    _parent_path_str = 'icicle'
+    _path_str = 'icicle.leaf'
     _valid_props = {"opacity"}
 
     @property
@@ -24,11 +28,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             Sets the opacity of the leaves. With colorscale it is
             defaulted to 1; otherwise it is defaulted to 0.7
         """
-
-    def __init__(self, arg=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Leaf object
 
@@ -55,9 +62,9 @@ def __init__(self, arg=None, opacity=None, **kwargs):
         -------
         Leaf
         """
-        super().__init__("leaf")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('leaf')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -67,16 +74,16 @@ def __init__(self, arg=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.Leaf
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.Leaf`"""
-            )
+an instance of :class:`plotly.graph_objs.icicle.Leaf`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("opacity", arg, opacity)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/_legendgrouptitle.py b/plotly/graph_objs/icicle/_legendgrouptitle.py
index b464eddefe6..565d714484e 100644
--- a/plotly/graph_objs/icicle/_legendgrouptitle.py
+++ b/plotly/graph_objs/icicle/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle"
-    _path_str = "icicle.legendgrouptitle"
+    _parent_path_str = 'icicle'
+    _path_str = 'icicle.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.icicle.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.icicle.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/_marker.py b/plotly/graph_objs/icicle/_marker.py
index fc6970d4c11..69000e27853 100644
--- a/plotly/graph_objs/icicle/_marker.py
+++ b/plotly/graph_objs/icicle/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,24 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle"
-    _path_str = "icicle.marker"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "coloraxis",
-        "colorbar",
-        "colors",
-        "colorscale",
-        "colorssrc",
-        "line",
-        "pattern",
-        "reversescale",
-        "showscale",
-    }
+    _parent_path_str = 'icicle'
+    _path_str = 'icicle.marker'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "coloraxis", "colorbar", "colors", "colorscale", "colorssrc", "line", "pattern", "reversescale", "showscale"}
 
     @property
     def autocolorscale(self):
@@ -44,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -66,11 +55,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -86,11 +75,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -108,11 +97,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -128,11 +117,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def coloraxis(self):
@@ -153,11 +142,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -172,11 +161,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.icicle.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colors(self):
@@ -191,11 +180,11 @@ def colors(self):
         -------
         numpy.ndarray
         """
-        return self["colors"]
+        return self['colors']
 
     @colors.setter
     def colors(self, val):
-        self["colors"] = val
+        self['colors'] = val
 
     @property
     def colorscale(self):
@@ -243,11 +232,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorssrc(self):
@@ -261,11 +250,11 @@ def colorssrc(self):
         -------
         str
         """
-        return self["colorssrc"]
+        return self['colorssrc']
 
     @colorssrc.setter
     def colorssrc(self, val):
-        self["colorssrc"] = val
+        self['colorssrc'] = val
 
     @property
     def line(self):
@@ -280,11 +269,11 @@ def line(self):
         -------
         plotly.graph_objs.icicle.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def pattern(self):
@@ -301,11 +290,11 @@ def pattern(self):
         -------
         plotly.graph_objs.icicle.marker.Pattern
         """
-        return self["pattern"]
+        return self['pattern']
 
     @pattern.setter
     def pattern(self, val):
-        self["pattern"] = val
+        self['pattern'] = val
 
     @property
     def reversescale(self):
@@ -322,11 +311,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -342,11 +331,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def _prop_descriptions(self):
@@ -430,26 +419,24 @@ def _prop_descriptions(self):
             this trace. Has an effect only if colors is set to a
             numerical array.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colors=None,
-        colorscale=None,
-        colorssrc=None,
-        line=None,
-        pattern=None,
-        reversescale=None,
-        showscale=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colors=None,
+            colorscale=None,
+            colorssrc=None,
+            line=None,
+            pattern=None,
+            reversescale=None,
+            showscale=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -541,9 +528,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -553,29 +540,29 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colors", arg, colors)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorssrc", arg, colorssrc)
-        self._set_property("line", arg, line)
-        self._set_property("pattern", arg, pattern)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
+an instance of :class:`plotly.graph_objs.icicle.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colors', arg, colors)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorssrc', arg, colorssrc)
+        self._set_property('line', arg, line)
+        self._set_property('pattern', arg, pattern)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/_outsidetextfont.py b/plotly/graph_objs/icicle/_outsidetextfont.py
index 67d66bcd681..50360afd359 100644
--- a/plotly/graph_objs/icicle/_outsidetextfont.py
+++ b/plotly/graph_objs/icicle/_outsidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Outsidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle"
-    _path_str = "icicle.outsidetextfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'icicle'
+    _path_str = 'icicle.outsidetextfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Outsidetextfont object
 
@@ -550,9 +533,9 @@ def __init__(
         -------
         Outsidetextfont
         """
-        super().__init__("outsidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('outsidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -562,33 +545,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.Outsidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.Outsidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.icicle.Outsidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/_pathbar.py b/plotly/graph_objs/icicle/_pathbar.py
index 2e875aad608..7b02be6121a 100644
--- a/plotly/graph_objs/icicle/_pathbar.py
+++ b/plotly/graph_objs/icicle/_pathbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Pathbar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle"
-    _path_str = "icicle.pathbar"
+    _parent_path_str = 'icicle'
+    _path_str = 'icicle.pathbar'
     _valid_props = {"edgeshape", "side", "textfont", "thickness", "visible"}
 
     @property
@@ -25,11 +29,11 @@ def edgeshape(self):
         -------
         Any
         """
-        return self["edgeshape"]
+        return self['edgeshape']
 
     @edgeshape.setter
     def edgeshape(self, val):
-        self["edgeshape"] = val
+        self['edgeshape'] = val
 
     @property
     def side(self):
@@ -45,11 +49,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def textfont(self):
@@ -66,11 +70,11 @@ def textfont(self):
         -------
         plotly.graph_objs.icicle.pathbar.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def thickness(self):
@@ -86,11 +90,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def visible(self):
@@ -105,11 +109,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -130,17 +134,15 @@ def _prop_descriptions(self):
             Determines if the path bar is drawn i.e. outside the
             trace `domain` and with one pixel gap.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        edgeshape=None,
-        side=None,
-        textfont=None,
-        thickness=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            edgeshape=None,
+            side=None,
+            textfont=None,
+            thickness=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Pathbar object
 
@@ -170,9 +172,9 @@ def __init__(
         -------
         Pathbar
         """
-        super().__init__("pathbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('pathbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -182,20 +184,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.Pathbar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.Pathbar`"""
-            )
+an instance of :class:`plotly.graph_objs.icicle.Pathbar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("edgeshape", arg, edgeshape)
-        self._set_property("side", arg, side)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("visible", arg, visible)
+        self._set_property('edgeshape', arg, edgeshape)
+        self._set_property('side', arg, side)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/_root.py b/plotly/graph_objs/icicle/_root.py
index e461b4da4ca..be7f97d44c5 100644
--- a/plotly/graph_objs/icicle/_root.py
+++ b/plotly/graph_objs/icicle/_root.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Root(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle"
-    _path_str = "icicle.root"
+    _parent_path_str = 'icicle'
+    _path_str = 'icicle.root'
     _valid_props = {"color"}
 
     @property
@@ -29,11 +33,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -43,8 +47,11 @@ def _prop_descriptions(self):
             sunburst/treemap/icicle trace. this has no effect when
             a colorscale is used to set the markers.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Root object
 
@@ -62,9 +69,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Root
         """
-        super().__init__("root")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('root')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -74,16 +81,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.Root
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.Root`"""
-            )
+an instance of :class:`plotly.graph_objs.icicle.Root`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/_stream.py b/plotly/graph_objs/icicle/_stream.py
index 1009e6061ae..ad188033516 100644
--- a/plotly/graph_objs/icicle/_stream.py
+++ b/plotly/graph_objs/icicle/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle"
-    _path_str = "icicle.stream"
+    _parent_path_str = 'icicle'
+    _path_str = 'icicle.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.icicle.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/_textfont.py b/plotly/graph_objs/icicle/_textfont.py
index ffbf8fd2d57..fa53b722e0a 100644
--- a/plotly/graph_objs/icicle/_textfont.py
+++ b/plotly/graph_objs/icicle/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle"
-    _path_str = "icicle.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'icicle'
+    _path_str = 'icicle.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.icicle.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/_tiling.py b/plotly/graph_objs/icicle/_tiling.py
index 3f13b30c136..77ea46cf1d9 100644
--- a/plotly/graph_objs/icicle/_tiling.py
+++ b/plotly/graph_objs/icicle/_tiling.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Tiling(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle"
-    _path_str = "icicle.tiling"
+    _parent_path_str = 'icicle'
+    _path_str = 'icicle.tiling'
     _valid_props = {"flip", "orientation", "pad"}
 
     @property
@@ -26,11 +30,11 @@ def flip(self):
         -------
         Any
         """
-        return self["flip"]
+        return self['flip']
 
     @flip.setter
     def flip(self, val):
-        self["flip"] = val
+        self['flip'] = val
 
     @property
     def orientation(self):
@@ -52,11 +56,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def pad(self):
@@ -70,11 +74,11 @@ def pad(self):
         -------
         int|float
         """
-        return self["pad"]
+        return self['pad']
 
     @pad.setter
     def pad(self, val):
-        self["pad"] = val
+        self['pad'] = val
 
     @property
     def _prop_descriptions(self):
@@ -96,8 +100,13 @@ def _prop_descriptions(self):
         pad
             Sets the inner padding (in px).
         """
-
-    def __init__(self, arg=None, flip=None, orientation=None, pad=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            flip=None,
+            orientation=None,
+            pad=None,
+            **kwargs
+        ):
         """
         Construct a new Tiling object
 
@@ -127,9 +136,9 @@ def __init__(self, arg=None, flip=None, orientation=None, pad=None, **kwargs):
         -------
         Tiling
         """
-        super().__init__("tiling")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tiling')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -139,18 +148,18 @@ def __init__(self, arg=None, flip=None, orientation=None, pad=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.Tiling
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.Tiling`"""
-            )
+an instance of :class:`plotly.graph_objs.icicle.Tiling`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("flip", arg, flip)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("pad", arg, pad)
+        self._set_property('flip', arg, flip)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('pad', arg, pad)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/hoverlabel/__init__.py b/plotly/graph_objs/icicle/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/icicle/hoverlabel/__init__.py
+++ b/plotly/graph_objs/icicle/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/icicle/hoverlabel/_font.py b/plotly/graph_objs/icicle/hoverlabel/_font.py
index 2eace8e0026..1c9ce481930 100644
--- a/plotly/graph_objs/icicle/hoverlabel/_font.py
+++ b/plotly/graph_objs/icicle/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle.hoverlabel"
-    _path_str = "icicle.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'icicle.hoverlabel'
+    _path_str = 'icicle.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.icicle.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/legendgrouptitle/__init__.py b/plotly/graph_objs/icicle/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/icicle/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/icicle/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/icicle/legendgrouptitle/_font.py b/plotly/graph_objs/icicle/legendgrouptitle/_font.py
index 32184b5040e..4dd6d2a9d63 100644
--- a/plotly/graph_objs/icicle/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/icicle/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle.legendgrouptitle"
-    _path_str = "icicle.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'icicle.legendgrouptitle'
+    _path_str = 'icicle.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.icicle.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/marker/__init__.py b/plotly/graph_objs/icicle/marker/__init__.py
index 700941a53ec..210a88dd222 100644
--- a/plotly/graph_objs/icicle/marker/__init__.py
+++ b/plotly/graph_objs/icicle/marker/__init__.py
@@ -1,6 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._line import Line
+    from ._pattern import Pattern
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._line.Line', '._pattern.Pattern']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".colorbar"], ["._colorbar.ColorBar", "._line.Line", "._pattern.Pattern"]
-)
diff --git a/plotly/graph_objs/icicle/marker/_colorbar.py b/plotly/graph_objs/icicle/marker/_colorbar.py
index a6819f8881e..7b5fb30c3b5 100644
--- a/plotly/graph_objs/icicle/marker/_colorbar.py
+++ b/plotly/graph_objs/icicle/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle.marker"
-    _path_str = "icicle.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'icicle.marker'
+    _path_str = 'icicle.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.icicle.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.icicle.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.icicle.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.icicle.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.icicle.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/marker/_line.py b/plotly/graph_objs/icicle/marker/_line.py
index 347ff795c34..f087c907778 100644
--- a/plotly/graph_objs/icicle/marker/_line.py
+++ b/plotly/graph_objs/icicle/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle.marker"
-    _path_str = "icicle.marker.line"
+    _parent_path_str = 'icicle.marker'
+    _path_str = 'icicle.marker.line'
     _valid_props = {"color", "colorsrc", "width", "widthsrc"}
 
     @property
@@ -29,11 +33,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -47,11 +51,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def width(self):
@@ -66,11 +70,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -84,11 +88,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -106,10 +110,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, width=None, widthsrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -136,9 +144,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -148,19 +156,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.marker.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.icicle.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/marker/_pattern.py b/plotly/graph_objs/icicle/marker/_pattern.py
index 8c3983e6a8c..c9325ab34fb 100644
--- a/plotly/graph_objs/icicle/marker/_pattern.py
+++ b/plotly/graph_objs/icicle/marker/_pattern.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Pattern(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle.marker"
-    _path_str = "icicle.marker.pattern"
-    _valid_props = {
-        "bgcolor",
-        "bgcolorsrc",
-        "fgcolor",
-        "fgcolorsrc",
-        "fgopacity",
-        "fillmode",
-        "shape",
-        "shapesrc",
-        "size",
-        "sizesrc",
-        "solidity",
-        "soliditysrc",
-    }
+    _parent_path_str = 'icicle.marker'
+    _path_str = 'icicle.marker.pattern'
+    _valid_props = {"bgcolor", "bgcolorsrc", "fgcolor", "fgcolorsrc", "fgopacity", "fillmode", "shape", "shapesrc", "size", "sizesrc", "solidity", "soliditysrc"}
 
     @property
     def bgcolor(self):
@@ -44,11 +35,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -62,11 +53,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def fgcolor(self):
@@ -88,11 +79,11 @@ def fgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["fgcolor"]
+        return self['fgcolor']
 
     @fgcolor.setter
     def fgcolor(self, val):
-        self["fgcolor"] = val
+        self['fgcolor'] = val
 
     @property
     def fgcolorsrc(self):
@@ -106,11 +97,11 @@ def fgcolorsrc(self):
         -------
         str
         """
-        return self["fgcolorsrc"]
+        return self['fgcolorsrc']
 
     @fgcolorsrc.setter
     def fgcolorsrc(self, val):
-        self["fgcolorsrc"] = val
+        self['fgcolorsrc'] = val
 
     @property
     def fgopacity(self):
@@ -125,11 +116,11 @@ def fgopacity(self):
         -------
         int|float
         """
-        return self["fgopacity"]
+        return self['fgopacity']
 
     @fgopacity.setter
     def fgopacity(self, val):
-        self["fgopacity"] = val
+        self['fgopacity'] = val
 
     @property
     def fillmode(self):
@@ -145,11 +136,11 @@ def fillmode(self):
         -------
         Any
         """
-        return self["fillmode"]
+        return self['fillmode']
 
     @fillmode.setter
     def fillmode(self, val):
-        self["fillmode"] = val
+        self['fillmode'] = val
 
     @property
     def shape(self):
@@ -166,11 +157,11 @@ def shape(self):
         -------
         Any|numpy.ndarray
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def shapesrc(self):
@@ -184,11 +175,11 @@ def shapesrc(self):
         -------
         str
         """
-        return self["shapesrc"]
+        return self['shapesrc']
 
     @shapesrc.setter
     def shapesrc(self, val):
-        self["shapesrc"] = val
+        self['shapesrc'] = val
 
     @property
     def size(self):
@@ -204,11 +195,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -222,11 +213,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def solidity(self):
@@ -244,11 +235,11 @@ def solidity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["solidity"]
+        return self['solidity']
 
     @solidity.setter
     def solidity(self, val):
-        self["solidity"] = val
+        self['solidity'] = val
 
     @property
     def soliditysrc(self):
@@ -262,11 +253,11 @@ def soliditysrc(self):
         -------
         str
         """
-        return self["soliditysrc"]
+        return self['soliditysrc']
 
     @soliditysrc.setter
     def soliditysrc(self, val):
-        self["soliditysrc"] = val
+        self['soliditysrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -318,24 +309,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `solidity`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        fgcolor=None,
-        fgcolorsrc=None,
-        fgopacity=None,
-        fillmode=None,
-        shape=None,
-        shapesrc=None,
-        size=None,
-        sizesrc=None,
-        solidity=None,
-        soliditysrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            fgcolor=None,
+            fgcolorsrc=None,
+            fgopacity=None,
+            fillmode=None,
+            shape=None,
+            shapesrc=None,
+            size=None,
+            sizesrc=None,
+            solidity=None,
+            soliditysrc=None,
+            **kwargs
+        ):
         """
         Construct a new Pattern object
 
@@ -398,9 +387,9 @@ def __init__(
         -------
         Pattern
         """
-        super().__init__("pattern")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('pattern')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -410,27 +399,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.marker.Pattern
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.marker.Pattern`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("fgcolor", arg, fgcolor)
-        self._set_property("fgcolorsrc", arg, fgcolorsrc)
-        self._set_property("fgopacity", arg, fgopacity)
-        self._set_property("fillmode", arg, fillmode)
-        self._set_property("shape", arg, shape)
-        self._set_property("shapesrc", arg, shapesrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("solidity", arg, solidity)
-        self._set_property("soliditysrc", arg, soliditysrc)
+an instance of :class:`plotly.graph_objs.icicle.marker.Pattern`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('fgcolor', arg, fgcolor)
+        self._set_property('fgcolorsrc', arg, fgcolorsrc)
+        self._set_property('fgopacity', arg, fgopacity)
+        self._set_property('fillmode', arg, fillmode)
+        self._set_property('shape', arg, shape)
+        self._set_property('shapesrc', arg, shapesrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('solidity', arg, solidity)
+        self._set_property('soliditysrc', arg, soliditysrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/marker/colorbar/__init__.py b/plotly/graph_objs/icicle/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/icicle/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/icicle/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/icicle/marker/colorbar/_tickfont.py b/plotly/graph_objs/icicle/marker/colorbar/_tickfont.py
index 538a8fcb8fd..345e0c0d26e 100644
--- a/plotly/graph_objs/icicle/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/icicle/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle.marker.colorbar"
-    _path_str = "icicle.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'icicle.marker.colorbar'
+    _path_str = 'icicle.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.icicle.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/icicle/marker/colorbar/_tickformatstop.py
index efd61597ed7..38ad500b6a7 100644
--- a/plotly/graph_objs/icicle/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/icicle/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle.marker.colorbar"
-    _path_str = "icicle.marker.colorbar.tickformatstop"
+    _parent_path_str = 'icicle.marker.colorbar'
+    _path_str = 'icicle.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.icicle.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/marker/colorbar/_title.py b/plotly/graph_objs/icicle/marker/colorbar/_title.py
index 669070410b3..0b53b43a9ea 100644
--- a/plotly/graph_objs/icicle/marker/colorbar/_title.py
+++ b/plotly/graph_objs/icicle/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle.marker.colorbar"
-    _path_str = "icicle.marker.colorbar.title"
+    _parent_path_str = 'icicle.marker.colorbar'
+    _path_str = 'icicle.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.icicle.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.icicle.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/marker/colorbar/title/__init__.py b/plotly/graph_objs/icicle/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/icicle/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/icicle/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/icicle/marker/colorbar/title/_font.py b/plotly/graph_objs/icicle/marker/colorbar/title/_font.py
index 05cd7ced877..230d992674f 100644
--- a/plotly/graph_objs/icicle/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/icicle/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle.marker.colorbar.title"
-    _path_str = "icicle.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'icicle.marker.colorbar.title'
+    _path_str = 'icicle.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.icicle.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/icicle/pathbar/__init__.py b/plotly/graph_objs/icicle/pathbar/__init__.py
index 2afd605560b..60a2c197f7c 100644
--- a/plotly/graph_objs/icicle/pathbar/__init__.py
+++ b/plotly/graph_objs/icicle/pathbar/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._textfont.Textfont"])
diff --git a/plotly/graph_objs/icicle/pathbar/_textfont.py b/plotly/graph_objs/icicle/pathbar/_textfont.py
index 1b844f161df..d2bebf3f5af 100644
--- a/plotly/graph_objs/icicle/pathbar/_textfont.py
+++ b/plotly/graph_objs/icicle/pathbar/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "icicle.pathbar"
-    _path_str = "icicle.pathbar.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'icicle.pathbar'
+    _path_str = 'icicle.pathbar.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.icicle.pathbar.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.icicle.pathbar.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.icicle.pathbar.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/image/__init__.py b/plotly/graph_objs/image/__init__.py
index cc978496d35..f5473a8c84d 100644
--- a/plotly/graph_objs/image/__init__.py
+++ b/plotly/graph_objs/image/__init__.py
@@ -1,12 +1,17 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._stream import Stream
+    from . import hoverlabel
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle'],
+        ['._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._stream.Stream']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle"],
-    [
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._stream.Stream",
-    ],
-)
diff --git a/plotly/graph_objs/image/_hoverlabel.py b/plotly/graph_objs/image/_hoverlabel.py
index ff47c62ab6c..e90863c60db 100644
--- a/plotly/graph_objs/image/_hoverlabel.py
+++ b/plotly/graph_objs/image/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "image"
-    _path_str = "image.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'image'
+    _path_str = 'image.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.image.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.image.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.image.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.image.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/image/_legendgrouptitle.py b/plotly/graph_objs/image/_legendgrouptitle.py
index a2d8c7ebbc5..d18d03da31a 100644
--- a/plotly/graph_objs/image/_legendgrouptitle.py
+++ b/plotly/graph_objs/image/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "image"
-    _path_str = "image.legendgrouptitle"
+    _parent_path_str = 'image'
+    _path_str = 'image.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.image.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.image.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.image.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.image.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/image/_stream.py b/plotly/graph_objs/image/_stream.py
index 30f4b3c4538..b6ca1af3691 100644
--- a/plotly/graph_objs/image/_stream.py
+++ b/plotly/graph_objs/image/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "image"
-    _path_str = "image.stream"
+    _parent_path_str = 'image'
+    _path_str = 'image.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.image.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.image.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.image.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/image/hoverlabel/__init__.py b/plotly/graph_objs/image/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/image/hoverlabel/__init__.py
+++ b/plotly/graph_objs/image/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/image/hoverlabel/_font.py b/plotly/graph_objs/image/hoverlabel/_font.py
index 0583d1dba10..34e53bebdf5 100644
--- a/plotly/graph_objs/image/hoverlabel/_font.py
+++ b/plotly/graph_objs/image/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "image.hoverlabel"
-    _path_str = "image.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'image.hoverlabel'
+    _path_str = 'image.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.image.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.image.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.image.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/image/legendgrouptitle/__init__.py b/plotly/graph_objs/image/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/image/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/image/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/image/legendgrouptitle/_font.py b/plotly/graph_objs/image/legendgrouptitle/_font.py
index 5a5a1b7352a..6324462580b 100644
--- a/plotly/graph_objs/image/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/image/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "image.legendgrouptitle"
-    _path_str = "image.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'image.legendgrouptitle'
+    _path_str = 'image.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.image.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.image.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.image.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/__init__.py b/plotly/graph_objs/indicator/__init__.py
index 2326db9555f..0761f31611a 100644
--- a/plotly/graph_objs/indicator/__init__.py
+++ b/plotly/graph_objs/indicator/__init__.py
@@ -1,16 +1,24 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._delta import Delta
+    from ._domain import Domain
+    from ._gauge import Gauge
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._number import Number
+    from ._stream import Stream
+    from ._title import Title
+    from . import delta
+    from . import gauge
+    from . import legendgrouptitle
+    from . import number
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.delta', '.gauge', '.legendgrouptitle', '.number', '.title'],
+        ['._delta.Delta', '._domain.Domain', '._gauge.Gauge', '._legendgrouptitle.Legendgrouptitle', '._number.Number', '._stream.Stream', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".delta", ".gauge", ".legendgrouptitle", ".number", ".title"],
-    [
-        "._delta.Delta",
-        "._domain.Domain",
-        "._gauge.Gauge",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._number.Number",
-        "._stream.Stream",
-        "._title.Title",
-    ],
-)
diff --git a/plotly/graph_objs/indicator/_delta.py b/plotly/graph_objs/indicator/_delta.py
index 6ee30309bf0..ae2b12b059a 100644
--- a/plotly/graph_objs/indicator/_delta.py
+++ b/plotly/graph_objs/indicator/_delta.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Delta(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator"
-    _path_str = "indicator.delta"
-    _valid_props = {
-        "decreasing",
-        "font",
-        "increasing",
-        "position",
-        "prefix",
-        "reference",
-        "relative",
-        "suffix",
-        "valueformat",
-    }
+    _parent_path_str = 'indicator'
+    _path_str = 'indicator.delta'
+    _valid_props = {"decreasing", "font", "increasing", "position", "prefix", "reference", "relative", "suffix", "valueformat"}
 
     @property
     def decreasing(self):
@@ -34,11 +28,11 @@ def decreasing(self):
         -------
         plotly.graph_objs.indicator.delta.Decreasing
         """
-        return self["decreasing"]
+        return self['decreasing']
 
     @decreasing.setter
     def decreasing(self, val):
-        self["decreasing"] = val
+        self['decreasing'] = val
 
     @property
     def font(self):
@@ -55,11 +49,11 @@ def font(self):
         -------
         plotly.graph_objs.indicator.delta.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def increasing(self):
@@ -74,11 +68,11 @@ def increasing(self):
         -------
         plotly.graph_objs.indicator.delta.Increasing
         """
-        return self["increasing"]
+        return self['increasing']
 
     @increasing.setter
     def increasing(self, val):
-        self["increasing"] = val
+        self['increasing'] = val
 
     @property
     def position(self):
@@ -93,11 +87,11 @@ def position(self):
         -------
         Any
         """
-        return self["position"]
+        return self['position']
 
     @position.setter
     def position(self, val):
-        self["position"] = val
+        self['position'] = val
 
     @property
     def prefix(self):
@@ -112,11 +106,11 @@ def prefix(self):
         -------
         str
         """
-        return self["prefix"]
+        return self['prefix']
 
     @prefix.setter
     def prefix(self, val):
-        self["prefix"] = val
+        self['prefix'] = val
 
     @property
     def reference(self):
@@ -131,11 +125,11 @@ def reference(self):
         -------
         int|float
         """
-        return self["reference"]
+        return self['reference']
 
     @reference.setter
     def reference(self, val):
-        self["reference"] = val
+        self['reference'] = val
 
     @property
     def relative(self):
@@ -149,11 +143,11 @@ def relative(self):
         -------
         bool
         """
-        return self["relative"]
+        return self['relative']
 
     @relative.setter
     def relative(self, val):
-        self["relative"] = val
+        self['relative'] = val
 
     @property
     def suffix(self):
@@ -168,11 +162,11 @@ def suffix(self):
         -------
         str
         """
-        return self["suffix"]
+        return self['suffix']
 
     @suffix.setter
     def suffix(self, val):
-        self["suffix"] = val
+        self['suffix'] = val
 
     @property
     def valueformat(self):
@@ -190,11 +184,11 @@ def valueformat(self):
         -------
         str
         """
-        return self["valueformat"]
+        return self['valueformat']
 
     @valueformat.setter
     def valueformat(self, val):
-        self["valueformat"] = val
+        self['valueformat'] = val
 
     @property
     def _prop_descriptions(self):
@@ -224,21 +218,19 @@ def _prop_descriptions(self):
             Python. For numbers, see:
             https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        decreasing=None,
-        font=None,
-        increasing=None,
-        position=None,
-        prefix=None,
-        reference=None,
-        relative=None,
-        suffix=None,
-        valueformat=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            decreasing=None,
+            font=None,
+            increasing=None,
+            position=None,
+            prefix=None,
+            reference=None,
+            relative=None,
+            suffix=None,
+            valueformat=None,
+            **kwargs
+        ):
         """
         Construct a new Delta object
 
@@ -277,9 +269,9 @@ def __init__(
         -------
         Delta
         """
-        super().__init__("delta")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('delta')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -289,24 +281,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.Delta
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.Delta`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("decreasing", arg, decreasing)
-        self._set_property("font", arg, font)
-        self._set_property("increasing", arg, increasing)
-        self._set_property("position", arg, position)
-        self._set_property("prefix", arg, prefix)
-        self._set_property("reference", arg, reference)
-        self._set_property("relative", arg, relative)
-        self._set_property("suffix", arg, suffix)
-        self._set_property("valueformat", arg, valueformat)
+an instance of :class:`plotly.graph_objs.indicator.Delta`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('decreasing', arg, decreasing)
+        self._set_property('font', arg, font)
+        self._set_property('increasing', arg, increasing)
+        self._set_property('position', arg, position)
+        self._set_property('prefix', arg, prefix)
+        self._set_property('reference', arg, reference)
+        self._set_property('relative', arg, relative)
+        self._set_property('suffix', arg, suffix)
+        self._set_property('valueformat', arg, valueformat)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/_domain.py b/plotly/graph_objs/indicator/_domain.py
index d67fef998c4..6bd109a1834 100644
--- a/plotly/graph_objs/indicator/_domain.py
+++ b/plotly/graph_objs/indicator/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator"
-    _path_str = "indicator.domain"
+    _parent_path_str = 'indicator'
+    _path_str = 'indicator.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -25,11 +29,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -45,59 +49,59 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this indicator trace (in plot
-            fraction).
-
-            The 'x' property is an info array that may be specified as:
+        Sets the horizontal domain of this indicator trace (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this indicator trace (in plot
-            fraction).
-
-            The 'y' property is an info array that may be specified as:
+        Sets the vertical domain of this indicator trace (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,8 +119,14 @@ def _prop_descriptions(self):
             Sets the vertical domain of this indicator trace (in
             plot fraction).
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -143,9 +153,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -155,19 +165,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.indicator.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/_gauge.py b/plotly/graph_objs/indicator/_gauge.py
index 8d770b7a4aa..d55b4bbf6bf 100644
--- a/plotly/graph_objs/indicator/_gauge.py
+++ b/plotly/graph_objs/indicator/_gauge.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Gauge(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator"
-    _path_str = "indicator.gauge"
-    _valid_props = {
-        "axis",
-        "bar",
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "shape",
-        "stepdefaults",
-        "steps",
-        "threshold",
-    }
+    _parent_path_str = 'indicator'
+    _path_str = 'indicator.gauge'
+    _valid_props = {"axis", "bar", "bgcolor", "bordercolor", "borderwidth", "shape", "stepdefaults", "steps", "threshold"}
 
     @property
     def axis(self):
@@ -34,11 +28,11 @@ def axis(self):
         -------
         plotly.graph_objs.indicator.gauge.Axis
         """
-        return self["axis"]
+        return self['axis']
 
     @axis.setter
     def axis(self, val):
-        self["axis"] = val
+        self['axis'] = val
 
     @property
     def bar(self):
@@ -55,11 +49,11 @@ def bar(self):
         -------
         plotly.graph_objs.indicator.gauge.Bar
         """
-        return self["bar"]
+        return self['bar']
 
     @bar.setter
     def bar(self, val):
-        self["bar"] = val
+        self['bar'] = val
 
     @property
     def bgcolor(self):
@@ -77,11 +71,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +93,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +111,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def shape(self):
@@ -136,11 +130,11 @@ def shape(self):
         -------
         Any
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def steps(self):
@@ -155,11 +149,11 @@ def steps(self):
         -------
         tuple[plotly.graph_objs.indicator.gauge.Step]
         """
-        return self["steps"]
+        return self['steps']
 
     @steps.setter
     def steps(self, val):
-        self["steps"] = val
+        self['steps'] = val
 
     @property
     def stepdefaults(self):
@@ -179,11 +173,11 @@ def stepdefaults(self):
         -------
         plotly.graph_objs.indicator.gauge.Step
         """
-        return self["stepdefaults"]
+        return self['stepdefaults']
 
     @stepdefaults.setter
     def stepdefaults(self, val):
-        self["stepdefaults"] = val
+        self['stepdefaults'] = val
 
     @property
     def threshold(self):
@@ -198,11 +192,11 @@ def threshold(self):
         -------
         plotly.graph_objs.indicator.gauge.Threshold
         """
-        return self["threshold"]
+        return self['threshold']
 
     @threshold.setter
     def threshold(self, val):
-        self["threshold"] = val
+        self['threshold'] = val
 
     @property
     def _prop_descriptions(self):
@@ -234,21 +228,19 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.indicator.gauge.Threshold`
             instance or dict with compatible properties
         """
-
-    def __init__(
-        self,
-        arg=None,
-        axis=None,
-        bar=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        shape=None,
-        steps=None,
-        stepdefaults=None,
-        threshold=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            axis=None,
+            bar=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            shape=None,
+            steps=None,
+            stepdefaults=None,
+            threshold=None,
+            **kwargs
+        ):
         """
         Construct a new Gauge object
 
@@ -291,9 +283,9 @@ def __init__(
         -------
         Gauge
         """
-        super().__init__("gauge")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('gauge')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -303,24 +295,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.Gauge
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.Gauge`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("axis", arg, axis)
-        self._set_property("bar", arg, bar)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("shape", arg, shape)
-        self._set_property("steps", arg, steps)
-        self._set_property("stepdefaults", arg, stepdefaults)
-        self._set_property("threshold", arg, threshold)
+an instance of :class:`plotly.graph_objs.indicator.Gauge`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('axis', arg, axis)
+        self._set_property('bar', arg, bar)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('shape', arg, shape)
+        self._set_property('steps', arg, steps)
+        self._set_property('stepdefaults', arg, stepdefaults)
+        self._set_property('threshold', arg, threshold)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/_legendgrouptitle.py b/plotly/graph_objs/indicator/_legendgrouptitle.py
index a6462f57867..25eda359139 100644
--- a/plotly/graph_objs/indicator/_legendgrouptitle.py
+++ b/plotly/graph_objs/indicator/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator"
-    _path_str = "indicator.legendgrouptitle"
+    _parent_path_str = 'indicator'
+    _path_str = 'indicator.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.indicator.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.indicator.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/_number.py b/plotly/graph_objs/indicator/_number.py
index 74bc79d5bf4..460a7d0e116 100644
--- a/plotly/graph_objs/indicator/_number.py
+++ b/plotly/graph_objs/indicator/_number.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Number(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator"
-    _path_str = "indicator.number"
+    _parent_path_str = 'indicator'
+    _path_str = 'indicator.number'
     _valid_props = {"font", "prefix", "suffix", "valueformat"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.indicator.number.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def prefix(self):
@@ -45,11 +49,11 @@ def prefix(self):
         -------
         str
         """
-        return self["prefix"]
+        return self['prefix']
 
     @prefix.setter
     def prefix(self, val):
-        self["prefix"] = val
+        self['prefix'] = val
 
     @property
     def suffix(self):
@@ -64,11 +68,11 @@ def suffix(self):
         -------
         str
         """
-        return self["suffix"]
+        return self['suffix']
 
     @suffix.setter
     def suffix(self, val):
-        self["suffix"] = val
+        self['suffix'] = val
 
     @property
     def valueformat(self):
@@ -86,11 +90,11 @@ def valueformat(self):
         -------
         str
         """
-        return self["valueformat"]
+        return self['valueformat']
 
     @valueformat.setter
     def valueformat(self, val):
-        self["valueformat"] = val
+        self['valueformat'] = val
 
     @property
     def _prop_descriptions(self):
@@ -107,10 +111,14 @@ def _prop_descriptions(self):
             Python. For numbers, see:
             https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
         """
-
-    def __init__(
-        self, arg=None, font=None, prefix=None, suffix=None, valueformat=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            font=None,
+            prefix=None,
+            suffix=None,
+            valueformat=None,
+            **kwargs
+        ):
         """
         Construct a new Number object
 
@@ -136,9 +144,9 @@ def __init__(
         -------
         Number
         """
-        super().__init__("number")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('number')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -148,19 +156,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.Number
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.Number`"""
-            )
+an instance of :class:`plotly.graph_objs.indicator.Number`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("prefix", arg, prefix)
-        self._set_property("suffix", arg, suffix)
-        self._set_property("valueformat", arg, valueformat)
+        self._set_property('font', arg, font)
+        self._set_property('prefix', arg, prefix)
+        self._set_property('suffix', arg, suffix)
+        self._set_property('valueformat', arg, valueformat)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/_stream.py b/plotly/graph_objs/indicator/_stream.py
index 2d909c626fc..e16c7dcb509 100644
--- a/plotly/graph_objs/indicator/_stream.py
+++ b/plotly/graph_objs/indicator/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator"
-    _path_str = "indicator.stream"
+    _parent_path_str = 'indicator'
+    _path_str = 'indicator.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.indicator.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/_title.py b/plotly/graph_objs/indicator/_title.py
index 2f37f2fb93b..6c88d5f6ebf 100644
--- a/plotly/graph_objs/indicator/_title.py
+++ b/plotly/graph_objs/indicator/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator"
-    _path_str = "indicator.title"
+    _parent_path_str = 'indicator'
+    _path_str = 'indicator.title'
     _valid_props = {"align", "font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def align(self):
         -------
         Any
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def font(self):
@@ -47,11 +51,11 @@ def font(self):
         -------
         plotly.graph_objs.indicator.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -84,8 +88,13 @@ def _prop_descriptions(self):
         text
             Sets the title of this indicator.
         """
-
-    def __init__(self, arg=None, align=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            align=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -108,9 +117,9 @@ def __init__(self, arg=None, align=None, font=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -120,18 +129,18 @@ def __init__(self, arg=None, align=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.indicator.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("align", arg, align)
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('align', arg, align)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/delta/__init__.py b/plotly/graph_objs/indicator/delta/__init__.py
index 428713734dc..c59233a7788 100644
--- a/plotly/graph_objs/indicator/delta/__init__.py
+++ b/plotly/graph_objs/indicator/delta/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._decreasing import Decreasing
+    from ._font import Font
+    from ._increasing import Increasing
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._decreasing.Decreasing', '._font.Font', '._increasing.Increasing']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._decreasing.Decreasing", "._font.Font", "._increasing.Increasing"]
-)
diff --git a/plotly/graph_objs/indicator/delta/_decreasing.py b/plotly/graph_objs/indicator/delta/_decreasing.py
index 3bc604b849f..9dd6d5717eb 100644
--- a/plotly/graph_objs/indicator/delta/_decreasing.py
+++ b/plotly/graph_objs/indicator/delta/_decreasing.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Decreasing(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator.delta"
-    _path_str = "indicator.delta.decreasing"
+    _parent_path_str = 'indicator.delta'
+    _path_str = 'indicator.delta.decreasing'
     _valid_props = {"color", "symbol"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def symbol(self):
@@ -46,11 +50,11 @@ def symbol(self):
         -------
         str
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def _prop_descriptions(self):
@@ -60,8 +64,12 @@ def _prop_descriptions(self):
         symbol
             Sets the symbol to display for increasing value
         """
-
-    def __init__(self, arg=None, color=None, symbol=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            symbol=None,
+            **kwargs
+        ):
         """
         Construct a new Decreasing object
 
@@ -80,9 +88,9 @@ def __init__(self, arg=None, color=None, symbol=None, **kwargs):
         -------
         Decreasing
         """
-        super().__init__("decreasing")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('decreasing')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -92,17 +100,17 @@ def __init__(self, arg=None, color=None, symbol=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.delta.Decreasing
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.delta.Decreasing`"""
-            )
+an instance of :class:`plotly.graph_objs.indicator.delta.Decreasing`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("symbol", arg, symbol)
+        self._set_property('color', arg, color)
+        self._set_property('symbol', arg, symbol)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/delta/_font.py b/plotly/graph_objs/indicator/delta/_font.py
index 325d61e25a7..e9bb478f2b0 100644
--- a/plotly/graph_objs/indicator/delta/_font.py
+++ b/plotly/graph_objs/indicator/delta/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator.delta"
-    _path_str = "indicator.delta.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'indicator.delta'
+    _path_str = 'indicator.delta.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.delta.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.delta.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.indicator.delta.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/delta/_increasing.py b/plotly/graph_objs/indicator/delta/_increasing.py
index c22854c92a9..a4c21d84264 100644
--- a/plotly/graph_objs/indicator/delta/_increasing.py
+++ b/plotly/graph_objs/indicator/delta/_increasing.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Increasing(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator.delta"
-    _path_str = "indicator.delta.increasing"
+    _parent_path_str = 'indicator.delta'
+    _path_str = 'indicator.delta.increasing'
     _valid_props = {"color", "symbol"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def symbol(self):
@@ -46,11 +50,11 @@ def symbol(self):
         -------
         str
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def _prop_descriptions(self):
@@ -60,8 +64,12 @@ def _prop_descriptions(self):
         symbol
             Sets the symbol to display for increasing value
         """
-
-    def __init__(self, arg=None, color=None, symbol=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            symbol=None,
+            **kwargs
+        ):
         """
         Construct a new Increasing object
 
@@ -80,9 +88,9 @@ def __init__(self, arg=None, color=None, symbol=None, **kwargs):
         -------
         Increasing
         """
-        super().__init__("increasing")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('increasing')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -92,17 +100,17 @@ def __init__(self, arg=None, color=None, symbol=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.delta.Increasing
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.delta.Increasing`"""
-            )
+an instance of :class:`plotly.graph_objs.indicator.delta.Increasing`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("symbol", arg, symbol)
+        self._set_property('color', arg, color)
+        self._set_property('symbol', arg, symbol)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/gauge/__init__.py b/plotly/graph_objs/indicator/gauge/__init__.py
index 45f438083fa..7335374aea1 100644
--- a/plotly/graph_objs/indicator/gauge/__init__.py
+++ b/plotly/graph_objs/indicator/gauge/__init__.py
@@ -1,8 +1,20 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._axis import Axis
+    from ._bar import Bar
+    from ._step import Step
+    from ._threshold import Threshold
+    from . import axis
+    from . import bar
+    from . import step
+    from . import threshold
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.axis', '.bar', '.step', '.threshold'],
+        ['._axis.Axis', '._bar.Bar', '._step.Step', '._threshold.Threshold']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".axis", ".bar", ".step", ".threshold"],
-    ["._axis.Axis", "._bar.Bar", "._step.Step", "._threshold.Threshold"],
-)
diff --git a/plotly/graph_objs/indicator/gauge/_axis.py b/plotly/graph_objs/indicator/gauge/_axis.py
index bede5387041..93bef323cb9 100644
--- a/plotly/graph_objs/indicator/gauge/_axis.py
+++ b/plotly/graph_objs/indicator/gauge/_axis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,40 +11,9 @@
 
 class Axis(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator.gauge"
-    _path_str = "indicator.gauge.axis"
-    _valid_props = {
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "minexponent",
-        "nticks",
-        "range",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "visible",
-    }
+    _parent_path_str = 'indicator.gauge'
+    _path_str = 'indicator.gauge.axis'
+    _valid_props = {"dtick", "exponentformat", "labelalias", "minexponent", "nticks", "range", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "visible"}
 
     @property
     def dtick(self):
@@ -72,11 +45,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -95,11 +68,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -120,11 +93,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def minexponent(self):
@@ -139,11 +112,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -161,34 +134,34 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def range(self):
         """
-            Sets the range of this axis.
+        Sets the range of this axis.
 
-            The 'range' property is an info array that may be specified as:
+        The 'range' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'range[0]' property is a number and may be specified as:
+          - An int or float
+    (1) The 'range[1]' property is a number and may be specified as:
+          - An int or float
 
-            * a list or tuple of 2 elements where:
-        (0) The 'range[0]' property is a number and may be specified as:
-              - An int or float
-        (1) The 'range[1]' property is a number and may be specified as:
-              - An int or float
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["range"]
+        return self['range']
 
     @range.setter
     def range(self, val):
-        self["range"] = val
+        self['range'] = val
 
     @property
     def separatethousands(self):
@@ -202,11 +175,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -224,11 +197,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -242,11 +215,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -264,11 +237,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -283,11 +256,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def tick0(self):
@@ -308,11 +281,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -330,11 +303,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -352,11 +325,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -373,11 +346,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.indicator.gauge.axis.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -401,11 +374,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -420,11 +393,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.indicator.gauge.axis.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -444,11 +417,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.indicator.gauge.axis.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabelstep(self):
@@ -468,11 +441,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -486,11 +459,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -511,11 +484,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -530,11 +503,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -551,11 +524,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -570,11 +543,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -590,11 +563,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -608,11 +581,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -627,11 +600,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -645,11 +618,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -663,11 +636,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def visible(self):
@@ -683,11 +656,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -849,42 +822,40 @@ def _prop_descriptions(self):
             interaction like dragging. Default is true when a
             cheater plot is present on the axis, otherwise false
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        minexponent=None,
-        nticks=None,
-        range=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            minexponent=None,
+            nticks=None,
+            range=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Axis object
 
@@ -1055,9 +1026,9 @@ def __init__(
         -------
         Axis
         """
-        super().__init__("axis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('axis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1067,45 +1038,45 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.gauge.Axis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.gauge.Axis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("range", arg, range)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("visible", arg, visible)
+an instance of :class:`plotly.graph_objs.indicator.gauge.Axis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('range', arg, range)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/gauge/_bar.py b/plotly/graph_objs/indicator/gauge/_bar.py
index 547745c3339..4ed91fd5485 100644
--- a/plotly/graph_objs/indicator/gauge/_bar.py
+++ b/plotly/graph_objs/indicator/gauge/_bar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Bar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator.gauge"
-    _path_str = "indicator.gauge.bar"
+    _parent_path_str = 'indicator.gauge'
+    _path_str = 'indicator.gauge.bar'
     _valid_props = {"color", "line", "thickness"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def line(self):
@@ -46,11 +50,11 @@ def line(self):
         -------
         plotly.graph_objs.indicator.gauge.bar.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def thickness(self):
@@ -65,11 +69,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def _prop_descriptions(self):
@@ -83,8 +87,13 @@ def _prop_descriptions(self):
             Sets the thickness of the bar as a fraction of the
             total thickness of the gauge.
         """
-
-    def __init__(self, arg=None, color=None, line=None, thickness=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            line=None,
+            thickness=None,
+            **kwargs
+        ):
         """
         Construct a new Bar object
 
@@ -109,9 +118,9 @@ def __init__(self, arg=None, color=None, line=None, thickness=None, **kwargs):
         -------
         Bar
         """
-        super().__init__("bar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('bar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -121,18 +130,18 @@ def __init__(self, arg=None, color=None, line=None, thickness=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.gauge.Bar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.gauge.Bar`"""
-            )
+an instance of :class:`plotly.graph_objs.indicator.gauge.Bar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("line", arg, line)
-        self._set_property("thickness", arg, thickness)
+        self._set_property('color', arg, color)
+        self._set_property('line', arg, line)
+        self._set_property('thickness', arg, thickness)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/gauge/_step.py b/plotly/graph_objs/indicator/gauge/_step.py
index 66d0ba1e600..aae6a88fa25 100644
--- a/plotly/graph_objs/indicator/gauge/_step.py
+++ b/plotly/graph_objs/indicator/gauge/_step.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Step(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator.gauge"
-    _path_str = "indicator.gauge.step"
+    _parent_path_str = 'indicator.gauge'
+    _path_str = 'indicator.gauge.step'
     _valid_props = {"color", "line", "name", "range", "templateitemname", "thickness"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def line(self):
@@ -46,11 +50,11 @@ def line(self):
         -------
         plotly.graph_objs.indicator.gauge.step.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def name(self):
@@ -71,34 +75,34 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def range(self):
         """
-            Sets the range of this axis.
-
-            The 'range' property is an info array that may be specified as:
+        Sets the range of this axis.
 
-            * a list or tuple of 2 elements where:
-        (0) The 'range[0]' property is a number and may be specified as:
-              - An int or float
-        (1) The 'range[1]' property is a number and may be specified as:
-              - An int or float
+        The 'range' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'range[0]' property is a number and may be specified as:
+          - An int or float
+    (1) The 'range[1]' property is a number and may be specified as:
+          - An int or float
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["range"]
+        return self['range']
 
     @range.setter
     def range(self, val):
-        self["range"] = val
+        self['range'] = val
 
     @property
     def templateitemname(self):
@@ -120,11 +124,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def thickness(self):
@@ -139,11 +143,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def _prop_descriptions(self):
@@ -178,18 +182,16 @@ def _prop_descriptions(self):
             Sets the thickness of the bar as a fraction of the
             total thickness of the gauge.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        line=None,
-        name=None,
-        range=None,
-        templateitemname=None,
-        thickness=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            line=None,
+            name=None,
+            range=None,
+            templateitemname=None,
+            thickness=None,
+            **kwargs
+        ):
         """
         Construct a new Step object
 
@@ -233,9 +235,9 @@ def __init__(
         -------
         Step
         """
-        super().__init__("steps")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('steps')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -245,21 +247,21 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.gauge.Step
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.gauge.Step`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("line", arg, line)
-        self._set_property("name", arg, name)
-        self._set_property("range", arg, range)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("thickness", arg, thickness)
+an instance of :class:`plotly.graph_objs.indicator.gauge.Step`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('line', arg, line)
+        self._set_property('name', arg, name)
+        self._set_property('range', arg, range)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('thickness', arg, thickness)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/gauge/_threshold.py b/plotly/graph_objs/indicator/gauge/_threshold.py
index 2cdfb844b0a..d8d0032946e 100644
--- a/plotly/graph_objs/indicator/gauge/_threshold.py
+++ b/plotly/graph_objs/indicator/gauge/_threshold.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Threshold(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator.gauge"
-    _path_str = "indicator.gauge.threshold"
+    _parent_path_str = 'indicator.gauge'
+    _path_str = 'indicator.gauge.threshold'
     _valid_props = {"line", "thickness", "value"}
 
     @property
@@ -24,11 +28,11 @@ def line(self):
         -------
         plotly.graph_objs.indicator.gauge.threshold.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def thickness(self):
@@ -43,11 +47,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def value(self):
@@ -61,11 +65,11 @@ def value(self):
         -------
         int|float
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         value
             Sets a treshold value drawn as a line.
         """
-
-    def __init__(self, arg=None, line=None, thickness=None, value=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            line=None,
+            thickness=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Threshold object
 
@@ -103,9 +112,9 @@ def __init__(self, arg=None, line=None, thickness=None, value=None, **kwargs):
         -------
         Threshold
         """
-        super().__init__("threshold")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('threshold')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -115,18 +124,18 @@ def __init__(self, arg=None, line=None, thickness=None, value=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.gauge.Threshold
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.gauge.Threshold`"""
-            )
+an instance of :class:`plotly.graph_objs.indicator.gauge.Threshold`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("line", arg, line)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("value", arg, value)
+        self._set_property('line', arg, line)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/gauge/axis/__init__.py b/plotly/graph_objs/indicator/gauge/axis/__init__.py
index a1ed04a04e5..e1969f3ff2e 100644
--- a/plotly/graph_objs/indicator/gauge/axis/__init__.py
+++ b/plotly/graph_objs/indicator/gauge/axis/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop"]
-)
diff --git a/plotly/graph_objs/indicator/gauge/axis/_tickfont.py b/plotly/graph_objs/indicator/gauge/axis/_tickfont.py
index bad45804eaf..0850b536f4a 100644
--- a/plotly/graph_objs/indicator/gauge/axis/_tickfont.py
+++ b/plotly/graph_objs/indicator/gauge/axis/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator.gauge.axis"
-    _path_str = "indicator.gauge.axis.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'indicator.gauge.axis'
+    _path_str = 'indicator.gauge.axis.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.gauge.axis.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.gauge.axis.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.indicator.gauge.axis.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/gauge/axis/_tickformatstop.py b/plotly/graph_objs/indicator/gauge/axis/_tickformatstop.py
index bc63df86ff7..3af39cf84b6 100644
--- a/plotly/graph_objs/indicator/gauge/axis/_tickformatstop.py
+++ b/plotly/graph_objs/indicator/gauge/axis/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator.gauge.axis"
-    _path_str = "indicator.gauge.axis.tickformatstop"
+    _parent_path_str = 'indicator.gauge.axis'
+    _path_str = 'indicator.gauge.axis.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.gauge.axis.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.gauge.axis.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.indicator.gauge.axis.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/gauge/bar/__init__.py b/plotly/graph_objs/indicator/gauge/bar/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/indicator/gauge/bar/__init__.py
+++ b/plotly/graph_objs/indicator/gauge/bar/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/indicator/gauge/bar/_line.py b/plotly/graph_objs/indicator/gauge/bar/_line.py
index 05f5be4aab2..3ecb7b46433 100644
--- a/plotly/graph_objs/indicator/gauge/bar/_line.py
+++ b/plotly/graph_objs/indicator/gauge/bar/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator.gauge.bar"
-    _path_str = "indicator.gauge.bar.line"
+    _parent_path_str = 'indicator.gauge.bar'
+    _path_str = 'indicator.gauge.bar.line'
     _valid_props = {"color", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def width(self):
@@ -45,11 +49,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -60,8 +64,12 @@ def _prop_descriptions(self):
             Sets the width (in px) of the line enclosing each
             sector.
         """
-
-    def __init__(self, arg=None, color=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.gauge.bar.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.gauge.bar.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.indicator.gauge.bar.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/gauge/step/__init__.py b/plotly/graph_objs/indicator/gauge/step/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/indicator/gauge/step/__init__.py
+++ b/plotly/graph_objs/indicator/gauge/step/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/indicator/gauge/step/_line.py b/plotly/graph_objs/indicator/gauge/step/_line.py
index 484fdafc144..c22edf28a0e 100644
--- a/plotly/graph_objs/indicator/gauge/step/_line.py
+++ b/plotly/graph_objs/indicator/gauge/step/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator.gauge.step"
-    _path_str = "indicator.gauge.step.line"
+    _parent_path_str = 'indicator.gauge.step'
+    _path_str = 'indicator.gauge.step.line'
     _valid_props = {"color", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def width(self):
@@ -45,11 +49,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -60,8 +64,12 @@ def _prop_descriptions(self):
             Sets the width (in px) of the line enclosing each
             sector.
         """
-
-    def __init__(self, arg=None, color=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.gauge.step.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.gauge.step.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.indicator.gauge.step.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/gauge/threshold/__init__.py b/plotly/graph_objs/indicator/gauge/threshold/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/indicator/gauge/threshold/__init__.py
+++ b/plotly/graph_objs/indicator/gauge/threshold/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/indicator/gauge/threshold/_line.py b/plotly/graph_objs/indicator/gauge/threshold/_line.py
index 24a4dc43a8f..37a7bcce8cf 100644
--- a/plotly/graph_objs/indicator/gauge/threshold/_line.py
+++ b/plotly/graph_objs/indicator/gauge/threshold/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator.gauge.threshold"
-    _path_str = "indicator.gauge.threshold.line"
+    _parent_path_str = 'indicator.gauge.threshold'
+    _path_str = 'indicator.gauge.threshold.line'
     _valid_props = {"color", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def width(self):
@@ -45,11 +49,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         width
             Sets the width (in px) of the threshold line.
         """
-
-    def __init__(self, arg=None, color=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.gauge.threshold.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.gauge.threshold.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.indicator.gauge.threshold.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/legendgrouptitle/__init__.py b/plotly/graph_objs/indicator/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/indicator/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/indicator/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/indicator/legendgrouptitle/_font.py b/plotly/graph_objs/indicator/legendgrouptitle/_font.py
index 09d9b8629d1..c6932f15808 100644
--- a/plotly/graph_objs/indicator/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/indicator/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator.legendgrouptitle"
-    _path_str = "indicator.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'indicator.legendgrouptitle'
+    _path_str = 'indicator.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.indicator.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/number/__init__.py b/plotly/graph_objs/indicator/number/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/indicator/number/__init__.py
+++ b/plotly/graph_objs/indicator/number/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/indicator/number/_font.py b/plotly/graph_objs/indicator/number/_font.py
index 9b32417c8ab..cd815bb1841 100644
--- a/plotly/graph_objs/indicator/number/_font.py
+++ b/plotly/graph_objs/indicator/number/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator.number"
-    _path_str = "indicator.number.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'indicator.number'
+    _path_str = 'indicator.number.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.number.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.number.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.indicator.number.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/indicator/title/__init__.py b/plotly/graph_objs/indicator/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/indicator/title/__init__.py
+++ b/plotly/graph_objs/indicator/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/indicator/title/_font.py b/plotly/graph_objs/indicator/title/_font.py
index d1fea6e0c7a..f4e6369950d 100644
--- a/plotly/graph_objs/indicator/title/_font.py
+++ b/plotly/graph_objs/indicator/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "indicator.title"
-    _path_str = "indicator.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'indicator.title'
+    _path_str = 'indicator.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.indicator.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.indicator.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.indicator.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/__init__.py b/plotly/graph_objs/isosurface/__init__.py
index 0b8a4b7653f..3a08d868822 100644
--- a/plotly/graph_objs/isosurface/__init__.py
+++ b/plotly/graph_objs/isosurface/__init__.py
@@ -1,20 +1,28 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._caps import Caps
+    from ._colorbar import ColorBar
+    from ._contour import Contour
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._lighting import Lighting
+    from ._lightposition import Lightposition
+    from ._slices import Slices
+    from ._spaceframe import Spaceframe
+    from ._stream import Stream
+    from ._surface import Surface
+    from . import caps
+    from . import colorbar
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import slices
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.caps', '.colorbar', '.hoverlabel', '.legendgrouptitle', '.slices'],
+        ['._caps.Caps', '._colorbar.ColorBar', '._contour.Contour', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._lighting.Lighting', '._lightposition.Lightposition', '._slices.Slices', '._spaceframe.Spaceframe', '._stream.Stream', '._surface.Surface']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".caps", ".colorbar", ".hoverlabel", ".legendgrouptitle", ".slices"],
-    [
-        "._caps.Caps",
-        "._colorbar.ColorBar",
-        "._contour.Contour",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._lighting.Lighting",
-        "._lightposition.Lightposition",
-        "._slices.Slices",
-        "._spaceframe.Spaceframe",
-        "._stream.Stream",
-        "._surface.Surface",
-    ],
-)
diff --git a/plotly/graph_objs/isosurface/_caps.py b/plotly/graph_objs/isosurface/_caps.py
index abb1a708bd2..9a7d14e8662 100644
--- a/plotly/graph_objs/isosurface/_caps.py
+++ b/plotly/graph_objs/isosurface/_caps.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Caps(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface"
-    _path_str = "isosurface.caps"
+    _parent_path_str = 'isosurface'
+    _path_str = 'isosurface.caps'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -24,11 +28,11 @@ def x(self):
         -------
         plotly.graph_objs.isosurface.caps.X
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -43,11 +47,11 @@ def y(self):
         -------
         plotly.graph_objs.isosurface.caps.Y
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -62,11 +66,11 @@ def z(self):
         -------
         plotly.graph_objs.isosurface.caps.Z
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -81,8 +85,13 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.isosurface.caps.Z`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Caps object
 
@@ -106,9 +115,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Caps
         """
-        super().__init__("caps")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('caps')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -118,18 +127,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.Caps
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.Caps`"""
-            )
+an instance of :class:`plotly.graph_objs.isosurface.Caps`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/_colorbar.py b/plotly/graph_objs/isosurface/_colorbar.py
index 1b3aee23958..c14836f6af3 100644
--- a/plotly/graph_objs/isosurface/_colorbar.py
+++ b/plotly/graph_objs/isosurface/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface"
-    _path_str = "isosurface.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'isosurface'
+    _path_str = 'isosurface.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.isosurface.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.isosurface.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -641,11 +595,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.isosurface.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -663,11 +617,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -686,11 +640,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -710,11 +664,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -728,11 +682,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -753,11 +707,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -772,11 +726,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -793,11 +747,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -812,11 +766,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -832,11 +786,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -850,11 +804,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -869,11 +823,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -887,11 +841,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -905,11 +859,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -924,11 +878,11 @@ def title(self):
         -------
         plotly.graph_objs.isosurface.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -948,11 +902,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -970,11 +924,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -988,11 +942,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1009,11 +963,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1033,11 +987,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1055,11 +1009,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1073,11 +1027,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1094,11 +1048,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1342,61 +1296,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1649,9 +1601,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1661,64 +1613,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.isosurface.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/_contour.py b/plotly/graph_objs/isosurface/_contour.py
index bf48a825048..02fe4817111 100644
--- a/plotly/graph_objs/isosurface/_contour.py
+++ b/plotly/graph_objs/isosurface/_contour.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Contour(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface"
-    _path_str = "isosurface.contour"
+    _parent_path_str = 'isosurface'
+    _path_str = 'isosurface.contour'
     _valid_props = {"color", "show", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def show(self):
@@ -45,11 +49,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def width(self):
@@ -63,11 +67,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         width
             Sets the width of the contour lines.
         """
-
-    def __init__(self, arg=None, color=None, show=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            show=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Contour object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, color=None, show=None, width=None, **kwargs):
         -------
         Contour
         """
-        super().__init__("contour")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('contour')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, color=None, show=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.Contour
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.Contour`"""
-            )
+an instance of :class:`plotly.graph_objs.isosurface.Contour`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("show", arg, show)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('show', arg, show)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/_hoverlabel.py b/plotly/graph_objs/isosurface/_hoverlabel.py
index 0f6e12235ea..fe705972849 100644
--- a/plotly/graph_objs/isosurface/_hoverlabel.py
+++ b/plotly/graph_objs/isosurface/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface"
-    _path_str = "isosurface.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'isosurface'
+    _path_str = 'isosurface.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.isosurface.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.isosurface.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/_legendgrouptitle.py b/plotly/graph_objs/isosurface/_legendgrouptitle.py
index 66eae59574f..c165a2369b3 100644
--- a/plotly/graph_objs/isosurface/_legendgrouptitle.py
+++ b/plotly/graph_objs/isosurface/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface"
-    _path_str = "isosurface.legendgrouptitle"
+    _parent_path_str = 'isosurface'
+    _path_str = 'isosurface.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.isosurface.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.isosurface.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/_lighting.py b/plotly/graph_objs/isosurface/_lighting.py
index 1f4c6d03a09..82c143df6fb 100644
--- a/plotly/graph_objs/isosurface/_lighting.py
+++ b/plotly/graph_objs/isosurface/_lighting.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,17 +11,9 @@
 
 class Lighting(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface"
-    _path_str = "isosurface.lighting"
-    _valid_props = {
-        "ambient",
-        "diffuse",
-        "facenormalsepsilon",
-        "fresnel",
-        "roughness",
-        "specular",
-        "vertexnormalsepsilon",
-    }
+    _parent_path_str = 'isosurface'
+    _path_str = 'isosurface.lighting'
+    _valid_props = {"ambient", "diffuse", "facenormalsepsilon", "fresnel", "roughness", "specular", "vertexnormalsepsilon"}
 
     @property
     def ambient(self):
@@ -32,11 +28,11 @@ def ambient(self):
         -------
         int|float
         """
-        return self["ambient"]
+        return self['ambient']
 
     @ambient.setter
     def ambient(self, val):
-        self["ambient"] = val
+        self['ambient'] = val
 
     @property
     def diffuse(self):
@@ -51,11 +47,11 @@ def diffuse(self):
         -------
         int|float
         """
-        return self["diffuse"]
+        return self['diffuse']
 
     @diffuse.setter
     def diffuse(self, val):
-        self["diffuse"] = val
+        self['diffuse'] = val
 
     @property
     def facenormalsepsilon(self):
@@ -70,11 +66,11 @@ def facenormalsepsilon(self):
         -------
         int|float
         """
-        return self["facenormalsepsilon"]
+        return self['facenormalsepsilon']
 
     @facenormalsepsilon.setter
     def facenormalsepsilon(self, val):
-        self["facenormalsepsilon"] = val
+        self['facenormalsepsilon'] = val
 
     @property
     def fresnel(self):
@@ -90,11 +86,11 @@ def fresnel(self):
         -------
         int|float
         """
-        return self["fresnel"]
+        return self['fresnel']
 
     @fresnel.setter
     def fresnel(self, val):
-        self["fresnel"] = val
+        self['fresnel'] = val
 
     @property
     def roughness(self):
@@ -109,11 +105,11 @@ def roughness(self):
         -------
         int|float
         """
-        return self["roughness"]
+        return self['roughness']
 
     @roughness.setter
     def roughness(self, val):
-        self["roughness"] = val
+        self['roughness'] = val
 
     @property
     def specular(self):
@@ -128,11 +124,11 @@ def specular(self):
         -------
         int|float
         """
-        return self["specular"]
+        return self['specular']
 
     @specular.setter
     def specular(self, val):
-        self["specular"] = val
+        self['specular'] = val
 
     @property
     def vertexnormalsepsilon(self):
@@ -147,11 +143,11 @@ def vertexnormalsepsilon(self):
         -------
         int|float
         """
-        return self["vertexnormalsepsilon"]
+        return self['vertexnormalsepsilon']
 
     @vertexnormalsepsilon.setter
     def vertexnormalsepsilon(self, val):
-        self["vertexnormalsepsilon"] = val
+        self['vertexnormalsepsilon'] = val
 
     @property
     def _prop_descriptions(self):
@@ -180,19 +176,17 @@ def _prop_descriptions(self):
             Epsilon for vertex normals calculation avoids math
             issues arising from degenerate geometry.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        ambient=None,
-        diffuse=None,
-        facenormalsepsilon=None,
-        fresnel=None,
-        roughness=None,
-        specular=None,
-        vertexnormalsepsilon=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            ambient=None,
+            diffuse=None,
+            facenormalsepsilon=None,
+            fresnel=None,
+            roughness=None,
+            specular=None,
+            vertexnormalsepsilon=None,
+            **kwargs
+        ):
         """
         Construct a new Lighting object
 
@@ -230,9 +224,9 @@ def __init__(
         -------
         Lighting
         """
-        super().__init__("lighting")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('lighting')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -242,22 +236,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.Lighting
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.Lighting`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("ambient", arg, ambient)
-        self._set_property("diffuse", arg, diffuse)
-        self._set_property("facenormalsepsilon", arg, facenormalsepsilon)
-        self._set_property("fresnel", arg, fresnel)
-        self._set_property("roughness", arg, roughness)
-        self._set_property("specular", arg, specular)
-        self._set_property("vertexnormalsepsilon", arg, vertexnormalsepsilon)
+an instance of :class:`plotly.graph_objs.isosurface.Lighting`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('ambient', arg, ambient)
+        self._set_property('diffuse', arg, diffuse)
+        self._set_property('facenormalsepsilon', arg, facenormalsepsilon)
+        self._set_property('fresnel', arg, fresnel)
+        self._set_property('roughness', arg, roughness)
+        self._set_property('specular', arg, specular)
+        self._set_property('vertexnormalsepsilon', arg, vertexnormalsepsilon)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/_lightposition.py b/plotly/graph_objs/isosurface/_lightposition.py
index fe2e6b446df..c664b619936 100644
--- a/plotly/graph_objs/isosurface/_lightposition.py
+++ b/plotly/graph_objs/isosurface/_lightposition.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Lightposition(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface"
-    _path_str = "isosurface.lightposition"
+    _parent_path_str = 'isosurface'
+    _path_str = 'isosurface.lightposition'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -23,11 +27,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -41,11 +45,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -59,11 +63,11 @@ def z(self):
         -------
         int|float
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -78,8 +82,13 @@ def _prop_descriptions(self):
             Numeric vector, representing the Z coordinate for each
             vertex.
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Lightposition object
 
@@ -103,9 +112,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Lightposition
         """
-        super().__init__("lightposition")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('lightposition')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -115,18 +124,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.Lightposition
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.Lightposition`"""
-            )
+an instance of :class:`plotly.graph_objs.isosurface.Lightposition`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/_slices.py b/plotly/graph_objs/isosurface/_slices.py
index 69aa92fa954..09d6a6831c0 100644
--- a/plotly/graph_objs/isosurface/_slices.py
+++ b/plotly/graph_objs/isosurface/_slices.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Slices(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface"
-    _path_str = "isosurface.slices"
+    _parent_path_str = 'isosurface'
+    _path_str = 'isosurface.slices'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -24,11 +28,11 @@ def x(self):
         -------
         plotly.graph_objs.isosurface.slices.X
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -43,11 +47,11 @@ def y(self):
         -------
         plotly.graph_objs.isosurface.slices.Y
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -62,11 +66,11 @@ def z(self):
         -------
         plotly.graph_objs.isosurface.slices.Z
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -81,8 +85,13 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.isosurface.slices.Z`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Slices object
 
@@ -106,9 +115,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Slices
         """
-        super().__init__("slices")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('slices')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -118,18 +127,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.Slices
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.Slices`"""
-            )
+an instance of :class:`plotly.graph_objs.isosurface.Slices`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/_spaceframe.py b/plotly/graph_objs/isosurface/_spaceframe.py
index 53493eca761..2243c7af1cd 100644
--- a/plotly/graph_objs/isosurface/_spaceframe.py
+++ b/plotly/graph_objs/isosurface/_spaceframe.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Spaceframe(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface"
-    _path_str = "isosurface.spaceframe"
+    _parent_path_str = 'isosurface'
+    _path_str = 'isosurface.spaceframe'
     _valid_props = {"fill", "show"}
 
     @property
@@ -27,11 +31,11 @@ def fill(self):
         -------
         int|float
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def show(self):
@@ -47,11 +51,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -69,8 +73,12 @@ def _prop_descriptions(self):
             surfaces are disabled or filled with values less than
             1.
         """
-
-    def __init__(self, arg=None, fill=None, show=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            fill=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new Spaceframe object
 
@@ -97,9 +105,9 @@ def __init__(self, arg=None, fill=None, show=None, **kwargs):
         -------
         Spaceframe
         """
-        super().__init__("spaceframe")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('spaceframe')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -109,17 +117,17 @@ def __init__(self, arg=None, fill=None, show=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.Spaceframe
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.Spaceframe`"""
-            )
+an instance of :class:`plotly.graph_objs.isosurface.Spaceframe`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fill", arg, fill)
-        self._set_property("show", arg, show)
+        self._set_property('fill', arg, fill)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/_stream.py b/plotly/graph_objs/isosurface/_stream.py
index 2a3083f2477..d65f8ec96bd 100644
--- a/plotly/graph_objs/isosurface/_stream.py
+++ b/plotly/graph_objs/isosurface/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface"
-    _path_str = "isosurface.stream"
+    _parent_path_str = 'isosurface'
+    _path_str = 'isosurface.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.isosurface.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/_surface.py b/plotly/graph_objs/isosurface/_surface.py
index d9bbdf184dd..50f3fcf2e16 100644
--- a/plotly/graph_objs/isosurface/_surface.py
+++ b/plotly/graph_objs/isosurface/_surface.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Surface(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface"
-    _path_str = "isosurface.surface"
+    _parent_path_str = 'isosurface'
+    _path_str = 'isosurface.surface'
     _valid_props = {"count", "fill", "pattern", "show"}
 
     @property
@@ -26,11 +30,11 @@ def count(self):
         -------
         int
         """
-        return self["count"]
+        return self['count']
 
     @count.setter
     def count(self, val):
-        self["count"] = val
+        self['count'] = val
 
     @property
     def fill(self):
@@ -47,11 +51,11 @@ def fill(self):
         -------
         int|float
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def pattern(self):
@@ -74,11 +78,11 @@ def pattern(self):
         -------
         Any
         """
-        return self["pattern"]
+        return self['pattern']
 
     @pattern.setter
     def pattern(self, val):
-        self["pattern"] = val
+        self['pattern'] = val
 
     @property
     def show(self):
@@ -92,11 +96,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -125,10 +129,14 @@ def _prop_descriptions(self):
             Hides/displays surfaces between minimum and maximum
             iso-values.
         """
-
-    def __init__(
-        self, arg=None, count=None, fill=None, pattern=None, show=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            count=None,
+            fill=None,
+            pattern=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new Surface object
 
@@ -166,9 +174,9 @@ def __init__(
         -------
         Surface
         """
-        super().__init__("surface")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('surface')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -178,19 +186,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.Surface
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.Surface`"""
-            )
+an instance of :class:`plotly.graph_objs.isosurface.Surface`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("count", arg, count)
-        self._set_property("fill", arg, fill)
-        self._set_property("pattern", arg, pattern)
-        self._set_property("show", arg, show)
+        self._set_property('count', arg, count)
+        self._set_property('fill', arg, fill)
+        self._set_property('pattern', arg, pattern)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/caps/__init__.py b/plotly/graph_objs/isosurface/caps/__init__.py
index 649c038369f..bc24ca0a556 100644
--- a/plotly/graph_objs/isosurface/caps/__init__.py
+++ b/plotly/graph_objs/isosurface/caps/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._x import X
+    from ._y import Y
+    from ._z import Z
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._x.X', '._y.Y', '._z.Z']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._x.X", "._y.Y", "._z.Z"]
-)
diff --git a/plotly/graph_objs/isosurface/caps/_x.py b/plotly/graph_objs/isosurface/caps/_x.py
index e48e5be9ee1..496366839d6 100644
--- a/plotly/graph_objs/isosurface/caps/_x.py
+++ b/plotly/graph_objs/isosurface/caps/_x.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class X(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface.caps"
-    _path_str = "isosurface.caps.x"
+    _parent_path_str = 'isosurface.caps'
+    _path_str = 'isosurface.caps.x'
     _valid_props = {"fill", "show"}
 
     @property
@@ -26,11 +30,11 @@ def fill(self):
         -------
         int|float
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def show(self):
@@ -47,11 +51,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -69,8 +73,12 @@ def _prop_descriptions(self):
             ratio less than one would allow the creation of
             openings parallel to the edges.
         """
-
-    def __init__(self, arg=None, fill=None, show=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            fill=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new X object
 
@@ -97,9 +105,9 @@ def __init__(self, arg=None, fill=None, show=None, **kwargs):
         -------
         X
         """
-        super().__init__("x")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('x')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -109,17 +117,17 @@ def __init__(self, arg=None, fill=None, show=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.caps.X
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.caps.X`"""
-            )
+an instance of :class:`plotly.graph_objs.isosurface.caps.X`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fill", arg, fill)
-        self._set_property("show", arg, show)
+        self._set_property('fill', arg, fill)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/caps/_y.py b/plotly/graph_objs/isosurface/caps/_y.py
index d6283acedcd..26436dfd8fc 100644
--- a/plotly/graph_objs/isosurface/caps/_y.py
+++ b/plotly/graph_objs/isosurface/caps/_y.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Y(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface.caps"
-    _path_str = "isosurface.caps.y"
+    _parent_path_str = 'isosurface.caps'
+    _path_str = 'isosurface.caps.y'
     _valid_props = {"fill", "show"}
 
     @property
@@ -26,11 +30,11 @@ def fill(self):
         -------
         int|float
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def show(self):
@@ -47,11 +51,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -69,8 +73,12 @@ def _prop_descriptions(self):
             ratio less than one would allow the creation of
             openings parallel to the edges.
         """
-
-    def __init__(self, arg=None, fill=None, show=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            fill=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new Y object
 
@@ -97,9 +105,9 @@ def __init__(self, arg=None, fill=None, show=None, **kwargs):
         -------
         Y
         """
-        super().__init__("y")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('y')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -109,17 +117,17 @@ def __init__(self, arg=None, fill=None, show=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.caps.Y
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.caps.Y`"""
-            )
+an instance of :class:`plotly.graph_objs.isosurface.caps.Y`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fill", arg, fill)
-        self._set_property("show", arg, show)
+        self._set_property('fill', arg, fill)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/caps/_z.py b/plotly/graph_objs/isosurface/caps/_z.py
index d5facb0d246..55993eb5eaf 100644
--- a/plotly/graph_objs/isosurface/caps/_z.py
+++ b/plotly/graph_objs/isosurface/caps/_z.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Z(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface.caps"
-    _path_str = "isosurface.caps.z"
+    _parent_path_str = 'isosurface.caps'
+    _path_str = 'isosurface.caps.z'
     _valid_props = {"fill", "show"}
 
     @property
@@ -26,11 +30,11 @@ def fill(self):
         -------
         int|float
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def show(self):
@@ -47,11 +51,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -69,8 +73,12 @@ def _prop_descriptions(self):
             ratio less than one would allow the creation of
             openings parallel to the edges.
         """
-
-    def __init__(self, arg=None, fill=None, show=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            fill=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new Z object
 
@@ -97,9 +105,9 @@ def __init__(self, arg=None, fill=None, show=None, **kwargs):
         -------
         Z
         """
-        super().__init__("z")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('z')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -109,17 +117,17 @@ def __init__(self, arg=None, fill=None, show=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.caps.Z
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.caps.Z`"""
-            )
+an instance of :class:`plotly.graph_objs.isosurface.caps.Z`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fill", arg, fill)
-        self._set_property("show", arg, show)
+        self._set_property('fill', arg, fill)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/colorbar/__init__.py b/plotly/graph_objs/isosurface/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/isosurface/colorbar/__init__.py
+++ b/plotly/graph_objs/isosurface/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/isosurface/colorbar/_tickfont.py b/plotly/graph_objs/isosurface/colorbar/_tickfont.py
index ae008e2787f..51d62d08216 100644
--- a/plotly/graph_objs/isosurface/colorbar/_tickfont.py
+++ b/plotly/graph_objs/isosurface/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface.colorbar"
-    _path_str = "isosurface.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'isosurface.colorbar'
+    _path_str = 'isosurface.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.isosurface.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/colorbar/_tickformatstop.py b/plotly/graph_objs/isosurface/colorbar/_tickformatstop.py
index c4efd13f0c3..aac343b9339 100644
--- a/plotly/graph_objs/isosurface/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/isosurface/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface.colorbar"
-    _path_str = "isosurface.colorbar.tickformatstop"
+    _parent_path_str = 'isosurface.colorbar'
+    _path_str = 'isosurface.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.isosurface.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/colorbar/_title.py b/plotly/graph_objs/isosurface/colorbar/_title.py
index 31b63f73616..6b46fa013c3 100644
--- a/plotly/graph_objs/isosurface/colorbar/_title.py
+++ b/plotly/graph_objs/isosurface/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface.colorbar"
-    _path_str = "isosurface.colorbar.title"
+    _parent_path_str = 'isosurface.colorbar'
+    _path_str = 'isosurface.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.isosurface.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.isosurface.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/colorbar/title/__init__.py b/plotly/graph_objs/isosurface/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/isosurface/colorbar/title/__init__.py
+++ b/plotly/graph_objs/isosurface/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/isosurface/colorbar/title/_font.py b/plotly/graph_objs/isosurface/colorbar/title/_font.py
index f261151e7ac..bd97febd7d9 100644
--- a/plotly/graph_objs/isosurface/colorbar/title/_font.py
+++ b/plotly/graph_objs/isosurface/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface.colorbar.title"
-    _path_str = "isosurface.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'isosurface.colorbar.title'
+    _path_str = 'isosurface.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.isosurface.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/hoverlabel/__init__.py b/plotly/graph_objs/isosurface/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/isosurface/hoverlabel/__init__.py
+++ b/plotly/graph_objs/isosurface/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/isosurface/hoverlabel/_font.py b/plotly/graph_objs/isosurface/hoverlabel/_font.py
index af5f004a776..366c4e251d9 100644
--- a/plotly/graph_objs/isosurface/hoverlabel/_font.py
+++ b/plotly/graph_objs/isosurface/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface.hoverlabel"
-    _path_str = "isosurface.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'isosurface.hoverlabel'
+    _path_str = 'isosurface.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.isosurface.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/legendgrouptitle/__init__.py b/plotly/graph_objs/isosurface/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/isosurface/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/isosurface/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/isosurface/legendgrouptitle/_font.py b/plotly/graph_objs/isosurface/legendgrouptitle/_font.py
index bc1c63cf3c4..b66bca6f30c 100644
--- a/plotly/graph_objs/isosurface/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/isosurface/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface.legendgrouptitle"
-    _path_str = "isosurface.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'isosurface.legendgrouptitle'
+    _path_str = 'isosurface.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.isosurface.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/slices/__init__.py b/plotly/graph_objs/isosurface/slices/__init__.py
index 649c038369f..bc24ca0a556 100644
--- a/plotly/graph_objs/isosurface/slices/__init__.py
+++ b/plotly/graph_objs/isosurface/slices/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._x import X
+    from ._y import Y
+    from ._z import Z
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._x.X', '._y.Y', '._z.Z']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._x.X", "._y.Y", "._z.Z"]
-)
diff --git a/plotly/graph_objs/isosurface/slices/_x.py b/plotly/graph_objs/isosurface/slices/_x.py
index 06ca724146b..207a7579d69 100644
--- a/plotly/graph_objs/isosurface/slices/_x.py
+++ b/plotly/graph_objs/isosurface/slices/_x.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class X(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface.slices"
-    _path_str = "isosurface.slices.x"
+    _parent_path_str = 'isosurface.slices'
+    _path_str = 'isosurface.slices.x'
     _valid_props = {"fill", "locations", "locationssrc", "show"}
 
     @property
@@ -26,11 +30,11 @@ def fill(self):
         -------
         int|float
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def locations(self):
@@ -46,11 +50,11 @@ def locations(self):
         -------
         numpy.ndarray
         """
-        return self["locations"]
+        return self['locations']
 
     @locations.setter
     def locations(self, val):
-        self["locations"] = val
+        self['locations'] = val
 
     @property
     def locationssrc(self):
@@ -65,11 +69,11 @@ def locationssrc(self):
         -------
         str
         """
-        return self["locationssrc"]
+        return self['locationssrc']
 
     @locationssrc.setter
     def locationssrc(self, val):
-        self["locationssrc"] = val
+        self['locationssrc'] = val
 
     @property
     def show(self):
@@ -84,11 +88,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -110,16 +114,14 @@ def _prop_descriptions(self):
             Determines whether or not slice planes about the x
             dimension are drawn.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        fill=None,
-        locations=None,
-        locationssrc=None,
-        show=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            fill=None,
+            locations=None,
+            locationssrc=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new X object
 
@@ -150,9 +152,9 @@ def __init__(
         -------
         X
         """
-        super().__init__("x")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('x')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -162,19 +164,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.slices.X
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.slices.X`"""
-            )
+an instance of :class:`plotly.graph_objs.isosurface.slices.X`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fill", arg, fill)
-        self._set_property("locations", arg, locations)
-        self._set_property("locationssrc", arg, locationssrc)
-        self._set_property("show", arg, show)
+        self._set_property('fill', arg, fill)
+        self._set_property('locations', arg, locations)
+        self._set_property('locationssrc', arg, locationssrc)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/slices/_y.py b/plotly/graph_objs/isosurface/slices/_y.py
index 25c9685d5fb..d147d589977 100644
--- a/plotly/graph_objs/isosurface/slices/_y.py
+++ b/plotly/graph_objs/isosurface/slices/_y.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Y(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface.slices"
-    _path_str = "isosurface.slices.y"
+    _parent_path_str = 'isosurface.slices'
+    _path_str = 'isosurface.slices.y'
     _valid_props = {"fill", "locations", "locationssrc", "show"}
 
     @property
@@ -26,11 +30,11 @@ def fill(self):
         -------
         int|float
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def locations(self):
@@ -46,11 +50,11 @@ def locations(self):
         -------
         numpy.ndarray
         """
-        return self["locations"]
+        return self['locations']
 
     @locations.setter
     def locations(self, val):
-        self["locations"] = val
+        self['locations'] = val
 
     @property
     def locationssrc(self):
@@ -65,11 +69,11 @@ def locationssrc(self):
         -------
         str
         """
-        return self["locationssrc"]
+        return self['locationssrc']
 
     @locationssrc.setter
     def locationssrc(self, val):
-        self["locationssrc"] = val
+        self['locationssrc'] = val
 
     @property
     def show(self):
@@ -84,11 +88,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -110,16 +114,14 @@ def _prop_descriptions(self):
             Determines whether or not slice planes about the y
             dimension are drawn.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        fill=None,
-        locations=None,
-        locationssrc=None,
-        show=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            fill=None,
+            locations=None,
+            locationssrc=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new Y object
 
@@ -150,9 +152,9 @@ def __init__(
         -------
         Y
         """
-        super().__init__("y")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('y')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -162,19 +164,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.slices.Y
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.slices.Y`"""
-            )
+an instance of :class:`plotly.graph_objs.isosurface.slices.Y`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fill", arg, fill)
-        self._set_property("locations", arg, locations)
-        self._set_property("locationssrc", arg, locationssrc)
-        self._set_property("show", arg, show)
+        self._set_property('fill', arg, fill)
+        self._set_property('locations', arg, locations)
+        self._set_property('locationssrc', arg, locationssrc)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/isosurface/slices/_z.py b/plotly/graph_objs/isosurface/slices/_z.py
index c364c19fe3a..ab3d40c10ec 100644
--- a/plotly/graph_objs/isosurface/slices/_z.py
+++ b/plotly/graph_objs/isosurface/slices/_z.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Z(_BaseTraceHierarchyType):
 
-    _parent_path_str = "isosurface.slices"
-    _path_str = "isosurface.slices.z"
+    _parent_path_str = 'isosurface.slices'
+    _path_str = 'isosurface.slices.z'
     _valid_props = {"fill", "locations", "locationssrc", "show"}
 
     @property
@@ -26,11 +30,11 @@ def fill(self):
         -------
         int|float
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def locations(self):
@@ -46,11 +50,11 @@ def locations(self):
         -------
         numpy.ndarray
         """
-        return self["locations"]
+        return self['locations']
 
     @locations.setter
     def locations(self, val):
-        self["locations"] = val
+        self['locations'] = val
 
     @property
     def locationssrc(self):
@@ -65,11 +69,11 @@ def locationssrc(self):
         -------
         str
         """
-        return self["locationssrc"]
+        return self['locationssrc']
 
     @locationssrc.setter
     def locationssrc(self, val):
-        self["locationssrc"] = val
+        self['locationssrc'] = val
 
     @property
     def show(self):
@@ -84,11 +88,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -110,16 +114,14 @@ def _prop_descriptions(self):
             Determines whether or not slice planes about the z
             dimension are drawn.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        fill=None,
-        locations=None,
-        locationssrc=None,
-        show=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            fill=None,
+            locations=None,
+            locationssrc=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new Z object
 
@@ -150,9 +152,9 @@ def __init__(
         -------
         Z
         """
-        super().__init__("z")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('z')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -162,19 +164,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.isosurface.slices.Z
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.isosurface.slices.Z`"""
-            )
+an instance of :class:`plotly.graph_objs.isosurface.slices.Z`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fill", arg, fill)
-        self._set_property("locations", arg, locations)
-        self._set_property("locationssrc", arg, locationssrc)
-        self._set_property("show", arg, show)
+        self._set_property('fill', arg, fill)
+        self._set_property('locations', arg, locations)
+        self._set_property('locationssrc', arg, locationssrc)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/__init__.py b/plotly/graph_objs/layout/__init__.py
index 7c2e2a01053..b0c21d5501a 100644
--- a/plotly/graph_objs/layout/__init__.py
+++ b/plotly/graph_objs/layout/__init__.py
@@ -1,63 +1,65 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._activeselection import Activeselection
+    from ._activeshape import Activeshape
+    from ._annotation import Annotation
+    from ._coloraxis import Coloraxis
+    from ._colorscale import Colorscale
+    from ._font import Font
+    from ._geo import Geo
+    from ._grid import Grid
+    from ._hoverlabel import Hoverlabel
+    from ._image import Image
+    from ._legend import Legend
+    from ._map import Map
+    from ._mapbox import Mapbox
+    from ._margin import Margin
+    from ._modebar import Modebar
+    from ._newselection import Newselection
+    from ._newshape import Newshape
+    from ._polar import Polar
+    from ._scene import Scene
+    from ._selection import Selection
+    from ._shape import Shape
+    from ._slider import Slider
+    from ._smith import Smith
+    from ._template import Template
+    from ._ternary import Ternary
+    from ._title import Title
+    from ._transition import Transition
+    from ._uniformtext import Uniformtext
+    from ._updatemenu import Updatemenu
+    from ._xaxis import XAxis
+    from ._yaxis import YAxis
+    from . import annotation
+    from . import coloraxis
+    from . import geo
+    from . import grid
+    from . import hoverlabel
+    from . import legend
+    from . import map
+    from . import mapbox
+    from . import newselection
+    from . import newshape
+    from . import polar
+    from . import scene
+    from . import selection
+    from . import shape
+    from . import slider
+    from . import smith
+    from . import template
+    from . import ternary
+    from . import title
+    from . import updatemenu
+    from . import xaxis
+    from . import yaxis
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.annotation', '.coloraxis', '.geo', '.grid', '.hoverlabel', '.legend', '.map', '.mapbox', '.newselection', '.newshape', '.polar', '.scene', '.selection', '.shape', '.slider', '.smith', '.template', '.ternary', '.title', '.updatemenu', '.xaxis', '.yaxis'],
+        ['._activeselection.Activeselection', '._activeshape.Activeshape', '._annotation.Annotation', '._coloraxis.Coloraxis', '._colorscale.Colorscale', '._font.Font', '._geo.Geo', '._grid.Grid', '._hoverlabel.Hoverlabel', '._image.Image', '._legend.Legend', '._map.Map', '._mapbox.Mapbox', '._margin.Margin', '._modebar.Modebar', '._newselection.Newselection', '._newshape.Newshape', '._polar.Polar', '._scene.Scene', '._selection.Selection', '._shape.Shape', '._slider.Slider', '._smith.Smith', '._template.Template', '._ternary.Ternary', '._title.Title', '._transition.Transition', '._uniformtext.Uniformtext', '._updatemenu.Updatemenu', '._xaxis.XAxis', '._yaxis.YAxis']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [
-        ".annotation",
-        ".coloraxis",
-        ".geo",
-        ".grid",
-        ".hoverlabel",
-        ".legend",
-        ".map",
-        ".mapbox",
-        ".newselection",
-        ".newshape",
-        ".polar",
-        ".scene",
-        ".selection",
-        ".shape",
-        ".slider",
-        ".smith",
-        ".template",
-        ".ternary",
-        ".title",
-        ".updatemenu",
-        ".xaxis",
-        ".yaxis",
-    ],
-    [
-        "._activeselection.Activeselection",
-        "._activeshape.Activeshape",
-        "._annotation.Annotation",
-        "._coloraxis.Coloraxis",
-        "._colorscale.Colorscale",
-        "._font.Font",
-        "._geo.Geo",
-        "._grid.Grid",
-        "._hoverlabel.Hoverlabel",
-        "._image.Image",
-        "._legend.Legend",
-        "._map.Map",
-        "._mapbox.Mapbox",
-        "._margin.Margin",
-        "._modebar.Modebar",
-        "._newselection.Newselection",
-        "._newshape.Newshape",
-        "._polar.Polar",
-        "._scene.Scene",
-        "._selection.Selection",
-        "._shape.Shape",
-        "._slider.Slider",
-        "._smith.Smith",
-        "._template.Template",
-        "._ternary.Ternary",
-        "._title.Title",
-        "._transition.Transition",
-        "._uniformtext.Uniformtext",
-        "._updatemenu.Updatemenu",
-        "._xaxis.XAxis",
-        "._yaxis.YAxis",
-    ],
-)
diff --git a/plotly/graph_objs/layout/_activeselection.py b/plotly/graph_objs/layout/_activeselection.py
index f6d81c281d7..4672fbcf8fc 100644
--- a/plotly/graph_objs/layout/_activeselection.py
+++ b/plotly/graph_objs/layout/_activeselection.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Activeselection(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.activeselection"
+    _parent_path_str = 'layout'
+    _path_str = 'layout.activeselection'
     _valid_props = {"fillcolor", "opacity"}
 
     @property
@@ -27,11 +31,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         opacity
             Sets the opacity of the active selection.
         """
-
-    def __init__(self, arg=None, fillcolor=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            fillcolor=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Activeselection object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, fillcolor=None, opacity=None, **kwargs):
         -------
         Activeselection
         """
-        super().__init__("activeselection")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('activeselection')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, fillcolor=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Activeselection
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Activeselection`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.Activeselection`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("opacity", arg, opacity)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_activeshape.py b/plotly/graph_objs/layout/_activeshape.py
index a757083aa38..6bb8137335c 100644
--- a/plotly/graph_objs/layout/_activeshape.py
+++ b/plotly/graph_objs/layout/_activeshape.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Activeshape(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.activeshape"
+    _parent_path_str = 'layout'
+    _path_str = 'layout.activeshape'
     _valid_props = {"fillcolor", "opacity"}
 
     @property
@@ -27,11 +31,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         opacity
             Sets the opacity of the active shape.
         """
-
-    def __init__(self, arg=None, fillcolor=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            fillcolor=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Activeshape object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, fillcolor=None, opacity=None, **kwargs):
         -------
         Activeshape
         """
-        super().__init__("activeshape")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('activeshape')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, fillcolor=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Activeshape
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Activeshape`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.Activeshape`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("opacity", arg, opacity)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_annotation.py b/plotly/graph_objs/layout/_annotation.py
index ce80742dc07..233a0921769 100644
--- a/plotly/graph_objs/layout/_annotation.py
+++ b/plotly/graph_objs/layout/_annotation.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,53 +11,9 @@
 
 class Annotation(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.annotation"
-    _valid_props = {
-        "align",
-        "arrowcolor",
-        "arrowhead",
-        "arrowside",
-        "arrowsize",
-        "arrowwidth",
-        "ax",
-        "axref",
-        "ay",
-        "ayref",
-        "bgcolor",
-        "bordercolor",
-        "borderpad",
-        "borderwidth",
-        "captureevents",
-        "clicktoshow",
-        "font",
-        "height",
-        "hoverlabel",
-        "hovertext",
-        "name",
-        "opacity",
-        "showarrow",
-        "standoff",
-        "startarrowhead",
-        "startarrowsize",
-        "startstandoff",
-        "templateitemname",
-        "text",
-        "textangle",
-        "valign",
-        "visible",
-        "width",
-        "x",
-        "xanchor",
-        "xclick",
-        "xref",
-        "xshift",
-        "y",
-        "yanchor",
-        "yclick",
-        "yref",
-        "yshift",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.annotation'
+    _valid_props = {"align", "arrowcolor", "arrowhead", "arrowside", "arrowsize", "arrowwidth", "ax", "axref", "ay", "ayref", "bgcolor", "bordercolor", "borderpad", "borderwidth", "captureevents", "clicktoshow", "font", "height", "hoverlabel", "hovertext", "name", "opacity", "showarrow", "standoff", "startarrowhead", "startarrowsize", "startstandoff", "templateitemname", "text", "textangle", "valign", "visible", "width", "x", "xanchor", "xclick", "xref", "xshift", "y", "yanchor", "yclick", "yref", "yshift"}
 
     @property
     def align(self):
@@ -71,11 +31,11 @@ def align(self):
         -------
         Any
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def arrowcolor(self):
@@ -93,11 +53,11 @@ def arrowcolor(self):
         -------
         str
         """
-        return self["arrowcolor"]
+        return self['arrowcolor']
 
     @arrowcolor.setter
     def arrowcolor(self, val):
-        self["arrowcolor"] = val
+        self['arrowcolor'] = val
 
     @property
     def arrowhead(self):
@@ -112,11 +72,11 @@ def arrowhead(self):
         -------
         int
         """
-        return self["arrowhead"]
+        return self['arrowhead']
 
     @arrowhead.setter
     def arrowhead(self, val):
-        self["arrowhead"] = val
+        self['arrowhead'] = val
 
     @property
     def arrowside(self):
@@ -133,11 +93,11 @@ def arrowside(self):
         -------
         Any
         """
-        return self["arrowside"]
+        return self['arrowside']
 
     @arrowside.setter
     def arrowside(self, val):
-        self["arrowside"] = val
+        self['arrowside'] = val
 
     @property
     def arrowsize(self):
@@ -153,11 +113,11 @@ def arrowsize(self):
         -------
         int|float
         """
-        return self["arrowsize"]
+        return self['arrowsize']
 
     @arrowsize.setter
     def arrowsize(self, val):
-        self["arrowsize"] = val
+        self['arrowsize'] = val
 
     @property
     def arrowwidth(self):
@@ -171,11 +131,11 @@ def arrowwidth(self):
         -------
         int|float
         """
-        return self["arrowwidth"]
+        return self['arrowwidth']
 
     @arrowwidth.setter
     def arrowwidth(self, val):
-        self["arrowwidth"] = val
+        self['arrowwidth'] = val
 
     @property
     def ax(self):
@@ -193,11 +153,11 @@ def ax(self):
         -------
         Any
         """
-        return self["ax"]
+        return self['ax']
 
     @ax.setter
     def ax(self, val):
-        self["ax"] = val
+        self['ax'] = val
 
     @property
     def axref(self):
@@ -233,11 +193,11 @@ def axref(self):
         -------
         Any
         """
-        return self["axref"]
+        return self['axref']
 
     @axref.setter
     def axref(self, val):
-        self["axref"] = val
+        self['axref'] = val
 
     @property
     def ay(self):
@@ -255,11 +215,11 @@ def ay(self):
         -------
         Any
         """
-        return self["ay"]
+        return self['ay']
 
     @ay.setter
     def ay(self, val):
-        self["ay"] = val
+        self['ay'] = val
 
     @property
     def ayref(self):
@@ -295,11 +255,11 @@ def ayref(self):
         -------
         Any
         """
-        return self["ayref"]
+        return self['ayref']
 
     @ayref.setter
     def ayref(self, val):
-        self["ayref"] = val
+        self['ayref'] = val
 
     @property
     def bgcolor(self):
@@ -317,11 +277,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -339,11 +299,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderpad(self):
@@ -358,11 +318,11 @@ def borderpad(self):
         -------
         int|float
         """
-        return self["borderpad"]
+        return self['borderpad']
 
     @borderpad.setter
     def borderpad(self, val):
-        self["borderpad"] = val
+        self['borderpad'] = val
 
     @property
     def borderwidth(self):
@@ -377,11 +337,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def captureevents(self):
@@ -400,11 +360,11 @@ def captureevents(self):
         -------
         bool
         """
-        return self["captureevents"]
+        return self['captureevents']
 
     @captureevents.setter
     def captureevents(self, val):
-        self["captureevents"] = val
+        self['captureevents'] = val
 
     @property
     def clicktoshow(self):
@@ -430,11 +390,11 @@ def clicktoshow(self):
         -------
         Any
         """
-        return self["clicktoshow"]
+        return self['clicktoshow']
 
     @clicktoshow.setter
     def clicktoshow(self, val):
-        self["clicktoshow"] = val
+        self['clicktoshow'] = val
 
     @property
     def font(self):
@@ -451,11 +411,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.annotation.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def height(self):
@@ -470,11 +430,11 @@ def height(self):
         -------
         int|float
         """
-        return self["height"]
+        return self['height']
 
     @height.setter
     def height(self, val):
-        self["height"] = val
+        self['height'] = val
 
     @property
     def hoverlabel(self):
@@ -489,11 +449,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.layout.annotation.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertext(self):
@@ -509,11 +469,11 @@ def hovertext(self):
         -------
         str
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def name(self):
@@ -534,11 +494,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -552,11 +512,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def showarrow(self):
@@ -572,11 +532,11 @@ def showarrow(self):
         -------
         bool
         """
-        return self["showarrow"]
+        return self['showarrow']
 
     @showarrow.setter
     def showarrow(self, val):
-        self["showarrow"] = val
+        self['showarrow'] = val
 
     @property
     def standoff(self):
@@ -594,11 +554,11 @@ def standoff(self):
         -------
         int|float
         """
-        return self["standoff"]
+        return self['standoff']
 
     @standoff.setter
     def standoff(self, val):
-        self["standoff"] = val
+        self['standoff'] = val
 
     @property
     def startarrowhead(self):
@@ -613,11 +573,11 @@ def startarrowhead(self):
         -------
         int
         """
-        return self["startarrowhead"]
+        return self['startarrowhead']
 
     @startarrowhead.setter
     def startarrowhead(self, val):
-        self["startarrowhead"] = val
+        self['startarrowhead'] = val
 
     @property
     def startarrowsize(self):
@@ -633,11 +593,11 @@ def startarrowsize(self):
         -------
         int|float
         """
-        return self["startarrowsize"]
+        return self['startarrowsize']
 
     @startarrowsize.setter
     def startarrowsize(self, val):
-        self["startarrowsize"] = val
+        self['startarrowsize'] = val
 
     @property
     def startstandoff(self):
@@ -655,11 +615,11 @@ def startstandoff(self):
         -------
         int|float
         """
-        return self["startstandoff"]
+        return self['startstandoff']
 
     @startstandoff.setter
     def startstandoff(self, val):
-        self["startstandoff"] = val
+        self['startstandoff'] = val
 
     @property
     def templateitemname(self):
@@ -681,11 +641,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def text(self):
@@ -703,11 +663,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textangle(self):
@@ -724,11 +684,11 @@ def textangle(self):
         -------
         int|float
         """
-        return self["textangle"]
+        return self['textangle']
 
     @textangle.setter
     def textangle(self, val):
-        self["textangle"] = val
+        self['textangle'] = val
 
     @property
     def valign(self):
@@ -745,11 +705,11 @@ def valign(self):
         -------
         Any
         """
-        return self["valign"]
+        return self['valign']
 
     @valign.setter
     def valign(self, val):
-        self["valign"] = val
+        self['valign'] = val
 
     @property
     def visible(self):
@@ -763,11 +723,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -783,11 +743,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def x(self):
@@ -806,11 +766,11 @@ def x(self):
         -------
         Any
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -833,11 +793,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xclick(self):
@@ -851,11 +811,11 @@ def xclick(self):
         -------
         Any
         """
-        return self["xclick"]
+        return self['xclick']
 
     @xclick.setter
     def xclick(self, val):
-        self["xclick"] = val
+        self['xclick'] = val
 
     @property
     def xref(self):
@@ -882,11 +842,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def xshift(self):
@@ -901,11 +861,11 @@ def xshift(self):
         -------
         int|float
         """
-        return self["xshift"]
+        return self['xshift']
 
     @xshift.setter
     def xshift(self, val):
-        self["xshift"] = val
+        self['xshift'] = val
 
     @property
     def y(self):
@@ -924,11 +884,11 @@ def y(self):
         -------
         Any
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -951,11 +911,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def yclick(self):
@@ -969,11 +929,11 @@ def yclick(self):
         -------
         Any
         """
-        return self["yclick"]
+        return self['yclick']
 
     @yclick.setter
     def yclick(self, val):
-        self["yclick"] = val
+        self['yclick'] = val
 
     @property
     def yref(self):
@@ -1000,11 +960,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def yshift(self):
@@ -1019,11 +979,11 @@ def yshift(self):
         -------
         int|float
         """
-        return self["yshift"]
+        return self['yshift']
 
     @yshift.setter
     def yshift(self, val):
-        self["yshift"] = val
+        self['yshift'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1307,55 +1267,53 @@ def _prop_descriptions(self):
             Shifts the position of the whole annotation and arrow
             up (positive) or down (negative) by this many pixels.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        arrowcolor=None,
-        arrowhead=None,
-        arrowside=None,
-        arrowsize=None,
-        arrowwidth=None,
-        ax=None,
-        axref=None,
-        ay=None,
-        ayref=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderpad=None,
-        borderwidth=None,
-        captureevents=None,
-        clicktoshow=None,
-        font=None,
-        height=None,
-        hoverlabel=None,
-        hovertext=None,
-        name=None,
-        opacity=None,
-        showarrow=None,
-        standoff=None,
-        startarrowhead=None,
-        startarrowsize=None,
-        startstandoff=None,
-        templateitemname=None,
-        text=None,
-        textangle=None,
-        valign=None,
-        visible=None,
-        width=None,
-        x=None,
-        xanchor=None,
-        xclick=None,
-        xref=None,
-        xshift=None,
-        y=None,
-        yanchor=None,
-        yclick=None,
-        yref=None,
-        yshift=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            arrowcolor=None,
+            arrowhead=None,
+            arrowside=None,
+            arrowsize=None,
+            arrowwidth=None,
+            ax=None,
+            axref=None,
+            ay=None,
+            ayref=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderpad=None,
+            borderwidth=None,
+            captureevents=None,
+            clicktoshow=None,
+            font=None,
+            height=None,
+            hoverlabel=None,
+            hovertext=None,
+            name=None,
+            opacity=None,
+            showarrow=None,
+            standoff=None,
+            startarrowhead=None,
+            startarrowsize=None,
+            startstandoff=None,
+            templateitemname=None,
+            text=None,
+            textangle=None,
+            valign=None,
+            visible=None,
+            width=None,
+            x=None,
+            xanchor=None,
+            xclick=None,
+            xref=None,
+            xshift=None,
+            y=None,
+            yanchor=None,
+            yclick=None,
+            yref=None,
+            yshift=None,
+            **kwargs
+        ):
         """
         Construct a new Annotation object
 
@@ -1648,9 +1606,9 @@ def __init__(
         -------
         Annotation
         """
-        super().__init__("annotations")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('annotations')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1660,58 +1618,58 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Annotation
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Annotation`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("arrowcolor", arg, arrowcolor)
-        self._set_property("arrowhead", arg, arrowhead)
-        self._set_property("arrowside", arg, arrowside)
-        self._set_property("arrowsize", arg, arrowsize)
-        self._set_property("arrowwidth", arg, arrowwidth)
-        self._set_property("ax", arg, ax)
-        self._set_property("axref", arg, axref)
-        self._set_property("ay", arg, ay)
-        self._set_property("ayref", arg, ayref)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderpad", arg, borderpad)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("captureevents", arg, captureevents)
-        self._set_property("clicktoshow", arg, clicktoshow)
-        self._set_property("font", arg, font)
-        self._set_property("height", arg, height)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("showarrow", arg, showarrow)
-        self._set_property("standoff", arg, standoff)
-        self._set_property("startarrowhead", arg, startarrowhead)
-        self._set_property("startarrowsize", arg, startarrowsize)
-        self._set_property("startstandoff", arg, startstandoff)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("text", arg, text)
-        self._set_property("textangle", arg, textangle)
-        self._set_property("valign", arg, valign)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xclick", arg, xclick)
-        self._set_property("xref", arg, xref)
-        self._set_property("xshift", arg, xshift)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("yclick", arg, yclick)
-        self._set_property("yref", arg, yref)
-        self._set_property("yshift", arg, yshift)
+an instance of :class:`plotly.graph_objs.layout.Annotation`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('arrowcolor', arg, arrowcolor)
+        self._set_property('arrowhead', arg, arrowhead)
+        self._set_property('arrowside', arg, arrowside)
+        self._set_property('arrowsize', arg, arrowsize)
+        self._set_property('arrowwidth', arg, arrowwidth)
+        self._set_property('ax', arg, ax)
+        self._set_property('axref', arg, axref)
+        self._set_property('ay', arg, ay)
+        self._set_property('ayref', arg, ayref)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderpad', arg, borderpad)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('captureevents', arg, captureevents)
+        self._set_property('clicktoshow', arg, clicktoshow)
+        self._set_property('font', arg, font)
+        self._set_property('height', arg, height)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('showarrow', arg, showarrow)
+        self._set_property('standoff', arg, standoff)
+        self._set_property('startarrowhead', arg, startarrowhead)
+        self._set_property('startarrowsize', arg, startarrowsize)
+        self._set_property('startstandoff', arg, startstandoff)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('text', arg, text)
+        self._set_property('textangle', arg, textangle)
+        self._set_property('valign', arg, valign)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xclick', arg, xclick)
+        self._set_property('xref', arg, xref)
+        self._set_property('xshift', arg, xshift)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('yclick', arg, yclick)
+        self._set_property('yref', arg, yref)
+        self._set_property('yshift', arg, yshift)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_coloraxis.py b/plotly/graph_objs/layout/_coloraxis.py
index 443b9c92e93..4d47fc7e228 100644
--- a/plotly/graph_objs/layout/_coloraxis.py
+++ b/plotly/graph_objs/layout/_coloraxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Coloraxis(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.coloraxis"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "colorbar",
-        "colorscale",
-        "reversescale",
-        "showscale",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.coloraxis'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "colorbar", "colorscale", "reversescale", "showscale"}
 
     @property
     def autocolorscale(self):
@@ -38,11 +32,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -59,11 +53,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -79,11 +73,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -100,11 +94,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -120,11 +114,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def colorbar(self):
@@ -139,11 +133,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.layout.coloraxis.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -190,11 +184,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def reversescale(self):
@@ -210,11 +204,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -229,11 +223,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def _prop_descriptions(self):
@@ -287,21 +281,19 @@ def _prop_descriptions(self):
             Determines whether or not a colorbar is displayed for
             this trace.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        colorbar=None,
-        colorscale=None,
-        reversescale=None,
-        showscale=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            colorbar=None,
+            colorscale=None,
+            reversescale=None,
+            showscale=None,
+            **kwargs
+        ):
         """
         Construct a new Coloraxis object
 
@@ -364,9 +356,9 @@ def __init__(
         -------
         Coloraxis
         """
-        super().__init__("coloraxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('coloraxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -376,24 +368,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Coloraxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Coloraxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
+an instance of :class:`plotly.graph_objs.layout.Coloraxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_colorscale.py b/plotly/graph_objs/layout/_colorscale.py
index 81169043451..d2fe047e516 100644
--- a/plotly/graph_objs/layout/_colorscale.py
+++ b/plotly/graph_objs/layout/_colorscale.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Colorscale(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.colorscale"
+    _parent_path_str = 'layout'
+    _path_str = 'layout.colorscale'
     _valid_props = {"diverging", "sequential", "sequentialminus"}
 
     @property
@@ -48,11 +52,11 @@ def diverging(self):
         -------
         str
         """
-        return self["diverging"]
+        return self['diverging']
 
     @diverging.setter
     def diverging(self, val):
-        self["diverging"] = val
+        self['diverging'] = val
 
     @property
     def sequential(self):
@@ -92,11 +96,11 @@ def sequential(self):
         -------
         str
         """
-        return self["sequential"]
+        return self['sequential']
 
     @sequential.setter
     def sequential(self, val):
-        self["sequential"] = val
+        self['sequential'] = val
 
     @property
     def sequentialminus(self):
@@ -136,11 +140,11 @@ def sequentialminus(self):
         -------
         str
         """
-        return self["sequentialminus"]
+        return self['sequentialminus']
 
     @sequentialminus.setter
     def sequentialminus(self, val):
-        self["sequentialminus"] = val
+        self['sequentialminus'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,10 +162,13 @@ def _prop_descriptions(self):
             values. Note that `autocolorscale` must be true for
             this attribute to work.
         """
-
-    def __init__(
-        self, arg=None, diverging=None, sequential=None, sequentialminus=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            diverging=None,
+            sequential=None,
+            sequentialminus=None,
+            **kwargs
+        ):
         """
         Construct a new Colorscale object
 
@@ -188,9 +195,9 @@ def __init__(
         -------
         Colorscale
         """
-        super().__init__("colorscale")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorscale')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -200,18 +207,18 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Colorscale
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Colorscale`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.Colorscale`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("diverging", arg, diverging)
-        self._set_property("sequential", arg, sequential)
-        self._set_property("sequentialminus", arg, sequentialminus)
+        self._set_property('diverging', arg, diverging)
+        self._set_property('sequential', arg, sequential)
+        self._set_property('sequentialminus', arg, sequentialminus)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_font.py b/plotly/graph_objs/layout/_font.py
index 5c1b45d2ffb..d404a86c7b0 100644
--- a/plotly/graph_objs/layout/_font.py
+++ b/plotly/graph_objs/layout/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_geo.py b/plotly/graph_objs/layout/_geo.py
index e978adf1993..490784b8878 100644
--- a/plotly/graph_objs/layout/_geo.py
+++ b/plotly/graph_objs/layout/_geo.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,42 +11,9 @@
 
 class Geo(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.geo"
-    _valid_props = {
-        "bgcolor",
-        "center",
-        "coastlinecolor",
-        "coastlinewidth",
-        "countrycolor",
-        "countrywidth",
-        "domain",
-        "fitbounds",
-        "framecolor",
-        "framewidth",
-        "lakecolor",
-        "landcolor",
-        "lataxis",
-        "lonaxis",
-        "oceancolor",
-        "projection",
-        "resolution",
-        "rivercolor",
-        "riverwidth",
-        "scope",
-        "showcoastlines",
-        "showcountries",
-        "showframe",
-        "showlakes",
-        "showland",
-        "showocean",
-        "showrivers",
-        "showsubunits",
-        "subunitcolor",
-        "subunitwidth",
-        "uirevision",
-        "visible",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.geo'
+    _valid_props = {"bgcolor", "center", "coastlinecolor", "coastlinewidth", "countrycolor", "countrywidth", "domain", "fitbounds", "framecolor", "framewidth", "lakecolor", "landcolor", "lataxis", "lonaxis", "oceancolor", "projection", "resolution", "rivercolor", "riverwidth", "scope", "showcoastlines", "showcountries", "showframe", "showlakes", "showland", "showocean", "showrivers", "showsubunits", "subunitcolor", "subunitwidth", "uirevision", "visible"}
 
     @property
     def bgcolor(self):
@@ -60,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def center(self):
@@ -79,11 +50,11 @@ def center(self):
         -------
         plotly.graph_objs.layout.geo.Center
         """
-        return self["center"]
+        return self['center']
 
     @center.setter
     def center(self, val):
-        self["center"] = val
+        self['center'] = val
 
     @property
     def coastlinecolor(self):
@@ -101,11 +72,11 @@ def coastlinecolor(self):
         -------
         str
         """
-        return self["coastlinecolor"]
+        return self['coastlinecolor']
 
     @coastlinecolor.setter
     def coastlinecolor(self, val):
-        self["coastlinecolor"] = val
+        self['coastlinecolor'] = val
 
     @property
     def coastlinewidth(self):
@@ -119,11 +90,11 @@ def coastlinewidth(self):
         -------
         int|float
         """
-        return self["coastlinewidth"]
+        return self['coastlinewidth']
 
     @coastlinewidth.setter
     def coastlinewidth(self, val):
-        self["coastlinewidth"] = val
+        self['coastlinewidth'] = val
 
     @property
     def countrycolor(self):
@@ -141,11 +112,11 @@ def countrycolor(self):
         -------
         str
         """
-        return self["countrycolor"]
+        return self['countrycolor']
 
     @countrycolor.setter
     def countrycolor(self, val):
-        self["countrycolor"] = val
+        self['countrycolor'] = val
 
     @property
     def countrywidth(self):
@@ -159,11 +130,11 @@ def countrywidth(self):
         -------
         int|float
         """
-        return self["countrywidth"]
+        return self['countrywidth']
 
     @countrywidth.setter
     def countrywidth(self, val):
-        self["countrywidth"] = val
+        self['countrywidth'] = val
 
     @property
     def domain(self):
@@ -178,11 +149,11 @@ def domain(self):
         -------
         plotly.graph_objs.layout.geo.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def fitbounds(self):
@@ -209,11 +180,11 @@ def fitbounds(self):
         -------
         Any
         """
-        return self["fitbounds"]
+        return self['fitbounds']
 
     @fitbounds.setter
     def fitbounds(self, val):
-        self["fitbounds"] = val
+        self['fitbounds'] = val
 
     @property
     def framecolor(self):
@@ -231,11 +202,11 @@ def framecolor(self):
         -------
         str
         """
-        return self["framecolor"]
+        return self['framecolor']
 
     @framecolor.setter
     def framecolor(self, val):
-        self["framecolor"] = val
+        self['framecolor'] = val
 
     @property
     def framewidth(self):
@@ -249,11 +220,11 @@ def framewidth(self):
         -------
         int|float
         """
-        return self["framewidth"]
+        return self['framewidth']
 
     @framewidth.setter
     def framewidth(self, val):
-        self["framewidth"] = val
+        self['framewidth'] = val
 
     @property
     def lakecolor(self):
@@ -271,11 +242,11 @@ def lakecolor(self):
         -------
         str
         """
-        return self["lakecolor"]
+        return self['lakecolor']
 
     @lakecolor.setter
     def lakecolor(self, val):
-        self["lakecolor"] = val
+        self['lakecolor'] = val
 
     @property
     def landcolor(self):
@@ -293,11 +264,11 @@ def landcolor(self):
         -------
         str
         """
-        return self["landcolor"]
+        return self['landcolor']
 
     @landcolor.setter
     def landcolor(self, val):
-        self["landcolor"] = val
+        self['landcolor'] = val
 
     @property
     def lataxis(self):
@@ -312,11 +283,11 @@ def lataxis(self):
         -------
         plotly.graph_objs.layout.geo.Lataxis
         """
-        return self["lataxis"]
+        return self['lataxis']
 
     @lataxis.setter
     def lataxis(self, val):
-        self["lataxis"] = val
+        self['lataxis'] = val
 
     @property
     def lonaxis(self):
@@ -331,11 +302,11 @@ def lonaxis(self):
         -------
         plotly.graph_objs.layout.geo.Lonaxis
         """
-        return self["lonaxis"]
+        return self['lonaxis']
 
     @lonaxis.setter
     def lonaxis(self, val):
-        self["lonaxis"] = val
+        self['lonaxis'] = val
 
     @property
     def oceancolor(self):
@@ -353,11 +324,11 @@ def oceancolor(self):
         -------
         str
         """
-        return self["oceancolor"]
+        return self['oceancolor']
 
     @oceancolor.setter
     def oceancolor(self, val):
-        self["oceancolor"] = val
+        self['oceancolor'] = val
 
     @property
     def projection(self):
@@ -372,11 +343,11 @@ def projection(self):
         -------
         plotly.graph_objs.layout.geo.Projection
         """
-        return self["projection"]
+        return self['projection']
 
     @projection.setter
     def projection(self, val):
-        self["projection"] = val
+        self['projection'] = val
 
     @property
     def resolution(self):
@@ -393,11 +364,11 @@ def resolution(self):
         -------
         Any
         """
-        return self["resolution"]
+        return self['resolution']
 
     @resolution.setter
     def resolution(self, val):
-        self["resolution"] = val
+        self['resolution'] = val
 
     @property
     def rivercolor(self):
@@ -415,11 +386,11 @@ def rivercolor(self):
         -------
         str
         """
-        return self["rivercolor"]
+        return self['rivercolor']
 
     @rivercolor.setter
     def rivercolor(self, val):
-        self["rivercolor"] = val
+        self['rivercolor'] = val
 
     @property
     def riverwidth(self):
@@ -433,11 +404,11 @@ def riverwidth(self):
         -------
         int|float
         """
-        return self["riverwidth"]
+        return self['riverwidth']
 
     @riverwidth.setter
     def riverwidth(self, val):
-        self["riverwidth"] = val
+        self['riverwidth'] = val
 
     @property
     def scope(self):
@@ -453,11 +424,11 @@ def scope(self):
         -------
         Any
         """
-        return self["scope"]
+        return self['scope']
 
     @scope.setter
     def scope(self, val):
-        self["scope"] = val
+        self['scope'] = val
 
     @property
     def showcoastlines(self):
@@ -471,11 +442,11 @@ def showcoastlines(self):
         -------
         bool
         """
-        return self["showcoastlines"]
+        return self['showcoastlines']
 
     @showcoastlines.setter
     def showcoastlines(self, val):
-        self["showcoastlines"] = val
+        self['showcoastlines'] = val
 
     @property
     def showcountries(self):
@@ -489,11 +460,11 @@ def showcountries(self):
         -------
         bool
         """
-        return self["showcountries"]
+        return self['showcountries']
 
     @showcountries.setter
     def showcountries(self, val):
-        self["showcountries"] = val
+        self['showcountries'] = val
 
     @property
     def showframe(self):
@@ -507,11 +478,11 @@ def showframe(self):
         -------
         bool
         """
-        return self["showframe"]
+        return self['showframe']
 
     @showframe.setter
     def showframe(self, val):
-        self["showframe"] = val
+        self['showframe'] = val
 
     @property
     def showlakes(self):
@@ -525,11 +496,11 @@ def showlakes(self):
         -------
         bool
         """
-        return self["showlakes"]
+        return self['showlakes']
 
     @showlakes.setter
     def showlakes(self, val):
-        self["showlakes"] = val
+        self['showlakes'] = val
 
     @property
     def showland(self):
@@ -543,11 +514,11 @@ def showland(self):
         -------
         bool
         """
-        return self["showland"]
+        return self['showland']
 
     @showland.setter
     def showland(self, val):
-        self["showland"] = val
+        self['showland'] = val
 
     @property
     def showocean(self):
@@ -561,11 +532,11 @@ def showocean(self):
         -------
         bool
         """
-        return self["showocean"]
+        return self['showocean']
 
     @showocean.setter
     def showocean(self, val):
-        self["showocean"] = val
+        self['showocean'] = val
 
     @property
     def showrivers(self):
@@ -579,11 +550,11 @@ def showrivers(self):
         -------
         bool
         """
-        return self["showrivers"]
+        return self['showrivers']
 
     @showrivers.setter
     def showrivers(self, val):
-        self["showrivers"] = val
+        self['showrivers'] = val
 
     @property
     def showsubunits(self):
@@ -598,11 +569,11 @@ def showsubunits(self):
         -------
         bool
         """
-        return self["showsubunits"]
+        return self['showsubunits']
 
     @showsubunits.setter
     def showsubunits(self, val):
-        self["showsubunits"] = val
+        self['showsubunits'] = val
 
     @property
     def subunitcolor(self):
@@ -620,11 +591,11 @@ def subunitcolor(self):
         -------
         str
         """
-        return self["subunitcolor"]
+        return self['subunitcolor']
 
     @subunitcolor.setter
     def subunitcolor(self, val):
-        self["subunitcolor"] = val
+        self['subunitcolor'] = val
 
     @property
     def subunitwidth(self):
@@ -638,11 +609,11 @@ def subunitwidth(self):
         -------
         int|float
         """
-        return self["subunitwidth"]
+        return self['subunitwidth']
 
     @subunitwidth.setter
     def subunitwidth(self, val):
-        self["subunitwidth"] = val
+        self['subunitwidth'] = val
 
     @property
     def uirevision(self):
@@ -656,11 +627,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -674,11 +645,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -773,44 +744,42 @@ def _prop_descriptions(self):
         visible
             Sets the default visibility of the base layers.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        center=None,
-        coastlinecolor=None,
-        coastlinewidth=None,
-        countrycolor=None,
-        countrywidth=None,
-        domain=None,
-        fitbounds=None,
-        framecolor=None,
-        framewidth=None,
-        lakecolor=None,
-        landcolor=None,
-        lataxis=None,
-        lonaxis=None,
-        oceancolor=None,
-        projection=None,
-        resolution=None,
-        rivercolor=None,
-        riverwidth=None,
-        scope=None,
-        showcoastlines=None,
-        showcountries=None,
-        showframe=None,
-        showlakes=None,
-        showland=None,
-        showocean=None,
-        showrivers=None,
-        showsubunits=None,
-        subunitcolor=None,
-        subunitwidth=None,
-        uirevision=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            center=None,
+            coastlinecolor=None,
+            coastlinewidth=None,
+            countrycolor=None,
+            countrywidth=None,
+            domain=None,
+            fitbounds=None,
+            framecolor=None,
+            framewidth=None,
+            lakecolor=None,
+            landcolor=None,
+            lataxis=None,
+            lonaxis=None,
+            oceancolor=None,
+            projection=None,
+            resolution=None,
+            rivercolor=None,
+            riverwidth=None,
+            scope=None,
+            showcoastlines=None,
+            showcountries=None,
+            showframe=None,
+            showlakes=None,
+            showland=None,
+            showocean=None,
+            showrivers=None,
+            showsubunits=None,
+            subunitcolor=None,
+            subunitwidth=None,
+            uirevision=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Geo object
 
@@ -913,9 +882,9 @@ def __init__(
         -------
         Geo
         """
-        super().__init__("geo")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('geo')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -925,47 +894,47 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Geo
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Geo`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("center", arg, center)
-        self._set_property("coastlinecolor", arg, coastlinecolor)
-        self._set_property("coastlinewidth", arg, coastlinewidth)
-        self._set_property("countrycolor", arg, countrycolor)
-        self._set_property("countrywidth", arg, countrywidth)
-        self._set_property("domain", arg, domain)
-        self._set_property("fitbounds", arg, fitbounds)
-        self._set_property("framecolor", arg, framecolor)
-        self._set_property("framewidth", arg, framewidth)
-        self._set_property("lakecolor", arg, lakecolor)
-        self._set_property("landcolor", arg, landcolor)
-        self._set_property("lataxis", arg, lataxis)
-        self._set_property("lonaxis", arg, lonaxis)
-        self._set_property("oceancolor", arg, oceancolor)
-        self._set_property("projection", arg, projection)
-        self._set_property("resolution", arg, resolution)
-        self._set_property("rivercolor", arg, rivercolor)
-        self._set_property("riverwidth", arg, riverwidth)
-        self._set_property("scope", arg, scope)
-        self._set_property("showcoastlines", arg, showcoastlines)
-        self._set_property("showcountries", arg, showcountries)
-        self._set_property("showframe", arg, showframe)
-        self._set_property("showlakes", arg, showlakes)
-        self._set_property("showland", arg, showland)
-        self._set_property("showocean", arg, showocean)
-        self._set_property("showrivers", arg, showrivers)
-        self._set_property("showsubunits", arg, showsubunits)
-        self._set_property("subunitcolor", arg, subunitcolor)
-        self._set_property("subunitwidth", arg, subunitwidth)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
+an instance of :class:`plotly.graph_objs.layout.Geo`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('center', arg, center)
+        self._set_property('coastlinecolor', arg, coastlinecolor)
+        self._set_property('coastlinewidth', arg, coastlinewidth)
+        self._set_property('countrycolor', arg, countrycolor)
+        self._set_property('countrywidth', arg, countrywidth)
+        self._set_property('domain', arg, domain)
+        self._set_property('fitbounds', arg, fitbounds)
+        self._set_property('framecolor', arg, framecolor)
+        self._set_property('framewidth', arg, framewidth)
+        self._set_property('lakecolor', arg, lakecolor)
+        self._set_property('landcolor', arg, landcolor)
+        self._set_property('lataxis', arg, lataxis)
+        self._set_property('lonaxis', arg, lonaxis)
+        self._set_property('oceancolor', arg, oceancolor)
+        self._set_property('projection', arg, projection)
+        self._set_property('resolution', arg, resolution)
+        self._set_property('rivercolor', arg, rivercolor)
+        self._set_property('riverwidth', arg, riverwidth)
+        self._set_property('scope', arg, scope)
+        self._set_property('showcoastlines', arg, showcoastlines)
+        self._set_property('showcountries', arg, showcountries)
+        self._set_property('showframe', arg, showframe)
+        self._set_property('showlakes', arg, showlakes)
+        self._set_property('showland', arg, showland)
+        self._set_property('showocean', arg, showocean)
+        self._set_property('showrivers', arg, showrivers)
+        self._set_property('showsubunits', arg, showsubunits)
+        self._set_property('subunitcolor', arg, subunitcolor)
+        self._set_property('subunitwidth', arg, subunitwidth)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_grid.py b/plotly/graph_objs/layout/_grid.py
index 79d5bd838c0..48de3172edb 100644
--- a/plotly/graph_objs/layout/_grid.py
+++ b/plotly/graph_objs/layout/_grid.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Grid(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.grid"
-    _valid_props = {
-        "columns",
-        "domain",
-        "pattern",
-        "roworder",
-        "rows",
-        "subplots",
-        "xaxes",
-        "xgap",
-        "xside",
-        "yaxes",
-        "ygap",
-        "yside",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.grid'
+    _valid_props = {"columns", "domain", "pattern", "roworder", "rows", "subplots", "xaxes", "xgap", "xside", "yaxes", "ygap", "yside"}
 
     @property
     def columns(self):
@@ -42,11 +33,11 @@ def columns(self):
         -------
         int
         """
-        return self["columns"]
+        return self['columns']
 
     @columns.setter
     def columns(self, val):
-        self["columns"] = val
+        self['columns'] = val
 
     @property
     def domain(self):
@@ -61,11 +52,11 @@ def domain(self):
         -------
         plotly.graph_objs.layout.grid.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def pattern(self):
@@ -85,11 +76,11 @@ def pattern(self):
         -------
         Any
         """
-        return self["pattern"]
+        return self['pattern']
 
     @pattern.setter
     def pattern(self, val):
-        self["pattern"] = val
+        self['pattern'] = val
 
     @property
     def roworder(self):
@@ -105,11 +96,11 @@ def roworder(self):
         -------
         Any
         """
-        return self["roworder"]
+        return self['roworder']
 
     @roworder.setter
     def roworder(self, val):
-        self["roworder"] = val
+        self['roworder'] = val
 
     @property
     def rows(self):
@@ -127,11 +118,11 @@ def rows(self):
         -------
         int
         """
-        return self["rows"]
+        return self['rows']
 
     @rows.setter
     def rows(self, val):
-        self["rows"] = val
+        self['rows'] = val
 
     @property
     def subplots(self):
@@ -156,11 +147,11 @@ def subplots(self):
         -------
         list
         """
-        return self["subplots"]
+        return self['subplots']
 
     @subplots.setter
     def subplots(self, val):
-        self["subplots"] = val
+        self['subplots'] = val
 
     @property
     def xaxes(self):
@@ -184,11 +175,11 @@ def xaxes(self):
         -------
         list
         """
-        return self["xaxes"]
+        return self['xaxes']
 
     @xaxes.setter
     def xaxes(self, val):
-        self["xaxes"] = val
+        self['xaxes'] = val
 
     @property
     def xgap(self):
@@ -204,11 +195,11 @@ def xgap(self):
         -------
         int|float
         """
-        return self["xgap"]
+        return self['xgap']
 
     @xgap.setter
     def xgap(self, val):
-        self["xgap"] = val
+        self['xgap'] = val
 
     @property
     def xside(self):
@@ -225,11 +216,11 @@ def xside(self):
         -------
         Any
         """
-        return self["xside"]
+        return self['xside']
 
     @xside.setter
     def xside(self, val):
-        self["xside"] = val
+        self['xside'] = val
 
     @property
     def yaxes(self):
@@ -253,11 +244,11 @@ def yaxes(self):
         -------
         list
         """
-        return self["yaxes"]
+        return self['yaxes']
 
     @yaxes.setter
     def yaxes(self, val):
-        self["yaxes"] = val
+        self['yaxes'] = val
 
     @property
     def ygap(self):
@@ -273,11 +264,11 @@ def ygap(self):
         -------
         int|float
         """
-        return self["ygap"]
+        return self['ygap']
 
     @ygap.setter
     def ygap(self, val):
-        self["ygap"] = val
+        self['ygap'] = val
 
     @property
     def yside(self):
@@ -295,11 +286,11 @@ def yside(self):
         -------
         Any
         """
-        return self["yside"]
+        return self['yside']
 
     @yside.setter
     def yside(self, val):
-        self["yside"] = val
+        self['yside'] = val
 
     @property
     def _prop_descriptions(self):
@@ -375,24 +366,22 @@ def _prop_descriptions(self):
             the leftmost plot that each y axis is used in. "right"
             and *right plot* are similar.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        columns=None,
-        domain=None,
-        pattern=None,
-        roworder=None,
-        rows=None,
-        subplots=None,
-        xaxes=None,
-        xgap=None,
-        xside=None,
-        yaxes=None,
-        ygap=None,
-        yside=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            columns=None,
+            domain=None,
+            pattern=None,
+            roworder=None,
+            rows=None,
+            subplots=None,
+            xaxes=None,
+            xgap=None,
+            xside=None,
+            yaxes=None,
+            ygap=None,
+            yside=None,
+            **kwargs
+        ):
         """
         Construct a new Grid object
 
@@ -476,9 +465,9 @@ def __init__(
         -------
         Grid
         """
-        super().__init__("grid")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('grid')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -488,27 +477,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Grid
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Grid`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("columns", arg, columns)
-        self._set_property("domain", arg, domain)
-        self._set_property("pattern", arg, pattern)
-        self._set_property("roworder", arg, roworder)
-        self._set_property("rows", arg, rows)
-        self._set_property("subplots", arg, subplots)
-        self._set_property("xaxes", arg, xaxes)
-        self._set_property("xgap", arg, xgap)
-        self._set_property("xside", arg, xside)
-        self._set_property("yaxes", arg, yaxes)
-        self._set_property("ygap", arg, ygap)
-        self._set_property("yside", arg, yside)
+an instance of :class:`plotly.graph_objs.layout.Grid`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('columns', arg, columns)
+        self._set_property('domain', arg, domain)
+        self._set_property('pattern', arg, pattern)
+        self._set_property('roworder', arg, roworder)
+        self._set_property('rows', arg, rows)
+        self._set_property('subplots', arg, subplots)
+        self._set_property('xaxes', arg, xaxes)
+        self._set_property('xgap', arg, xgap)
+        self._set_property('xside', arg, xside)
+        self._set_property('yaxes', arg, yaxes)
+        self._set_property('ygap', arg, ygap)
+        self._set_property('yside', arg, yside)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_hoverlabel.py b/plotly/graph_objs/layout/_hoverlabel.py
index 5e4e8da03b8..76642490569 100644
--- a/plotly/graph_objs/layout/_hoverlabel.py
+++ b/plotly/graph_objs/layout/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,16 +11,9 @@
 
 class Hoverlabel(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.hoverlabel"
-    _valid_props = {
-        "align",
-        "bgcolor",
-        "bordercolor",
-        "font",
-        "grouptitlefont",
-        "namelength",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.hoverlabel'
+    _valid_props = {"align", "bgcolor", "bordercolor", "font", "grouptitlefont", "namelength"}
 
     @property
     def align(self):
@@ -33,11 +30,11 @@ def align(self):
         -------
         Any
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def bgcolor(self):
@@ -55,11 +52,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -77,11 +74,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def font(self):
@@ -99,11 +96,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def grouptitlefont(self):
@@ -121,11 +118,11 @@ def grouptitlefont(self):
         -------
         plotly.graph_objs.layout.hoverlabel.Grouptitlefont
         """
-        return self["grouptitlefont"]
+        return self['grouptitlefont']
 
     @grouptitlefont.setter
     def grouptitlefont(self, val):
-        self["grouptitlefont"] = val
+        self['grouptitlefont'] = val
 
     @property
     def namelength(self):
@@ -145,11 +142,11 @@ def namelength(self):
         -------
         int
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def _prop_descriptions(self):
@@ -177,18 +174,16 @@ def _prop_descriptions(self):
             but if it is longer, will truncate to `namelength - 3`
             characters and add an ellipsis.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        bgcolor=None,
-        bordercolor=None,
-        font=None,
-        grouptitlefont=None,
-        namelength=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            bgcolor=None,
+            bordercolor=None,
+            font=None,
+            grouptitlefont=None,
+            namelength=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -225,9 +220,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -237,21 +232,21 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("font", arg, font)
-        self._set_property("grouptitlefont", arg, grouptitlefont)
-        self._set_property("namelength", arg, namelength)
+an instance of :class:`plotly.graph_objs.layout.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('font', arg, font)
+        self._set_property('grouptitlefont', arg, grouptitlefont)
+        self._set_property('namelength', arg, namelength)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_image.py b/plotly/graph_objs/layout/_image.py
index 00b7634f264..b112c1e4a60 100644
--- a/plotly/graph_objs/layout/_image.py
+++ b/plotly/graph_objs/layout/_image.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,25 +11,9 @@
 
 class Image(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.image"
-    _valid_props = {
-        "layer",
-        "name",
-        "opacity",
-        "sizex",
-        "sizey",
-        "sizing",
-        "source",
-        "templateitemname",
-        "visible",
-        "x",
-        "xanchor",
-        "xref",
-        "y",
-        "yanchor",
-        "yref",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.image'
+    _valid_props = {"layer", "name", "opacity", "sizex", "sizey", "sizing", "source", "templateitemname", "visible", "x", "xanchor", "xref", "y", "yanchor", "yref"}
 
     @property
     def layer(self):
@@ -42,11 +30,11 @@ def layer(self):
         -------
         Any
         """
-        return self["layer"]
+        return self['layer']
 
     @layer.setter
     def layer(self, val):
-        self["layer"] = val
+        self['layer'] = val
 
     @property
     def name(self):
@@ -67,11 +55,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -85,11 +73,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def sizex(self):
@@ -107,11 +95,11 @@ def sizex(self):
         -------
         int|float
         """
-        return self["sizex"]
+        return self['sizex']
 
     @sizex.setter
     def sizex(self, val):
-        self["sizex"] = val
+        self['sizex'] = val
 
     @property
     def sizey(self):
@@ -129,11 +117,11 @@ def sizey(self):
         -------
         int|float
         """
-        return self["sizey"]
+        return self['sizey']
 
     @sizey.setter
     def sizey(self, val):
-        self["sizey"] = val
+        self['sizey'] = val
 
     @property
     def sizing(self):
@@ -148,11 +136,11 @@ def sizing(self):
         -------
         Any
         """
-        return self["sizing"]
+        return self['sizing']
 
     @sizing.setter
     def sizing(self, val):
-        self["sizing"] = val
+        self['sizing'] = val
 
     @property
     def source(self):
@@ -174,11 +162,11 @@ def source(self):
         -------
         str
         """
-        return self["source"]
+        return self['source']
 
     @source.setter
     def source(self, val):
-        self["source"] = val
+        self['source'] = val
 
     @property
     def templateitemname(self):
@@ -200,11 +188,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def visible(self):
@@ -218,11 +206,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -237,11 +225,11 @@ def x(self):
         -------
         Any
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -256,11 +244,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xref(self):
@@ -287,11 +275,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -306,11 +294,11 @@ def y(self):
         -------
         Any
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -325,11 +313,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def yref(self):
@@ -356,11 +344,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -451,27 +439,25 @@ def _prop_descriptions(self):
             refers to the point between the bottom and the top of
             the domain of the second y axis.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        layer=None,
-        name=None,
-        opacity=None,
-        sizex=None,
-        sizey=None,
-        sizing=None,
-        source=None,
-        templateitemname=None,
-        visible=None,
-        x=None,
-        xanchor=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            layer=None,
+            name=None,
+            opacity=None,
+            sizex=None,
+            sizey=None,
+            sizing=None,
+            source=None,
+            templateitemname=None,
+            visible=None,
+            x=None,
+            xanchor=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new Image object
 
@@ -570,9 +556,9 @@ def __init__(
         -------
         Image
         """
-        super().__init__("images")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('images')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -582,30 +568,30 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Image
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Image`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("layer", arg, layer)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("sizex", arg, sizex)
-        self._set_property("sizey", arg, sizey)
-        self._set_property("sizing", arg, sizing)
-        self._set_property("source", arg, source)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.layout.Image`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('layer', arg, layer)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('sizex', arg, sizex)
+        self._set_property('sizey', arg, sizey)
+        self._set_property('sizing', arg, sizing)
+        self._set_property('source', arg, source)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_legend.py b/plotly/graph_objs/layout/_legend.py
index 97daca8c6c7..bf356100f59 100644
--- a/plotly/graph_objs/layout/_legend.py
+++ b/plotly/graph_objs/layout/_legend.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,36 +11,9 @@
 
 class Legend(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.legend"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "entrywidth",
-        "entrywidthmode",
-        "font",
-        "groupclick",
-        "grouptitlefont",
-        "indentation",
-        "itemclick",
-        "itemdoubleclick",
-        "itemsizing",
-        "itemwidth",
-        "orientation",
-        "title",
-        "tracegroupgap",
-        "traceorder",
-        "uirevision",
-        "valign",
-        "visible",
-        "x",
-        "xanchor",
-        "xref",
-        "y",
-        "yanchor",
-        "yref",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.legend'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "entrywidth", "entrywidthmode", "font", "groupclick", "grouptitlefont", "indentation", "itemclick", "itemdoubleclick", "itemsizing", "itemwidth", "orientation", "title", "tracegroupgap", "traceorder", "uirevision", "valign", "visible", "x", "xanchor", "xref", "y", "yanchor", "yref"}
 
     @property
     def bgcolor(self):
@@ -55,11 +32,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -77,11 +54,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -95,11 +72,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def entrywidth(self):
@@ -115,11 +92,11 @@ def entrywidth(self):
         -------
         int|float
         """
-        return self["entrywidth"]
+        return self['entrywidth']
 
     @entrywidth.setter
     def entrywidth(self, val):
-        self["entrywidth"] = val
+        self['entrywidth'] = val
 
     @property
     def entrywidthmode(self):
@@ -134,11 +111,11 @@ def entrywidthmode(self):
         -------
         Any
         """
-        return self["entrywidthmode"]
+        return self['entrywidthmode']
 
     @entrywidthmode.setter
     def entrywidthmode(self, val):
-        self["entrywidthmode"] = val
+        self['entrywidthmode'] = val
 
     @property
     def font(self):
@@ -155,11 +132,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.legend.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def groupclick(self):
@@ -178,11 +155,11 @@ def groupclick(self):
         -------
         Any
         """
-        return self["groupclick"]
+        return self['groupclick']
 
     @groupclick.setter
     def groupclick(self, val):
-        self["groupclick"] = val
+        self['groupclick'] = val
 
     @property
     def grouptitlefont(self):
@@ -200,11 +177,11 @@ def grouptitlefont(self):
         -------
         plotly.graph_objs.layout.legend.Grouptitlefont
         """
-        return self["grouptitlefont"]
+        return self['grouptitlefont']
 
     @grouptitlefont.setter
     def grouptitlefont(self, val):
-        self["grouptitlefont"] = val
+        self['grouptitlefont'] = val
 
     @property
     def indentation(self):
@@ -218,11 +195,11 @@ def indentation(self):
         -------
         int|float
         """
-        return self["indentation"]
+        return self['indentation']
 
     @indentation.setter
     def indentation(self, val):
-        self["indentation"] = val
+        self['indentation'] = val
 
     @property
     def itemclick(self):
@@ -240,11 +217,11 @@ def itemclick(self):
         -------
         Any
         """
-        return self["itemclick"]
+        return self['itemclick']
 
     @itemclick.setter
     def itemclick(self, val):
-        self["itemclick"] = val
+        self['itemclick'] = val
 
     @property
     def itemdoubleclick(self):
@@ -263,11 +240,11 @@ def itemdoubleclick(self):
         -------
         Any
         """
-        return self["itemdoubleclick"]
+        return self['itemdoubleclick']
 
     @itemdoubleclick.setter
     def itemdoubleclick(self, val):
-        self["itemdoubleclick"] = val
+        self['itemdoubleclick'] = val
 
     @property
     def itemsizing(self):
@@ -284,11 +261,11 @@ def itemsizing(self):
         -------
         Any
         """
-        return self["itemsizing"]
+        return self['itemsizing']
 
     @itemsizing.setter
     def itemsizing(self, val):
-        self["itemsizing"] = val
+        self['itemsizing'] = val
 
     @property
     def itemwidth(self):
@@ -303,11 +280,11 @@ def itemwidth(self):
         -------
         int|float
         """
-        return self["itemwidth"]
+        return self['itemwidth']
 
     @itemwidth.setter
     def itemwidth(self, val):
-        self["itemwidth"] = val
+        self['itemwidth'] = val
 
     @property
     def orientation(self):
@@ -322,11 +299,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def title(self):
@@ -341,11 +318,11 @@ def title(self):
         -------
         plotly.graph_objs.layout.legend.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def tracegroupgap(self):
@@ -360,11 +337,11 @@ def tracegroupgap(self):
         -------
         int|float
         """
-        return self["tracegroupgap"]
+        return self['tracegroupgap']
 
     @tracegroupgap.setter
     def tracegroupgap(self, val):
-        self["tracegroupgap"] = val
+        self['tracegroupgap'] = val
 
     @property
     def traceorder(self):
@@ -387,11 +364,11 @@ def traceorder(self):
         -------
         Any
         """
-        return self["traceorder"]
+        return self['traceorder']
 
     @traceorder.setter
     def traceorder(self, val):
-        self["traceorder"] = val
+        self['traceorder'] = val
 
     @property
     def uirevision(self):
@@ -405,11 +382,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def valign(self):
@@ -425,11 +402,11 @@ def valign(self):
         -------
         Any
         """
-        return self["valign"]
+        return self['valign']
 
     @valign.setter
     def valign(self, val):
-        self["valign"] = val
+        self['valign'] = val
 
     @property
     def visible(self):
@@ -443,11 +420,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -467,11 +444,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -491,11 +468,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xref(self):
@@ -512,11 +489,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -537,11 +514,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -561,11 +538,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def yref(self):
@@ -582,11 +559,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -707,38 +684,36 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        entrywidth=None,
-        entrywidthmode=None,
-        font=None,
-        groupclick=None,
-        grouptitlefont=None,
-        indentation=None,
-        itemclick=None,
-        itemdoubleclick=None,
-        itemsizing=None,
-        itemwidth=None,
-        orientation=None,
-        title=None,
-        tracegroupgap=None,
-        traceorder=None,
-        uirevision=None,
-        valign=None,
-        visible=None,
-        x=None,
-        xanchor=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            entrywidth=None,
+            entrywidthmode=None,
+            font=None,
+            groupclick=None,
+            grouptitlefont=None,
+            indentation=None,
+            itemclick=None,
+            itemdoubleclick=None,
+            itemsizing=None,
+            itemwidth=None,
+            orientation=None,
+            title=None,
+            tracegroupgap=None,
+            traceorder=None,
+            uirevision=None,
+            valign=None,
+            visible=None,
+            x=None,
+            xanchor=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new Legend object
 
@@ -867,9 +842,9 @@ def __init__(
         -------
         Legend
         """
-        super().__init__("legend")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legend')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -879,41 +854,41 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Legend
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Legend`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("entrywidth", arg, entrywidth)
-        self._set_property("entrywidthmode", arg, entrywidthmode)
-        self._set_property("font", arg, font)
-        self._set_property("groupclick", arg, groupclick)
-        self._set_property("grouptitlefont", arg, grouptitlefont)
-        self._set_property("indentation", arg, indentation)
-        self._set_property("itemclick", arg, itemclick)
-        self._set_property("itemdoubleclick", arg, itemdoubleclick)
-        self._set_property("itemsizing", arg, itemsizing)
-        self._set_property("itemwidth", arg, itemwidth)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("title", arg, title)
-        self._set_property("tracegroupgap", arg, tracegroupgap)
-        self._set_property("traceorder", arg, traceorder)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("valign", arg, valign)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.layout.Legend`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('entrywidth', arg, entrywidth)
+        self._set_property('entrywidthmode', arg, entrywidthmode)
+        self._set_property('font', arg, font)
+        self._set_property('groupclick', arg, groupclick)
+        self._set_property('grouptitlefont', arg, grouptitlefont)
+        self._set_property('indentation', arg, indentation)
+        self._set_property('itemclick', arg, itemclick)
+        self._set_property('itemdoubleclick', arg, itemdoubleclick)
+        self._set_property('itemsizing', arg, itemsizing)
+        self._set_property('itemwidth', arg, itemwidth)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('title', arg, title)
+        self._set_property('tracegroupgap', arg, tracegroupgap)
+        self._set_property('traceorder', arg, traceorder)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('valign', arg, valign)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_map.py b/plotly/graph_objs/layout/_map.py
index e7860c6b540..0c9386ae132 100644
--- a/plotly/graph_objs/layout/_map.py
+++ b/plotly/graph_objs/layout/_map.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,20 +11,9 @@
 
 class Map(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.map"
-    _valid_props = {
-        "bearing",
-        "bounds",
-        "center",
-        "domain",
-        "layerdefaults",
-        "layers",
-        "pitch",
-        "style",
-        "uirevision",
-        "zoom",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.map'
+    _valid_props = {"bearing", "bounds", "center", "domain", "layerdefaults", "layers", "pitch", "style", "uirevision", "zoom"}
 
     @property
     def bearing(self):
@@ -35,11 +28,11 @@ def bearing(self):
         -------
         int|float
         """
-        return self["bearing"]
+        return self['bearing']
 
     @bearing.setter
     def bearing(self, val):
-        self["bearing"] = val
+        self['bearing'] = val
 
     @property
     def bounds(self):
@@ -54,11 +47,11 @@ def bounds(self):
         -------
         plotly.graph_objs.layout.map.Bounds
         """
-        return self["bounds"]
+        return self['bounds']
 
     @bounds.setter
     def bounds(self, val):
-        self["bounds"] = val
+        self['bounds'] = val
 
     @property
     def center(self):
@@ -73,11 +66,11 @@ def center(self):
         -------
         plotly.graph_objs.layout.map.Center
         """
-        return self["center"]
+        return self['center']
 
     @center.setter
     def center(self, val):
-        self["center"] = val
+        self['center'] = val
 
     @property
     def domain(self):
@@ -92,11 +85,11 @@ def domain(self):
         -------
         plotly.graph_objs.layout.map.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def layers(self):
@@ -111,11 +104,11 @@ def layers(self):
         -------
         tuple[plotly.graph_objs.layout.map.Layer]
         """
-        return self["layers"]
+        return self['layers']
 
     @layers.setter
     def layers(self, val):
-        self["layers"] = val
+        self['layers'] = val
 
     @property
     def layerdefaults(self):
@@ -134,11 +127,11 @@ def layerdefaults(self):
         -------
         plotly.graph_objs.layout.map.Layer
         """
-        return self["layerdefaults"]
+        return self['layerdefaults']
 
     @layerdefaults.setter
     def layerdefaults(self, val):
-        self["layerdefaults"] = val
+        self['layerdefaults'] = val
 
     @property
     def pitch(self):
@@ -153,11 +146,11 @@ def pitch(self):
         -------
         int|float
         """
-        return self["pitch"]
+        return self['pitch']
 
     @pitch.setter
     def pitch(self, val):
-        self["pitch"] = val
+        self['pitch'] = val
 
     @property
     def style(self):
@@ -185,11 +178,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def uirevision(self):
@@ -204,11 +197,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def zoom(self):
@@ -222,11 +215,11 @@ def zoom(self):
         -------
         int|float
         """
-        return self["zoom"]
+        return self['zoom']
 
     @zoom.setter
     def zoom(self, val):
-        self["zoom"] = val
+        self['zoom'] = val
 
     @property
     def _prop_descriptions(self):
@@ -281,22 +274,20 @@ def _prop_descriptions(self):
         zoom
             Sets the zoom level of the map (map.zoom).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bearing=None,
-        bounds=None,
-        center=None,
-        domain=None,
-        layers=None,
-        layerdefaults=None,
-        pitch=None,
-        style=None,
-        uirevision=None,
-        zoom=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bearing=None,
+            bounds=None,
+            center=None,
+            domain=None,
+            layers=None,
+            layerdefaults=None,
+            pitch=None,
+            style=None,
+            uirevision=None,
+            zoom=None,
+            **kwargs
+        ):
         """
         Construct a new Map object
 
@@ -359,9 +350,9 @@ def __init__(
         -------
         Map
         """
-        super().__init__("map")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('map')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -371,25 +362,25 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Map
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Map`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bearing", arg, bearing)
-        self._set_property("bounds", arg, bounds)
-        self._set_property("center", arg, center)
-        self._set_property("domain", arg, domain)
-        self._set_property("layers", arg, layers)
-        self._set_property("layerdefaults", arg, layerdefaults)
-        self._set_property("pitch", arg, pitch)
-        self._set_property("style", arg, style)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("zoom", arg, zoom)
+an instance of :class:`plotly.graph_objs.layout.Map`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bearing', arg, bearing)
+        self._set_property('bounds', arg, bounds)
+        self._set_property('center', arg, center)
+        self._set_property('domain', arg, domain)
+        self._set_property('layers', arg, layers)
+        self._set_property('layerdefaults', arg, layerdefaults)
+        self._set_property('pitch', arg, pitch)
+        self._set_property('style', arg, style)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('zoom', arg, zoom)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_mapbox.py b/plotly/graph_objs/layout/_mapbox.py
index 81e4e857612..da86643665f 100644
--- a/plotly/graph_objs/layout/_mapbox.py
+++ b/plotly/graph_objs/layout/_mapbox.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,21 +11,9 @@
 
 class Mapbox(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.mapbox"
-    _valid_props = {
-        "accesstoken",
-        "bearing",
-        "bounds",
-        "center",
-        "domain",
-        "layerdefaults",
-        "layers",
-        "pitch",
-        "style",
-        "uirevision",
-        "zoom",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.mapbox'
+    _valid_props = {"accesstoken", "bearing", "bounds", "center", "domain", "layerdefaults", "layers", "pitch", "style", "uirevision", "zoom"}
 
     @property
     def accesstoken(self):
@@ -40,11 +32,11 @@ def accesstoken(self):
         -------
         str
         """
-        return self["accesstoken"]
+        return self['accesstoken']
 
     @accesstoken.setter
     def accesstoken(self, val):
-        self["accesstoken"] = val
+        self['accesstoken'] = val
 
     @property
     def bearing(self):
@@ -59,11 +51,11 @@ def bearing(self):
         -------
         int|float
         """
-        return self["bearing"]
+        return self['bearing']
 
     @bearing.setter
     def bearing(self, val):
-        self["bearing"] = val
+        self['bearing'] = val
 
     @property
     def bounds(self):
@@ -78,11 +70,11 @@ def bounds(self):
         -------
         plotly.graph_objs.layout.mapbox.Bounds
         """
-        return self["bounds"]
+        return self['bounds']
 
     @bounds.setter
     def bounds(self, val):
-        self["bounds"] = val
+        self['bounds'] = val
 
     @property
     def center(self):
@@ -97,11 +89,11 @@ def center(self):
         -------
         plotly.graph_objs.layout.mapbox.Center
         """
-        return self["center"]
+        return self['center']
 
     @center.setter
     def center(self, val):
-        self["center"] = val
+        self['center'] = val
 
     @property
     def domain(self):
@@ -116,11 +108,11 @@ def domain(self):
         -------
         plotly.graph_objs.layout.mapbox.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def layers(self):
@@ -135,11 +127,11 @@ def layers(self):
         -------
         tuple[plotly.graph_objs.layout.mapbox.Layer]
         """
-        return self["layers"]
+        return self['layers']
 
     @layers.setter
     def layers(self, val):
-        self["layers"] = val
+        self['layers'] = val
 
     @property
     def layerdefaults(self):
@@ -158,11 +150,11 @@ def layerdefaults(self):
         -------
         plotly.graph_objs.layout.mapbox.Layer
         """
-        return self["layerdefaults"]
+        return self['layerdefaults']
 
     @layerdefaults.setter
     def layerdefaults(self, val):
-        self["layerdefaults"] = val
+        self['layerdefaults'] = val
 
     @property
     def pitch(self):
@@ -177,11 +169,11 @@ def pitch(self):
         -------
         int|float
         """
-        return self["pitch"]
+        return self['pitch']
 
     @pitch.setter
     def pitch(self, val):
-        self["pitch"] = val
+        self['pitch'] = val
 
     @property
     def style(self):
@@ -213,11 +205,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def uirevision(self):
@@ -232,11 +224,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def zoom(self):
@@ -250,11 +242,11 @@ def zoom(self):
         -------
         int|float
         """
-        return self["zoom"]
+        return self['zoom']
 
     @zoom.setter
     def zoom(self, val):
-        self["zoom"] = val
+        self['zoom'] = val
 
     @property
     def _prop_descriptions(self):
@@ -324,23 +316,21 @@ def _prop_descriptions(self):
         zoom
             Sets the zoom level of the map (mapbox.zoom).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        accesstoken=None,
-        bearing=None,
-        bounds=None,
-        center=None,
-        domain=None,
-        layers=None,
-        layerdefaults=None,
-        pitch=None,
-        style=None,
-        uirevision=None,
-        zoom=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            accesstoken=None,
+            bearing=None,
+            bounds=None,
+            center=None,
+            domain=None,
+            layers=None,
+            layerdefaults=None,
+            pitch=None,
+            style=None,
+            uirevision=None,
+            zoom=None,
+            **kwargs
+        ):
         """
         Construct a new Mapbox object
 
@@ -418,9 +408,9 @@ def __init__(
         -------
         Mapbox
         """
-        super().__init__("mapbox")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('mapbox')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -430,26 +420,26 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Mapbox
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Mapbox`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("accesstoken", arg, accesstoken)
-        self._set_property("bearing", arg, bearing)
-        self._set_property("bounds", arg, bounds)
-        self._set_property("center", arg, center)
-        self._set_property("domain", arg, domain)
-        self._set_property("layers", arg, layers)
-        self._set_property("layerdefaults", arg, layerdefaults)
-        self._set_property("pitch", arg, pitch)
-        self._set_property("style", arg, style)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("zoom", arg, zoom)
+an instance of :class:`plotly.graph_objs.layout.Mapbox`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('accesstoken', arg, accesstoken)
+        self._set_property('bearing', arg, bearing)
+        self._set_property('bounds', arg, bounds)
+        self._set_property('center', arg, center)
+        self._set_property('domain', arg, domain)
+        self._set_property('layers', arg, layers)
+        self._set_property('layerdefaults', arg, layerdefaults)
+        self._set_property('pitch', arg, pitch)
+        self._set_property('style', arg, style)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('zoom', arg, zoom)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_margin.py b/plotly/graph_objs/layout/_margin.py
index c82b0fd520a..52757e25bb7 100644
--- a/plotly/graph_objs/layout/_margin.py
+++ b/plotly/graph_objs/layout/_margin.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Margin(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.margin"
+    _parent_path_str = 'layout'
+    _path_str = 'layout.margin'
     _valid_props = {"autoexpand", "b", "l", "pad", "r", "t"}
 
     @property
@@ -25,11 +29,11 @@ def autoexpand(self):
         -------
         bool
         """
-        return self["autoexpand"]
+        return self['autoexpand']
 
     @autoexpand.setter
     def autoexpand(self, val):
-        self["autoexpand"] = val
+        self['autoexpand'] = val
 
     @property
     def b(self):
@@ -43,11 +47,11 @@ def b(self):
         -------
         int|float
         """
-        return self["b"]
+        return self['b']
 
     @b.setter
     def b(self, val):
-        self["b"] = val
+        self['b'] = val
 
     @property
     def l(self):
@@ -61,11 +65,11 @@ def l(self):
         -------
         int|float
         """
-        return self["l"]
+        return self['l']
 
     @l.setter
     def l(self, val):
-        self["l"] = val
+        self['l'] = val
 
     @property
     def pad(self):
@@ -80,11 +84,11 @@ def pad(self):
         -------
         int|float
         """
-        return self["pad"]
+        return self['pad']
 
     @pad.setter
     def pad(self, val):
-        self["pad"] = val
+        self['pad'] = val
 
     @property
     def r(self):
@@ -98,11 +102,11 @@ def r(self):
         -------
         int|float
         """
-        return self["r"]
+        return self['r']
 
     @r.setter
     def r(self, val):
-        self["r"] = val
+        self['r'] = val
 
     @property
     def t(self):
@@ -116,11 +120,11 @@ def t(self):
         -------
         int|float
         """
-        return self["t"]
+        return self['t']
 
     @t.setter
     def t(self, val):
-        self["t"] = val
+        self['t'] = val
 
     @property
     def _prop_descriptions(self):
@@ -142,18 +146,16 @@ def _prop_descriptions(self):
         t
             Sets the top margin (in px).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autoexpand=None,
-        b=None,
-        l=None,
-        pad=None,
-        r=None,
-        t=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autoexpand=None,
+            b=None,
+            l=None,
+            pad=None,
+            r=None,
+            t=None,
+            **kwargs
+        ):
         """
         Construct a new Margin object
 
@@ -183,9 +185,9 @@ def __init__(
         -------
         Margin
         """
-        super().__init__("margin")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('margin')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -195,21 +197,21 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Margin
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Margin`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autoexpand", arg, autoexpand)
-        self._set_property("b", arg, b)
-        self._set_property("l", arg, l)
-        self._set_property("pad", arg, pad)
-        self._set_property("r", arg, r)
-        self._set_property("t", arg, t)
+an instance of :class:`plotly.graph_objs.layout.Margin`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autoexpand', arg, autoexpand)
+        self._set_property('b', arg, b)
+        self._set_property('l', arg, l)
+        self._set_property('pad', arg, pad)
+        self._set_property('r', arg, r)
+        self._set_property('t', arg, t)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_modebar.py b/plotly/graph_objs/layout/_modebar.py
index 53e8580b05a..f61d0d37858 100644
--- a/plotly/graph_objs/layout/_modebar.py
+++ b/plotly/graph_objs/layout/_modebar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Modebar(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.modebar"
-    _valid_props = {
-        "activecolor",
-        "add",
-        "addsrc",
-        "bgcolor",
-        "color",
-        "orientation",
-        "remove",
-        "removesrc",
-        "uirevision",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.modebar'
+    _valid_props = {"activecolor", "add", "addsrc", "bgcolor", "color", "orientation", "remove", "removesrc", "uirevision"}
 
     @property
     def activecolor(self):
@@ -38,11 +32,11 @@ def activecolor(self):
         -------
         str
         """
-        return self["activecolor"]
+        return self['activecolor']
 
     @activecolor.setter
     def activecolor(self, val):
-        self["activecolor"] = val
+        self['activecolor'] = val
 
     @property
     def add(self):
@@ -64,11 +58,11 @@ def add(self):
         -------
         str|numpy.ndarray
         """
-        return self["add"]
+        return self['add']
 
     @add.setter
     def add(self, val):
-        self["add"] = val
+        self['add'] = val
 
     @property
     def addsrc(self):
@@ -82,11 +76,11 @@ def addsrc(self):
         -------
         str
         """
-        return self["addsrc"]
+        return self['addsrc']
 
     @addsrc.setter
     def addsrc(self, val):
-        self["addsrc"] = val
+        self['addsrc'] = val
 
     @property
     def bgcolor(self):
@@ -104,11 +98,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def color(self):
@@ -126,11 +120,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def orientation(self):
@@ -145,11 +139,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def remove(self):
@@ -180,11 +174,11 @@ def remove(self):
         -------
         str|numpy.ndarray
         """
-        return self["remove"]
+        return self['remove']
 
     @remove.setter
     def remove(self, val):
-        self["remove"] = val
+        self['remove'] = val
 
     @property
     def removesrc(self):
@@ -198,11 +192,11 @@ def removesrc(self):
         -------
         str
         """
-        return self["removesrc"]
+        return self['removesrc']
 
     @removesrc.setter
     def removesrc(self, val):
-        self["removesrc"] = val
+        self['removesrc'] = val
 
     @property
     def uirevision(self):
@@ -218,11 +212,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def _prop_descriptions(self):
@@ -277,21 +271,19 @@ def _prop_descriptions(self):
             `showspikes` at both the root level and inside
             subplots. Defaults to `layout.uirevision`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        activecolor=None,
-        add=None,
-        addsrc=None,
-        bgcolor=None,
-        color=None,
-        orientation=None,
-        remove=None,
-        removesrc=None,
-        uirevision=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            activecolor=None,
+            add=None,
+            addsrc=None,
+            bgcolor=None,
+            color=None,
+            orientation=None,
+            remove=None,
+            removesrc=None,
+            uirevision=None,
+            **kwargs
+        ):
         """
         Construct a new Modebar object
 
@@ -355,9 +347,9 @@ def __init__(
         -------
         Modebar
         """
-        super().__init__("modebar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('modebar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -367,24 +359,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Modebar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Modebar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("activecolor", arg, activecolor)
-        self._set_property("add", arg, add)
-        self._set_property("addsrc", arg, addsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("color", arg, color)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("remove", arg, remove)
-        self._set_property("removesrc", arg, removesrc)
-        self._set_property("uirevision", arg, uirevision)
+an instance of :class:`plotly.graph_objs.layout.Modebar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('activecolor', arg, activecolor)
+        self._set_property('add', arg, add)
+        self._set_property('addsrc', arg, addsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('color', arg, color)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('remove', arg, remove)
+        self._set_property('removesrc', arg, removesrc)
+        self._set_property('uirevision', arg, uirevision)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_newselection.py b/plotly/graph_objs/layout/_newselection.py
index c60e111e7ec..18a011a3fa1 100644
--- a/plotly/graph_objs/layout/_newselection.py
+++ b/plotly/graph_objs/layout/_newselection.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Newselection(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.newselection"
+    _parent_path_str = 'layout'
+    _path_str = 'layout.newselection'
     _valid_props = {"line", "mode"}
 
     @property
@@ -24,11 +28,11 @@ def line(self):
         -------
         plotly.graph_objs.layout.newselection.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def mode(self):
@@ -47,11 +51,11 @@ def mode(self):
         -------
         Any
         """
-        return self["mode"]
+        return self['mode']
 
     @mode.setter
     def mode(self, val):
-        self["mode"] = val
+        self['mode'] = val
 
     @property
     def _prop_descriptions(self):
@@ -67,8 +71,12 @@ def _prop_descriptions(self):
             the initial selection, this option allows declaring
             extra outlines of the selection.
         """
-
-    def __init__(self, arg=None, line=None, mode=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            line=None,
+            mode=None,
+            **kwargs
+        ):
         """
         Construct a new Newselection object
 
@@ -93,9 +101,9 @@ def __init__(self, arg=None, line=None, mode=None, **kwargs):
         -------
         Newselection
         """
-        super().__init__("newselection")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('newselection')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -105,17 +113,17 @@ def __init__(self, arg=None, line=None, mode=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Newselection
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Newselection`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.Newselection`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("line", arg, line)
-        self._set_property("mode", arg, mode)
+        self._set_property('line', arg, line)
+        self._set_property('mode', arg, mode)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_newshape.py b/plotly/graph_objs/layout/_newshape.py
index 8d3cf755826..ebc31b164eb 100644
--- a/plotly/graph_objs/layout/_newshape.py
+++ b/plotly/graph_objs/layout/_newshape.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,25 +11,9 @@
 
 class Newshape(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.newshape"
-    _valid_props = {
-        "drawdirection",
-        "fillcolor",
-        "fillrule",
-        "label",
-        "layer",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "name",
-        "opacity",
-        "showlegend",
-        "visible",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.newshape'
+    _valid_props = {"drawdirection", "fillcolor", "fillrule", "label", "layer", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "name", "opacity", "showlegend", "visible"}
 
     @property
     def drawdirection(self):
@@ -45,11 +33,11 @@ def drawdirection(self):
         -------
         Any
         """
-        return self["drawdirection"]
+        return self['drawdirection']
 
     @drawdirection.setter
     def drawdirection(self, val):
-        self["drawdirection"] = val
+        self['drawdirection'] = val
 
     @property
     def fillcolor(self):
@@ -70,11 +58,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def fillrule(self):
@@ -91,11 +79,11 @@ def fillrule(self):
         -------
         Any
         """
-        return self["fillrule"]
+        return self['fillrule']
 
     @fillrule.setter
     def fillrule(self, val):
-        self["fillrule"] = val
+        self['fillrule'] = val
 
     @property
     def label(self):
@@ -110,11 +98,11 @@ def label(self):
         -------
         plotly.graph_objs.layout.newshape.Label
         """
-        return self["label"]
+        return self['label']
 
     @label.setter
     def label(self, val):
-        self["label"] = val
+        self['label'] = val
 
     @property
     def layer(self):
@@ -131,11 +119,11 @@ def layer(self):
         -------
         Any
         """
-        return self["layer"]
+        return self['layer']
 
     @layer.setter
     def layer(self, val):
-        self["layer"] = val
+        self['layer'] = val
 
     @property
     def legend(self):
@@ -154,11 +142,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -175,11 +163,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -194,11 +182,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.layout.newshape.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -217,11 +205,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -235,11 +223,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -254,11 +242,11 @@ def line(self):
         -------
         plotly.graph_objs.layout.newshape.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def name(self):
@@ -273,11 +261,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -291,11 +279,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def showlegend(self):
@@ -309,11 +297,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def visible(self):
@@ -330,11 +318,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -405,27 +393,25 @@ def _prop_descriptions(self):
             a legend item (provided that the legend itself is
             visible).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        drawdirection=None,
-        fillcolor=None,
-        fillrule=None,
-        label=None,
-        layer=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        name=None,
-        opacity=None,
-        showlegend=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            drawdirection=None,
+            fillcolor=None,
+            fillrule=None,
+            label=None,
+            layer=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            name=None,
+            opacity=None,
+            showlegend=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Newshape object
 
@@ -505,9 +491,9 @@ def __init__(
         -------
         Newshape
         """
-        super().__init__("newshape")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('newshape')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -517,30 +503,30 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Newshape
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Newshape`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("drawdirection", arg, drawdirection)
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("fillrule", arg, fillrule)
-        self._set_property("label", arg, label)
-        self._set_property("layer", arg, layer)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("visible", arg, visible)
+an instance of :class:`plotly.graph_objs.layout.Newshape`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('drawdirection', arg, drawdirection)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('fillrule', arg, fillrule)
+        self._set_property('label', arg, label)
+        self._set_property('layer', arg, layer)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_polar.py b/plotly/graph_objs/layout/_polar.py
index 043f9ce2c70..77413f4dc43 100644
--- a/plotly/graph_objs/layout/_polar.py
+++ b/plotly/graph_objs/layout/_polar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,20 +11,9 @@
 
 class Polar(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.polar"
-    _valid_props = {
-        "angularaxis",
-        "bargap",
-        "barmode",
-        "bgcolor",
-        "domain",
-        "gridshape",
-        "hole",
-        "radialaxis",
-        "sector",
-        "uirevision",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.polar'
+    _valid_props = {"angularaxis", "bargap", "barmode", "bgcolor", "domain", "gridshape", "hole", "radialaxis", "sector", "uirevision"}
 
     @property
     def angularaxis(self):
@@ -35,11 +28,11 @@ def angularaxis(self):
         -------
         plotly.graph_objs.layout.polar.AngularAxis
         """
-        return self["angularaxis"]
+        return self['angularaxis']
 
     @angularaxis.setter
     def angularaxis(self, val):
-        self["angularaxis"] = val
+        self['angularaxis'] = val
 
     @property
     def bargap(self):
@@ -55,11 +48,11 @@ def bargap(self):
         -------
         int|float
         """
-        return self["bargap"]
+        return self['bargap']
 
     @bargap.setter
     def bargap(self, val):
-        self["bargap"] = val
+        self['bargap'] = val
 
     @property
     def barmode(self):
@@ -78,11 +71,11 @@ def barmode(self):
         -------
         Any
         """
-        return self["barmode"]
+        return self['barmode']
 
     @barmode.setter
     def barmode(self, val):
-        self["barmode"] = val
+        self['barmode'] = val
 
     @property
     def bgcolor(self):
@@ -100,11 +93,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def domain(self):
@@ -119,11 +112,11 @@ def domain(self):
         -------
         plotly.graph_objs.layout.polar.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def gridshape(self):
@@ -143,11 +136,11 @@ def gridshape(self):
         -------
         Any
         """
-        return self["gridshape"]
+        return self['gridshape']
 
     @gridshape.setter
     def gridshape(self, val):
-        self["gridshape"] = val
+        self['gridshape'] = val
 
     @property
     def hole(self):
@@ -162,11 +155,11 @@ def hole(self):
         -------
         int|float
         """
-        return self["hole"]
+        return self['hole']
 
     @hole.setter
     def hole(self, val):
-        self["hole"] = val
+        self['hole'] = val
 
     @property
     def radialaxis(self):
@@ -181,37 +174,37 @@ def radialaxis(self):
         -------
         plotly.graph_objs.layout.polar.RadialAxis
         """
-        return self["radialaxis"]
+        return self['radialaxis']
 
     @radialaxis.setter
     def radialaxis(self, val):
-        self["radialaxis"] = val
+        self['radialaxis'] = val
 
     @property
     def sector(self):
         """
-            Sets angular span of this polar subplot with two angles (in
-            degrees). Sector are assumed to be spanned in the
-            counterclockwise direction with 0 corresponding to rightmost
-            limit of the polar subplot.
-
-            The 'sector' property is an info array that may be specified as:
-
-            * a list or tuple of 2 elements where:
-        (0) The 'sector[0]' property is a number and may be specified as:
-              - An int or float
-        (1) The 'sector[1]' property is a number and may be specified as:
-              - An int or float
-
-            Returns
-            -------
-            list
+        Sets angular span of this polar subplot with two angles (in
+        degrees). Sector are assumed to be spanned in the
+        counterclockwise direction with 0 corresponding to rightmost
+        limit of the polar subplot.
+
+        The 'sector' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'sector[0]' property is a number and may be specified as:
+          - An int or float
+    (1) The 'sector[1]' property is a number and may be specified as:
+          - An int or float
+
+        Returns
+        -------
+        list
         """
-        return self["sector"]
+        return self['sector']
 
     @sector.setter
     def sector(self, val):
-        self["sector"] = val
+        self['sector'] = val
 
     @property
     def uirevision(self):
@@ -226,11 +219,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def _prop_descriptions(self):
@@ -278,22 +271,20 @@ def _prop_descriptions(self):
             attributes, if not overridden in the individual axes.
             Defaults to `layout.uirevision`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        angularaxis=None,
-        bargap=None,
-        barmode=None,
-        bgcolor=None,
-        domain=None,
-        gridshape=None,
-        hole=None,
-        radialaxis=None,
-        sector=None,
-        uirevision=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            angularaxis=None,
+            bargap=None,
+            barmode=None,
+            bgcolor=None,
+            domain=None,
+            gridshape=None,
+            hole=None,
+            radialaxis=None,
+            sector=None,
+            uirevision=None,
+            **kwargs
+        ):
         """
         Construct a new Polar object
 
@@ -349,9 +340,9 @@ def __init__(
         -------
         Polar
         """
-        super().__init__("polar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('polar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -361,25 +352,25 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Polar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Polar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("angularaxis", arg, angularaxis)
-        self._set_property("bargap", arg, bargap)
-        self._set_property("barmode", arg, barmode)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("domain", arg, domain)
-        self._set_property("gridshape", arg, gridshape)
-        self._set_property("hole", arg, hole)
-        self._set_property("radialaxis", arg, radialaxis)
-        self._set_property("sector", arg, sector)
-        self._set_property("uirevision", arg, uirevision)
+an instance of :class:`plotly.graph_objs.layout.Polar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('angularaxis', arg, angularaxis)
+        self._set_property('bargap', arg, bargap)
+        self._set_property('barmode', arg, barmode)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('domain', arg, domain)
+        self._set_property('gridshape', arg, gridshape)
+        self._set_property('hole', arg, hole)
+        self._set_property('radialaxis', arg, radialaxis)
+        self._set_property('sector', arg, sector)
+        self._set_property('uirevision', arg, uirevision)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_scene.py b/plotly/graph_objs/layout/_scene.py
index 6d5fc00ccc9..0bd8efae813 100644
--- a/plotly/graph_objs/layout/_scene.py
+++ b/plotly/graph_objs/layout/_scene.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,23 +11,9 @@
 
 class Scene(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.scene"
-    _valid_props = {
-        "annotationdefaults",
-        "annotations",
-        "aspectmode",
-        "aspectratio",
-        "bgcolor",
-        "camera",
-        "domain",
-        "dragmode",
-        "hovermode",
-        "uirevision",
-        "xaxis",
-        "yaxis",
-        "zaxis",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.scene'
+    _valid_props = {"annotationdefaults", "annotations", "aspectmode", "aspectratio", "bgcolor", "camera", "domain", "dragmode", "hovermode", "uirevision", "xaxis", "yaxis", "zaxis"}
 
     @property
     def annotations(self):
@@ -38,11 +28,11 @@ def annotations(self):
         -------
         tuple[plotly.graph_objs.layout.scene.Annotation]
         """
-        return self["annotations"]
+        return self['annotations']
 
     @annotations.setter
     def annotations(self, val):
-        self["annotations"] = val
+        self['annotations'] = val
 
     @property
     def annotationdefaults(self):
@@ -62,11 +52,11 @@ def annotationdefaults(self):
         -------
         plotly.graph_objs.layout.scene.Annotation
         """
-        return self["annotationdefaults"]
+        return self['annotationdefaults']
 
     @annotationdefaults.setter
     def annotationdefaults(self, val):
-        self["annotationdefaults"] = val
+        self['annotationdefaults'] = val
 
     @property
     def aspectmode(self):
@@ -88,11 +78,11 @@ def aspectmode(self):
         -------
         Any
         """
-        return self["aspectmode"]
+        return self['aspectmode']
 
     @aspectmode.setter
     def aspectmode(self, val):
-        self["aspectmode"] = val
+        self['aspectmode'] = val
 
     @property
     def aspectratio(self):
@@ -109,11 +99,11 @@ def aspectratio(self):
         -------
         plotly.graph_objs.layout.scene.Aspectratio
         """
-        return self["aspectratio"]
+        return self['aspectratio']
 
     @aspectratio.setter
     def aspectratio(self, val):
-        self["aspectratio"] = val
+        self['aspectratio'] = val
 
     @property
     def bgcolor(self):
@@ -129,11 +119,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def camera(self):
@@ -148,11 +138,11 @@ def camera(self):
         -------
         plotly.graph_objs.layout.scene.Camera
         """
-        return self["camera"]
+        return self['camera']
 
     @camera.setter
     def camera(self, val):
-        self["camera"] = val
+        self['camera'] = val
 
     @property
     def domain(self):
@@ -167,11 +157,11 @@ def domain(self):
         -------
         plotly.graph_objs.layout.scene.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def dragmode(self):
@@ -186,11 +176,11 @@ def dragmode(self):
         -------
         Any
         """
-        return self["dragmode"]
+        return self['dragmode']
 
     @dragmode.setter
     def dragmode(self, val):
-        self["dragmode"] = val
+        self['dragmode'] = val
 
     @property
     def hovermode(self):
@@ -205,11 +195,11 @@ def hovermode(self):
         -------
         Any
         """
-        return self["hovermode"]
+        return self['hovermode']
 
     @hovermode.setter
     def hovermode(self, val):
-        self["hovermode"] = val
+        self['hovermode'] = val
 
     @property
     def uirevision(self):
@@ -223,11 +213,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def xaxis(self):
@@ -242,11 +232,11 @@ def xaxis(self):
         -------
         plotly.graph_objs.layout.scene.XAxis
         """
-        return self["xaxis"]
+        return self['xaxis']
 
     @xaxis.setter
     def xaxis(self, val):
-        self["xaxis"] = val
+        self['xaxis'] = val
 
     @property
     def yaxis(self):
@@ -261,11 +251,11 @@ def yaxis(self):
         -------
         plotly.graph_objs.layout.scene.YAxis
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def zaxis(self):
@@ -280,11 +270,11 @@ def zaxis(self):
         -------
         plotly.graph_objs.layout.scene.ZAxis
         """
-        return self["zaxis"]
+        return self['zaxis']
 
     @zaxis.setter
     def zaxis(self, val):
-        self["zaxis"] = val
+        self['zaxis'] = val
 
     @property
     def _prop_descriptions(self):
@@ -338,25 +328,23 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.layout.scene.ZAxis`
             instance or dict with compatible properties
         """
-
-    def __init__(
-        self,
-        arg=None,
-        annotations=None,
-        annotationdefaults=None,
-        aspectmode=None,
-        aspectratio=None,
-        bgcolor=None,
-        camera=None,
-        domain=None,
-        dragmode=None,
-        hovermode=None,
-        uirevision=None,
-        xaxis=None,
-        yaxis=None,
-        zaxis=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            annotations=None,
+            annotationdefaults=None,
+            aspectmode=None,
+            aspectratio=None,
+            bgcolor=None,
+            camera=None,
+            domain=None,
+            dragmode=None,
+            hovermode=None,
+            uirevision=None,
+            xaxis=None,
+            yaxis=None,
+            zaxis=None,
+            **kwargs
+        ):
         """
         Construct a new Scene object
 
@@ -418,9 +406,9 @@ def __init__(
         -------
         Scene
         """
-        super().__init__("scene")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('scene')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -430,28 +418,28 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Scene
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Scene`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("annotations", arg, annotations)
-        self._set_property("annotationdefaults", arg, annotationdefaults)
-        self._set_property("aspectmode", arg, aspectmode)
-        self._set_property("aspectratio", arg, aspectratio)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("camera", arg, camera)
-        self._set_property("domain", arg, domain)
-        self._set_property("dragmode", arg, dragmode)
-        self._set_property("hovermode", arg, hovermode)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("xaxis", arg, xaxis)
-        self._set_property("yaxis", arg, yaxis)
-        self._set_property("zaxis", arg, zaxis)
+an instance of :class:`plotly.graph_objs.layout.Scene`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('annotations', arg, annotations)
+        self._set_property('annotationdefaults', arg, annotationdefaults)
+        self._set_property('aspectmode', arg, aspectmode)
+        self._set_property('aspectratio', arg, aspectratio)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('camera', arg, camera)
+        self._set_property('domain', arg, domain)
+        self._set_property('dragmode', arg, dragmode)
+        self._set_property('hovermode', arg, hovermode)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('xaxis', arg, xaxis)
+        self._set_property('yaxis', arg, yaxis)
+        self._set_property('zaxis', arg, zaxis)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_selection.py b/plotly/graph_objs/layout/_selection.py
index d01ea200d7c..5a12fd2c334 100644
--- a/plotly/graph_objs/layout/_selection.py
+++ b/plotly/graph_objs/layout/_selection.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Selection(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.selection"
-    _valid_props = {
-        "line",
-        "name",
-        "opacity",
-        "path",
-        "templateitemname",
-        "type",
-        "x0",
-        "x1",
-        "xref",
-        "y0",
-        "y1",
-        "yref",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.selection'
+    _valid_props = {"line", "name", "opacity", "path", "templateitemname", "type", "x0", "x1", "xref", "y0", "y1", "yref"}
 
     @property
     def line(self):
@@ -37,11 +28,11 @@ def line(self):
         -------
         plotly.graph_objs.layout.selection.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def name(self):
@@ -62,11 +53,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -80,11 +71,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def path(self):
@@ -100,11 +91,11 @@ def path(self):
         -------
         str
         """
-        return self["path"]
+        return self['path']
 
     @path.setter
     def path(self, val):
-        self["path"] = val
+        self['path'] = val
 
     @property
     def templateitemname(self):
@@ -126,11 +117,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def type(self):
@@ -148,11 +139,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def x0(self):
@@ -165,11 +156,11 @@ def x0(self):
         -------
         Any
         """
-        return self["x0"]
+        return self['x0']
 
     @x0.setter
     def x0(self, val):
-        self["x0"] = val
+        self['x0'] = val
 
     @property
     def x1(self):
@@ -182,11 +173,11 @@ def x1(self):
         -------
         Any
         """
-        return self["x1"]
+        return self['x1']
 
     @x1.setter
     def x1(self, val):
-        self["x1"] = val
+        self['x1'] = val
 
     @property
     def xref(self):
@@ -213,11 +204,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y0(self):
@@ -230,11 +221,11 @@ def y0(self):
         -------
         Any
         """
-        return self["y0"]
+        return self['y0']
 
     @y0.setter
     def y0(self, val):
-        self["y0"] = val
+        self['y0'] = val
 
     @property
     def y1(self):
@@ -247,11 +238,11 @@ def y1(self):
         -------
         Any
         """
-        return self["y1"]
+        return self['y1']
 
     @y1.setter
     def y1(self, val):
-        self["y1"] = val
+        self['y1'] = val
 
     @property
     def yref(self):
@@ -278,11 +269,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -357,24 +348,22 @@ def _prop_descriptions(self):
             refers to the point between the bottom and the top of
             the domain of the second y axis.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        line=None,
-        name=None,
-        opacity=None,
-        path=None,
-        templateitemname=None,
-        type=None,
-        x0=None,
-        x1=None,
-        xref=None,
-        y0=None,
-        y1=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            line=None,
+            name=None,
+            opacity=None,
+            path=None,
+            templateitemname=None,
+            type=None,
+            x0=None,
+            x1=None,
+            xref=None,
+            y0=None,
+            y1=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new Selection object
 
@@ -458,9 +447,9 @@ def __init__(
         -------
         Selection
         """
-        super().__init__("selections")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selections')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -470,27 +459,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Selection
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Selection`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("line", arg, line)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("path", arg, path)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("type", arg, type)
-        self._set_property("x0", arg, x0)
-        self._set_property("x1", arg, x1)
-        self._set_property("xref", arg, xref)
-        self._set_property("y0", arg, y0)
-        self._set_property("y1", arg, y1)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.layout.Selection`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('line', arg, line)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('path', arg, path)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('type', arg, type)
+        self._set_property('x0', arg, x0)
+        self._set_property('x1', arg, x1)
+        self._set_property('xref', arg, xref)
+        self._set_property('y0', arg, y0)
+        self._set_property('y1', arg, y1)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_shape.py b/plotly/graph_objs/layout/_shape.py
index b95ee536394..1e61965b8ba 100644
--- a/plotly/graph_objs/layout/_shape.py
+++ b/plotly/graph_objs/layout/_shape.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,42 +11,9 @@
 
 class Shape(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.shape"
-    _valid_props = {
-        "editable",
-        "fillcolor",
-        "fillrule",
-        "label",
-        "layer",
-        "legend",
-        "legendgroup",
-        "legendgrouptitle",
-        "legendrank",
-        "legendwidth",
-        "line",
-        "name",
-        "opacity",
-        "path",
-        "showlegend",
-        "templateitemname",
-        "type",
-        "visible",
-        "x0",
-        "x0shift",
-        "x1",
-        "x1shift",
-        "xanchor",
-        "xref",
-        "xsizemode",
-        "y0",
-        "y0shift",
-        "y1",
-        "y1shift",
-        "yanchor",
-        "yref",
-        "ysizemode",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.shape'
+    _valid_props = {"editable", "fillcolor", "fillrule", "label", "layer", "legend", "legendgroup", "legendgrouptitle", "legendrank", "legendwidth", "line", "name", "opacity", "path", "showlegend", "templateitemname", "type", "visible", "x0", "x0shift", "x1", "x1shift", "xanchor", "xref", "xsizemode", "y0", "y0shift", "y1", "y1shift", "yanchor", "yref", "ysizemode"}
 
     @property
     def editable(self):
@@ -58,11 +29,11 @@ def editable(self):
         -------
         bool
         """
-        return self["editable"]
+        return self['editable']
 
     @editable.setter
     def editable(self, val):
-        self["editable"] = val
+        self['editable'] = val
 
     @property
     def fillcolor(self):
@@ -81,11 +52,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def fillrule(self):
@@ -103,11 +74,11 @@ def fillrule(self):
         -------
         Any
         """
-        return self["fillrule"]
+        return self['fillrule']
 
     @fillrule.setter
     def fillrule(self, val):
-        self["fillrule"] = val
+        self['fillrule'] = val
 
     @property
     def label(self):
@@ -122,11 +93,11 @@ def label(self):
         -------
         plotly.graph_objs.layout.shape.Label
         """
-        return self["label"]
+        return self['label']
 
     @label.setter
     def label(self, val):
-        self["label"] = val
+        self['label'] = val
 
     @property
     def layer(self):
@@ -143,11 +114,11 @@ def layer(self):
         -------
         Any
         """
-        return self["layer"]
+        return self['layer']
 
     @layer.setter
     def layer(self, val):
-        self["layer"] = val
+        self['layer'] = val
 
     @property
     def legend(self):
@@ -166,11 +137,11 @@ def legend(self):
         -------
         str
         """
-        return self["legend"]
+        return self['legend']
 
     @legend.setter
     def legend(self, val):
-        self["legend"] = val
+        self['legend'] = val
 
     @property
     def legendgroup(self):
@@ -187,11 +158,11 @@ def legendgroup(self):
         -------
         str
         """
-        return self["legendgroup"]
+        return self['legendgroup']
 
     @legendgroup.setter
     def legendgroup(self, val):
-        self["legendgroup"] = val
+        self['legendgroup'] = val
 
     @property
     def legendgrouptitle(self):
@@ -206,11 +177,11 @@ def legendgrouptitle(self):
         -------
         plotly.graph_objs.layout.shape.Legendgrouptitle
         """
-        return self["legendgrouptitle"]
+        return self['legendgrouptitle']
 
     @legendgrouptitle.setter
     def legendgrouptitle(self, val):
-        self["legendgrouptitle"] = val
+        self['legendgrouptitle'] = val
 
     @property
     def legendrank(self):
@@ -231,11 +202,11 @@ def legendrank(self):
         -------
         int|float
         """
-        return self["legendrank"]
+        return self['legendrank']
 
     @legendrank.setter
     def legendrank(self, val):
-        self["legendrank"] = val
+        self['legendrank'] = val
 
     @property
     def legendwidth(self):
@@ -250,11 +221,11 @@ def legendwidth(self):
         -------
         int|float
         """
-        return self["legendwidth"]
+        return self['legendwidth']
 
     @legendwidth.setter
     def legendwidth(self, val):
-        self["legendwidth"] = val
+        self['legendwidth'] = val
 
     @property
     def line(self):
@@ -269,11 +240,11 @@ def line(self):
         -------
         plotly.graph_objs.layout.shape.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def name(self):
@@ -294,11 +265,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -312,11 +283,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def path(self):
@@ -349,11 +320,11 @@ def path(self):
         -------
         str
         """
-        return self["path"]
+        return self['path']
 
     @path.setter
     def path(self, val):
-        self["path"] = val
+        self['path'] = val
 
     @property
     def showlegend(self):
@@ -367,11 +338,11 @@ def showlegend(self):
         -------
         bool
         """
-        return self["showlegend"]
+        return self['showlegend']
 
     @showlegend.setter
     def showlegend(self, val):
-        self["showlegend"] = val
+        self['showlegend'] = val
 
     @property
     def templateitemname(self):
@@ -393,11 +364,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def type(self):
@@ -420,11 +391,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def visible(self):
@@ -441,11 +412,11 @@ def visible(self):
         -------
         Any
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x0(self):
@@ -459,11 +430,11 @@ def x0(self):
         -------
         Any
         """
-        return self["x0"]
+        return self['x0']
 
     @x0.setter
     def x0(self, val):
-        self["x0"] = val
+        self['x0'] = val
 
     @property
     def x0shift(self):
@@ -480,11 +451,11 @@ def x0shift(self):
         -------
         int|float
         """
-        return self["x0shift"]
+        return self['x0shift']
 
     @x0shift.setter
     def x0shift(self, val):
-        self["x0shift"] = val
+        self['x0shift'] = val
 
     @property
     def x1(self):
@@ -498,11 +469,11 @@ def x1(self):
         -------
         Any
         """
-        return self["x1"]
+        return self['x1']
 
     @x1.setter
     def x1(self, val):
-        self["x1"] = val
+        self['x1'] = val
 
     @property
     def x1shift(self):
@@ -519,11 +490,11 @@ def x1shift(self):
         -------
         int|float
         """
-        return self["x1shift"]
+        return self['x1shift']
 
     @x1shift.setter
     def x1shift(self, val):
-        self["x1shift"] = val
+        self['x1shift'] = val
 
     @property
     def xanchor(self):
@@ -540,11 +511,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xref(self):
@@ -571,11 +542,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def xsizemode(self):
@@ -597,11 +568,11 @@ def xsizemode(self):
         -------
         Any
         """
-        return self["xsizemode"]
+        return self['xsizemode']
 
     @xsizemode.setter
     def xsizemode(self, val):
-        self["xsizemode"] = val
+        self['xsizemode'] = val
 
     @property
     def y0(self):
@@ -615,11 +586,11 @@ def y0(self):
         -------
         Any
         """
-        return self["y0"]
+        return self['y0']
 
     @y0.setter
     def y0(self, val):
-        self["y0"] = val
+        self['y0'] = val
 
     @property
     def y0shift(self):
@@ -636,11 +607,11 @@ def y0shift(self):
         -------
         int|float
         """
-        return self["y0shift"]
+        return self['y0shift']
 
     @y0shift.setter
     def y0shift(self, val):
-        self["y0shift"] = val
+        self['y0shift'] = val
 
     @property
     def y1(self):
@@ -654,11 +625,11 @@ def y1(self):
         -------
         Any
         """
-        return self["y1"]
+        return self['y1']
 
     @y1.setter
     def y1(self, val):
-        self["y1"] = val
+        self['y1'] = val
 
     @property
     def y1shift(self):
@@ -675,11 +646,11 @@ def y1shift(self):
         -------
         int|float
         """
-        return self["y1shift"]
+        return self['y1shift']
 
     @y1shift.setter
     def y1shift(self, val):
-        self["y1shift"] = val
+        self['y1shift'] = val
 
     @property
     def yanchor(self):
@@ -696,11 +667,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def yref(self):
@@ -727,11 +698,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def ysizemode(self):
@@ -753,11 +724,11 @@ def ysizemode(self):
         -------
         Any
         """
-        return self["ysizemode"]
+        return self['ysizemode']
 
     @ysizemode.setter
     def ysizemode(self, val):
-        self["ysizemode"] = val
+        self['ysizemode'] = val
 
     @property
     def _prop_descriptions(self):
@@ -972,44 +943,42 @@ def _prop_descriptions(self):
             maintaining a position relative to data or plot
             fraction.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        editable=None,
-        fillcolor=None,
-        fillrule=None,
-        label=None,
-        layer=None,
-        legend=None,
-        legendgroup=None,
-        legendgrouptitle=None,
-        legendrank=None,
-        legendwidth=None,
-        line=None,
-        name=None,
-        opacity=None,
-        path=None,
-        showlegend=None,
-        templateitemname=None,
-        type=None,
-        visible=None,
-        x0=None,
-        x0shift=None,
-        x1=None,
-        x1shift=None,
-        xanchor=None,
-        xref=None,
-        xsizemode=None,
-        y0=None,
-        y0shift=None,
-        y1=None,
-        y1shift=None,
-        yanchor=None,
-        yref=None,
-        ysizemode=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            editable=None,
+            fillcolor=None,
+            fillrule=None,
+            label=None,
+            layer=None,
+            legend=None,
+            legendgroup=None,
+            legendgrouptitle=None,
+            legendrank=None,
+            legendwidth=None,
+            line=None,
+            name=None,
+            opacity=None,
+            path=None,
+            showlegend=None,
+            templateitemname=None,
+            type=None,
+            visible=None,
+            x0=None,
+            x0shift=None,
+            x1=None,
+            x1shift=None,
+            xanchor=None,
+            xref=None,
+            xsizemode=None,
+            y0=None,
+            y0shift=None,
+            y1=None,
+            y1shift=None,
+            yanchor=None,
+            yref=None,
+            ysizemode=None,
+            **kwargs
+        ):
         """
         Construct a new Shape object
 
@@ -1232,9 +1201,9 @@ def __init__(
         -------
         Shape
         """
-        super().__init__("shapes")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('shapes')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1244,47 +1213,47 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Shape
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Shape`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("editable", arg, editable)
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("fillrule", arg, fillrule)
-        self._set_property("label", arg, label)
-        self._set_property("layer", arg, layer)
-        self._set_property("legend", arg, legend)
-        self._set_property("legendgroup", arg, legendgroup)
-        self._set_property("legendgrouptitle", arg, legendgrouptitle)
-        self._set_property("legendrank", arg, legendrank)
-        self._set_property("legendwidth", arg, legendwidth)
-        self._set_property("line", arg, line)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("path", arg, path)
-        self._set_property("showlegend", arg, showlegend)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("type", arg, type)
-        self._set_property("visible", arg, visible)
-        self._set_property("x0", arg, x0)
-        self._set_property("x0shift", arg, x0shift)
-        self._set_property("x1", arg, x1)
-        self._set_property("x1shift", arg, x1shift)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xref", arg, xref)
-        self._set_property("xsizemode", arg, xsizemode)
-        self._set_property("y0", arg, y0)
-        self._set_property("y0shift", arg, y0shift)
-        self._set_property("y1", arg, y1)
-        self._set_property("y1shift", arg, y1shift)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("yref", arg, yref)
-        self._set_property("ysizemode", arg, ysizemode)
+an instance of :class:`plotly.graph_objs.layout.Shape`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('editable', arg, editable)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('fillrule', arg, fillrule)
+        self._set_property('label', arg, label)
+        self._set_property('layer', arg, layer)
+        self._set_property('legend', arg, legend)
+        self._set_property('legendgroup', arg, legendgroup)
+        self._set_property('legendgrouptitle', arg, legendgrouptitle)
+        self._set_property('legendrank', arg, legendrank)
+        self._set_property('legendwidth', arg, legendwidth)
+        self._set_property('line', arg, line)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('path', arg, path)
+        self._set_property('showlegend', arg, showlegend)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('type', arg, type)
+        self._set_property('visible', arg, visible)
+        self._set_property('x0', arg, x0)
+        self._set_property('x0shift', arg, x0shift)
+        self._set_property('x1', arg, x1)
+        self._set_property('x1shift', arg, x1shift)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xref', arg, xref)
+        self._set_property('xsizemode', arg, xsizemode)
+        self._set_property('y0', arg, y0)
+        self._set_property('y0shift', arg, y0shift)
+        self._set_property('y1', arg, y1)
+        self._set_property('y1shift', arg, y1shift)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('yref', arg, yref)
+        self._set_property('ysizemode', arg, ysizemode)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_slider.py b/plotly/graph_objs/layout/_slider.py
index 69546f35616..002e265c417 100644
--- a/plotly/graph_objs/layout/_slider.py
+++ b/plotly/graph_objs/layout/_slider.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,34 +11,9 @@
 
 class Slider(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.slider"
-    _valid_props = {
-        "active",
-        "activebgcolor",
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "currentvalue",
-        "font",
-        "len",
-        "lenmode",
-        "minorticklen",
-        "name",
-        "pad",
-        "stepdefaults",
-        "steps",
-        "templateitemname",
-        "tickcolor",
-        "ticklen",
-        "tickwidth",
-        "transition",
-        "visible",
-        "x",
-        "xanchor",
-        "y",
-        "yanchor",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.slider'
+    _valid_props = {"active", "activebgcolor", "bgcolor", "bordercolor", "borderwidth", "currentvalue", "font", "len", "lenmode", "minorticklen", "name", "pad", "stepdefaults", "steps", "templateitemname", "tickcolor", "ticklen", "tickwidth", "transition", "visible", "x", "xanchor", "y", "yanchor"}
 
     @property
     def active(self):
@@ -49,11 +28,11 @@ def active(self):
         -------
         int|float
         """
-        return self["active"]
+        return self['active']
 
     @active.setter
     def active(self, val):
-        self["active"] = val
+        self['active'] = val
 
     @property
     def activebgcolor(self):
@@ -71,11 +50,11 @@ def activebgcolor(self):
         -------
         str
         """
-        return self["activebgcolor"]
+        return self['activebgcolor']
 
     @activebgcolor.setter
     def activebgcolor(self, val):
-        self["activebgcolor"] = val
+        self['activebgcolor'] = val
 
     @property
     def bgcolor(self):
@@ -93,11 +72,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -115,11 +94,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -133,11 +112,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def currentvalue(self):
@@ -152,11 +131,11 @@ def currentvalue(self):
         -------
         plotly.graph_objs.layout.slider.Currentvalue
         """
-        return self["currentvalue"]
+        return self['currentvalue']
 
     @currentvalue.setter
     def currentvalue(self, val):
-        self["currentvalue"] = val
+        self['currentvalue'] = val
 
     @property
     def font(self):
@@ -173,11 +152,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.slider.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def len(self):
@@ -193,11 +172,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -213,11 +192,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minorticklen(self):
@@ -231,11 +210,11 @@ def minorticklen(self):
         -------
         int|float
         """
-        return self["minorticklen"]
+        return self['minorticklen']
 
     @minorticklen.setter
     def minorticklen(self, val):
-        self["minorticklen"] = val
+        self['minorticklen'] = val
 
     @property
     def name(self):
@@ -256,11 +235,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def pad(self):
@@ -277,11 +256,11 @@ def pad(self):
         -------
         plotly.graph_objs.layout.slider.Pad
         """
-        return self["pad"]
+        return self['pad']
 
     @pad.setter
     def pad(self, val):
-        self["pad"] = val
+        self['pad'] = val
 
     @property
     def steps(self):
@@ -296,11 +275,11 @@ def steps(self):
         -------
         tuple[plotly.graph_objs.layout.slider.Step]
         """
-        return self["steps"]
+        return self['steps']
 
     @steps.setter
     def steps(self, val):
-        self["steps"] = val
+        self['steps'] = val
 
     @property
     def stepdefaults(self):
@@ -319,11 +298,11 @@ def stepdefaults(self):
         -------
         plotly.graph_objs.layout.slider.Step
         """
-        return self["stepdefaults"]
+        return self['stepdefaults']
 
     @stepdefaults.setter
     def stepdefaults(self, val):
-        self["stepdefaults"] = val
+        self['stepdefaults'] = val
 
     @property
     def templateitemname(self):
@@ -345,11 +324,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def tickcolor(self):
@@ -367,11 +346,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def ticklen(self):
@@ -385,11 +364,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickwidth(self):
@@ -403,11 +382,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def transition(self):
@@ -422,11 +401,11 @@ def transition(self):
         -------
         plotly.graph_objs.layout.slider.Transition
         """
-        return self["transition"]
+        return self['transition']
 
     @transition.setter
     def transition(self, val):
-        self["transition"] = val
+        self['transition'] = val
 
     @property
     def visible(self):
@@ -440,11 +419,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -458,11 +437,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -479,11 +458,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def y(self):
@@ -497,11 +476,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -518,11 +497,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def _prop_descriptions(self):
@@ -612,36 +591,34 @@ def _prop_descriptions(self):
             binds the `y` position to the "top", "middle" or
             "bottom" of the range selector.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        active=None,
-        activebgcolor=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        currentvalue=None,
-        font=None,
-        len=None,
-        lenmode=None,
-        minorticklen=None,
-        name=None,
-        pad=None,
-        steps=None,
-        stepdefaults=None,
-        templateitemname=None,
-        tickcolor=None,
-        ticklen=None,
-        tickwidth=None,
-        transition=None,
-        visible=None,
-        x=None,
-        xanchor=None,
-        y=None,
-        yanchor=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            active=None,
+            activebgcolor=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            currentvalue=None,
+            font=None,
+            len=None,
+            lenmode=None,
+            minorticklen=None,
+            name=None,
+            pad=None,
+            steps=None,
+            stepdefaults=None,
+            templateitemname=None,
+            tickcolor=None,
+            ticklen=None,
+            tickwidth=None,
+            transition=None,
+            visible=None,
+            x=None,
+            xanchor=None,
+            y=None,
+            yanchor=None,
+            **kwargs
+        ):
         """
         Construct a new Slider object
 
@@ -739,9 +716,9 @@ def __init__(
         -------
         Slider
         """
-        super().__init__("sliders")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('sliders')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -751,39 +728,39 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Slider
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Slider`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("active", arg, active)
-        self._set_property("activebgcolor", arg, activebgcolor)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("currentvalue", arg, currentvalue)
-        self._set_property("font", arg, font)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minorticklen", arg, minorticklen)
-        self._set_property("name", arg, name)
-        self._set_property("pad", arg, pad)
-        self._set_property("steps", arg, steps)
-        self._set_property("stepdefaults", arg, stepdefaults)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("transition", arg, transition)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
+an instance of :class:`plotly.graph_objs.layout.Slider`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('active', arg, active)
+        self._set_property('activebgcolor', arg, activebgcolor)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('currentvalue', arg, currentvalue)
+        self._set_property('font', arg, font)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minorticklen', arg, minorticklen)
+        self._set_property('name', arg, name)
+        self._set_property('pad', arg, pad)
+        self._set_property('steps', arg, steps)
+        self._set_property('stepdefaults', arg, stepdefaults)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('transition', arg, transition)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_smith.py b/plotly/graph_objs/layout/_smith.py
index ad97b2b5c76..cff594d2fb3 100644
--- a/plotly/graph_objs/layout/_smith.py
+++ b/plotly/graph_objs/layout/_smith.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Smith(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.smith"
+    _parent_path_str = 'layout'
+    _path_str = 'layout.smith'
     _valid_props = {"bgcolor", "domain", "imaginaryaxis", "realaxis"}
 
     @property
@@ -27,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def domain(self):
@@ -46,11 +50,11 @@ def domain(self):
         -------
         plotly.graph_objs.layout.smith.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def imaginaryaxis(self):
@@ -65,11 +69,11 @@ def imaginaryaxis(self):
         -------
         plotly.graph_objs.layout.smith.Imaginaryaxis
         """
-        return self["imaginaryaxis"]
+        return self['imaginaryaxis']
 
     @imaginaryaxis.setter
     def imaginaryaxis(self, val):
-        self["imaginaryaxis"] = val
+        self['imaginaryaxis'] = val
 
     @property
     def realaxis(self):
@@ -84,11 +88,11 @@ def realaxis(self):
         -------
         plotly.graph_objs.layout.smith.Realaxis
         """
-        return self["realaxis"]
+        return self['realaxis']
 
     @realaxis.setter
     def realaxis(self, val):
-        self["realaxis"] = val
+        self['realaxis'] = val
 
     @property
     def _prop_descriptions(self):
@@ -105,16 +109,14 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.layout.smith.Realaxis`
             instance or dict with compatible properties
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        domain=None,
-        imaginaryaxis=None,
-        realaxis=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            domain=None,
+            imaginaryaxis=None,
+            realaxis=None,
+            **kwargs
+        ):
         """
         Construct a new Smith object
 
@@ -139,9 +141,9 @@ def __init__(
         -------
         Smith
         """
-        super().__init__("smith")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('smith')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -151,19 +153,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Smith
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Smith`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.Smith`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("domain", arg, domain)
-        self._set_property("imaginaryaxis", arg, imaginaryaxis)
-        self._set_property("realaxis", arg, realaxis)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('domain', arg, domain)
+        self._set_property('imaginaryaxis', arg, imaginaryaxis)
+        self._set_property('realaxis', arg, realaxis)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_template.py b/plotly/graph_objs/layout/_template.py
index c06e5595693..112d0388b15 100644
--- a/plotly/graph_objs/layout/_template.py
+++ b/plotly/graph_objs/layout/_template.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -8,8 +12,8 @@
 
 class Template(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.template"
+    _parent_path_str = 'layout'
+    _path_str = 'layout.template'
     _valid_props = {"data", "layout"}
 
     @property
@@ -25,11 +29,11 @@ def data(self):
         -------
         plotly.graph_objs.layout.template.Data
         """
-        return self["data"]
+        return self['data']
 
     @data.setter
     def data(self, val):
-        self["data"] = val
+        self['data'] = val
 
     @property
     def layout(self):
@@ -44,11 +48,11 @@ def layout(self):
         -------
         plotly.graph_objs.layout.template.Layout
         """
-        return self["layout"]
+        return self['layout']
 
     @layout.setter
     def layout(self, val):
-        self["layout"] = val
+        self['layout'] = val
 
     @property
     def _prop_descriptions(self):
@@ -60,8 +64,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.Layout` instance or dict
             with compatible properties
         """
-
-    def __init__(self, arg=None, data=None, layout=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            data=None,
+            layout=None,
+            **kwargs
+        ):
         """
         Construct a new Template object
 
@@ -102,9 +110,9 @@ def __init__(self, arg=None, data=None, layout=None, **kwargs):
         -------
         Template
         """
-        super().__init__("template")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('template')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -114,15 +122,15 @@ def __init__(self, arg=None, data=None, layout=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Template
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Template`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.Template`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
         # Template.data contains a 'scattermapbox' key, which causes a
         # go.Scattermapbox trace object to be created during validation.
@@ -130,7 +138,7 @@ def __init__(self, arg=None, data=None, layout=None, **kwargs):
         # we suppress deprecation warnings for this line only.
         with warnings.catch_warnings():
             warnings.filterwarnings("ignore", category=DeprecationWarning)
-            self._set_property("data", arg, data)
-        self._set_property("layout", arg, layout)
+            self._set_property('data', arg, data)
+        self._set_property('layout', arg, layout)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_ternary.py b/plotly/graph_objs/layout/_ternary.py
index c99800f394b..c9fb83841cb 100644
--- a/plotly/graph_objs/layout/_ternary.py
+++ b/plotly/graph_objs/layout/_ternary.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Ternary(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.ternary"
+    _parent_path_str = 'layout'
+    _path_str = 'layout.ternary'
     _valid_props = {"aaxis", "baxis", "bgcolor", "caxis", "domain", "sum", "uirevision"}
 
     @property
@@ -24,11 +28,11 @@ def aaxis(self):
         -------
         plotly.graph_objs.layout.ternary.Aaxis
         """
-        return self["aaxis"]
+        return self['aaxis']
 
     @aaxis.setter
     def aaxis(self, val):
-        self["aaxis"] = val
+        self['aaxis'] = val
 
     @property
     def baxis(self):
@@ -43,11 +47,11 @@ def baxis(self):
         -------
         plotly.graph_objs.layout.ternary.Baxis
         """
-        return self["baxis"]
+        return self['baxis']
 
     @baxis.setter
     def baxis(self, val):
-        self["baxis"] = val
+        self['baxis'] = val
 
     @property
     def bgcolor(self):
@@ -65,11 +69,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def caxis(self):
@@ -84,11 +88,11 @@ def caxis(self):
         -------
         plotly.graph_objs.layout.ternary.Caxis
         """
-        return self["caxis"]
+        return self['caxis']
 
     @caxis.setter
     def caxis(self, val):
-        self["caxis"] = val
+        self['caxis'] = val
 
     @property
     def domain(self):
@@ -103,11 +107,11 @@ def domain(self):
         -------
         plotly.graph_objs.layout.ternary.Domain
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def sum(self):
@@ -122,11 +126,11 @@ def sum(self):
         -------
         int|float
         """
-        return self["sum"]
+        return self['sum']
 
     @sum.setter
     def sum(self, val):
-        self["sum"] = val
+        self['sum'] = val
 
     @property
     def uirevision(self):
@@ -141,11 +145,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def _prop_descriptions(self):
@@ -172,19 +176,17 @@ def _prop_descriptions(self):
             `min` and `title`, if not overridden in the individual
             axes. Defaults to `layout.uirevision`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        aaxis=None,
-        baxis=None,
-        bgcolor=None,
-        caxis=None,
-        domain=None,
-        sum=None,
-        uirevision=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            aaxis=None,
+            baxis=None,
+            bgcolor=None,
+            caxis=None,
+            domain=None,
+            sum=None,
+            uirevision=None,
+            **kwargs
+        ):
         """
         Construct a new Ternary object
 
@@ -220,9 +222,9 @@ def __init__(
         -------
         Ternary
         """
-        super().__init__("ternary")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('ternary')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -232,22 +234,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Ternary
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Ternary`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("aaxis", arg, aaxis)
-        self._set_property("baxis", arg, baxis)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("caxis", arg, caxis)
-        self._set_property("domain", arg, domain)
-        self._set_property("sum", arg, sum)
-        self._set_property("uirevision", arg, uirevision)
+an instance of :class:`plotly.graph_objs.layout.Ternary`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('aaxis', arg, aaxis)
+        self._set_property('baxis', arg, baxis)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('caxis', arg, caxis)
+        self._set_property('domain', arg, domain)
+        self._set_property('sum', arg, sum)
+        self._set_property('uirevision', arg, uirevision)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_title.py b/plotly/graph_objs/layout/_title.py
index ce4cf1c3cb9..4be628ba346 100644
--- a/plotly/graph_objs/layout/_title.py
+++ b/plotly/graph_objs/layout/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,21 +11,9 @@
 
 class Title(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.title"
-    _valid_props = {
-        "automargin",
-        "font",
-        "pad",
-        "subtitle",
-        "text",
-        "x",
-        "xanchor",
-        "xref",
-        "y",
-        "yanchor",
-        "yref",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.title'
+    _valid_props = {"automargin", "font", "pad", "subtitle", "text", "x", "xanchor", "xref", "y", "yanchor", "yref"}
 
     @property
     def automargin(self):
@@ -45,11 +37,11 @@ def automargin(self):
         -------
         bool
         """
-        return self["automargin"]
+        return self['automargin']
 
     @automargin.setter
     def automargin(self, val):
-        self["automargin"] = val
+        self['automargin'] = val
 
     @property
     def font(self):
@@ -66,11 +58,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def pad(self):
@@ -92,11 +84,11 @@ def pad(self):
         -------
         plotly.graph_objs.layout.title.Pad
         """
-        return self["pad"]
+        return self['pad']
 
     @pad.setter
     def pad(self, val):
-        self["pad"] = val
+        self['pad'] = val
 
     @property
     def subtitle(self):
@@ -111,11 +103,11 @@ def subtitle(self):
         -------
         plotly.graph_objs.layout.title.Subtitle
         """
-        return self["subtitle"]
+        return self['subtitle']
 
     @subtitle.setter
     def subtitle(self, val):
-        self["subtitle"] = val
+        self['subtitle'] = val
 
     @property
     def text(self):
@@ -130,11 +122,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def x(self):
@@ -149,11 +141,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -173,11 +165,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xref(self):
@@ -194,11 +186,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -215,11 +207,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -239,11 +231,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def yref(self):
@@ -260,11 +252,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -328,23 +320,21 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        automargin=None,
-        font=None,
-        pad=None,
-        subtitle=None,
-        text=None,
-        x=None,
-        xanchor=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            automargin=None,
+            font=None,
+            pad=None,
+            subtitle=None,
+            text=None,
+            x=None,
+            xanchor=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -416,9 +406,9 @@ def __init__(
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -428,26 +418,26 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Title`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("automargin", arg, automargin)
-        self._set_property("font", arg, font)
-        self._set_property("pad", arg, pad)
-        self._set_property("subtitle", arg, subtitle)
-        self._set_property("text", arg, text)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.layout.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('automargin', arg, automargin)
+        self._set_property('font', arg, font)
+        self._set_property('pad', arg, pad)
+        self._set_property('subtitle', arg, subtitle)
+        self._set_property('text', arg, text)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_transition.py b/plotly/graph_objs/layout/_transition.py
index f66a7a5c81d..228a81d3ef4 100644
--- a/plotly/graph_objs/layout/_transition.py
+++ b/plotly/graph_objs/layout/_transition.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Transition(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.transition"
+    _parent_path_str = 'layout'
+    _path_str = 'layout.transition'
     _valid_props = {"duration", "easing", "ordering"}
 
     @property
@@ -24,11 +28,11 @@ def duration(self):
         -------
         int|float
         """
-        return self["duration"]
+        return self['duration']
 
     @duration.setter
     def duration(self, val):
-        self["duration"] = val
+        self['duration'] = val
 
     @property
     def easing(self):
@@ -51,11 +55,11 @@ def easing(self):
         -------
         Any
         """
-        return self["easing"]
+        return self['easing']
 
     @easing.setter
     def easing(self, val):
-        self["easing"] = val
+        self['easing'] = val
 
     @property
     def ordering(self):
@@ -72,11 +76,11 @@ def ordering(self):
         -------
         Any
         """
-        return self["ordering"]
+        return self['ordering']
 
     @ordering.setter
     def ordering(self, val):
-        self["ordering"] = val
+        self['ordering'] = val
 
     @property
     def _prop_descriptions(self):
@@ -91,8 +95,13 @@ def _prop_descriptions(self):
             smoothly transitions during updates that make both
             traces and layout change.
         """
-
-    def __init__(self, arg=None, duration=None, easing=None, ordering=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            duration=None,
+            easing=None,
+            ordering=None,
+            **kwargs
+        ):
         """
         Construct a new Transition object
 
@@ -118,9 +127,9 @@ def __init__(self, arg=None, duration=None, easing=None, ordering=None, **kwargs
         -------
         Transition
         """
-        super().__init__("transition")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('transition')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -130,18 +139,18 @@ def __init__(self, arg=None, duration=None, easing=None, ordering=None, **kwargs
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Transition
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Transition`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.Transition`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("duration", arg, duration)
-        self._set_property("easing", arg, easing)
-        self._set_property("ordering", arg, ordering)
+        self._set_property('duration', arg, duration)
+        self._set_property('easing', arg, easing)
+        self._set_property('ordering', arg, ordering)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_uniformtext.py b/plotly/graph_objs/layout/_uniformtext.py
index 4b42830a169..96c86f469e4 100644
--- a/plotly/graph_objs/layout/_uniformtext.py
+++ b/plotly/graph_objs/layout/_uniformtext.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Uniformtext(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.uniformtext"
+    _parent_path_str = 'layout'
+    _path_str = 'layout.uniformtext'
     _valid_props = {"minsize", "mode"}
 
     @property
@@ -23,11 +27,11 @@ def minsize(self):
         -------
         int|float
         """
-        return self["minsize"]
+        return self['minsize']
 
     @minsize.setter
     def minsize(self, val):
-        self["minsize"] = val
+        self['minsize'] = val
 
     @property
     def mode(self):
@@ -49,11 +53,11 @@ def mode(self):
         -------
         Any
         """
-        return self["mode"]
+        return self['mode']
 
     @mode.setter
     def mode(self, val):
-        self["mode"] = val
+        self['mode'] = val
 
     @property
     def _prop_descriptions(self):
@@ -71,8 +75,12 @@ def _prop_descriptions(self):
             defined by `minsize` is greater than the font size
             defined by trace, then the `minsize` is used.
         """
-
-    def __init__(self, arg=None, minsize=None, mode=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            minsize=None,
+            mode=None,
+            **kwargs
+        ):
         """
         Construct a new Uniformtext object
 
@@ -99,9 +107,9 @@ def __init__(self, arg=None, minsize=None, mode=None, **kwargs):
         -------
         Uniformtext
         """
-        super().__init__("uniformtext")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('uniformtext')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -111,17 +119,17 @@ def __init__(self, arg=None, minsize=None, mode=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Uniformtext
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Uniformtext`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.Uniformtext`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("minsize", arg, minsize)
-        self._set_property("mode", arg, mode)
+        self._set_property('minsize', arg, minsize)
+        self._set_property('mode', arg, mode)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_updatemenu.py b/plotly/graph_objs/layout/_updatemenu.py
index 4e862378307..99e0693f6f2 100644
--- a/plotly/graph_objs/layout/_updatemenu.py
+++ b/plotly/graph_objs/layout/_updatemenu.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Updatemenu(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.updatemenu"
-    _valid_props = {
-        "active",
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "buttondefaults",
-        "buttons",
-        "direction",
-        "font",
-        "name",
-        "pad",
-        "showactive",
-        "templateitemname",
-        "type",
-        "visible",
-        "x",
-        "xanchor",
-        "y",
-        "yanchor",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.updatemenu'
+    _valid_props = {"active", "bgcolor", "bordercolor", "borderwidth", "buttondefaults", "buttons", "direction", "font", "name", "pad", "showactive", "templateitemname", "type", "visible", "x", "xanchor", "y", "yanchor"}
 
     @property
     def active(self):
@@ -44,11 +29,11 @@ def active(self):
         -------
         int
         """
-        return self["active"]
+        return self['active']
 
     @active.setter
     def active(self, val):
-        self["active"] = val
+        self['active'] = val
 
     @property
     def bgcolor(self):
@@ -66,11 +51,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -88,11 +73,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -106,11 +91,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def buttons(self):
@@ -125,11 +110,11 @@ def buttons(self):
         -------
         tuple[plotly.graph_objs.layout.updatemenu.Button]
         """
-        return self["buttons"]
+        return self['buttons']
 
     @buttons.setter
     def buttons(self, val):
-        self["buttons"] = val
+        self['buttons'] = val
 
     @property
     def buttondefaults(self):
@@ -149,11 +134,11 @@ def buttondefaults(self):
         -------
         plotly.graph_objs.layout.updatemenu.Button
         """
-        return self["buttondefaults"]
+        return self['buttondefaults']
 
     @buttondefaults.setter
     def buttondefaults(self, val):
-        self["buttondefaults"] = val
+        self['buttondefaults'] = val
 
     @property
     def direction(self):
@@ -171,11 +156,11 @@ def direction(self):
         -------
         Any
         """
-        return self["direction"]
+        return self['direction']
 
     @direction.setter
     def direction(self, val):
-        self["direction"] = val
+        self['direction'] = val
 
     @property
     def font(self):
@@ -192,11 +177,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.updatemenu.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def name(self):
@@ -217,11 +202,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def pad(self):
@@ -238,11 +223,11 @@ def pad(self):
         -------
         plotly.graph_objs.layout.updatemenu.Pad
         """
-        return self["pad"]
+        return self['pad']
 
     @pad.setter
     def pad(self, val):
-        self["pad"] = val
+        self['pad'] = val
 
     @property
     def showactive(self):
@@ -256,11 +241,11 @@ def showactive(self):
         -------
         bool
         """
-        return self["showactive"]
+        return self['showactive']
 
     @showactive.setter
     def showactive(self, val):
-        self["showactive"] = val
+        self['showactive'] = val
 
     @property
     def templateitemname(self):
@@ -282,11 +267,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def type(self):
@@ -303,11 +288,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def visible(self):
@@ -321,11 +306,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -340,11 +325,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -361,11 +346,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def y(self):
@@ -380,11 +365,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -401,11 +386,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def _prop_descriptions(self):
@@ -482,30 +467,28 @@ def _prop_descriptions(self):
             anchor binds the `y` position to the "top", "middle" or
             "bottom" of the range selector.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        active=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        buttons=None,
-        buttondefaults=None,
-        direction=None,
-        font=None,
-        name=None,
-        pad=None,
-        showactive=None,
-        templateitemname=None,
-        type=None,
-        visible=None,
-        x=None,
-        xanchor=None,
-        y=None,
-        yanchor=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            active=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            buttons=None,
+            buttondefaults=None,
+            direction=None,
+            font=None,
+            name=None,
+            pad=None,
+            showactive=None,
+            templateitemname=None,
+            type=None,
+            visible=None,
+            x=None,
+            xanchor=None,
+            y=None,
+            yanchor=None,
+            **kwargs
+        ):
         """
         Construct a new Updatemenu object
 
@@ -591,9 +574,9 @@ def __init__(
         -------
         Updatemenu
         """
-        super().__init__("updatemenus")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('updatemenus')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -603,33 +586,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.Updatemenu
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.Updatemenu`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("active", arg, active)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("buttons", arg, buttons)
-        self._set_property("buttondefaults", arg, buttondefaults)
-        self._set_property("direction", arg, direction)
-        self._set_property("font", arg, font)
-        self._set_property("name", arg, name)
-        self._set_property("pad", arg, pad)
-        self._set_property("showactive", arg, showactive)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("type", arg, type)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
+an instance of :class:`plotly.graph_objs.layout.Updatemenu`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('active', arg, active)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('buttons', arg, buttons)
+        self._set_property('buttondefaults', arg, buttondefaults)
+        self._set_property('direction', arg, direction)
+        self._set_property('font', arg, font)
+        self._set_property('name', arg, name)
+        self._set_property('pad', arg, pad)
+        self._set_property('showactive', arg, showactive)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('type', arg, type)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_xaxis.py b/plotly/graph_objs/layout/_xaxis.py
index cff33a75b0f..2460c131617 100644
--- a/plotly/graph_objs/layout/_xaxis.py
+++ b/plotly/graph_objs/layout/_xaxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,103 +11,9 @@
 
 class XAxis(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.xaxis"
-    _valid_props = {
-        "anchor",
-        "automargin",
-        "autorange",
-        "autorangeoptions",
-        "autotickangles",
-        "autotypenumbers",
-        "calendar",
-        "categoryarray",
-        "categoryarraysrc",
-        "categoryorder",
-        "color",
-        "constrain",
-        "constraintoward",
-        "dividercolor",
-        "dividerwidth",
-        "domain",
-        "dtick",
-        "exponentformat",
-        "fixedrange",
-        "gridcolor",
-        "griddash",
-        "gridwidth",
-        "hoverformat",
-        "insiderange",
-        "labelalias",
-        "layer",
-        "linecolor",
-        "linewidth",
-        "matches",
-        "maxallowed",
-        "minallowed",
-        "minexponent",
-        "minor",
-        "mirror",
-        "nticks",
-        "overlaying",
-        "position",
-        "range",
-        "rangebreakdefaults",
-        "rangebreaks",
-        "rangemode",
-        "rangeselector",
-        "rangeslider",
-        "scaleanchor",
-        "scaleratio",
-        "separatethousands",
-        "showdividers",
-        "showexponent",
-        "showgrid",
-        "showline",
-        "showspikes",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "side",
-        "spikecolor",
-        "spikedash",
-        "spikemode",
-        "spikesnap",
-        "spikethickness",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabelindex",
-        "ticklabelindexsrc",
-        "ticklabelmode",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelshift",
-        "ticklabelstandoff",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "tickson",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "type",
-        "uirevision",
-        "visible",
-        "zeroline",
-        "zerolinecolor",
-        "zerolinewidth",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.xaxis'
+    _valid_props = {"anchor", "automargin", "autorange", "autorangeoptions", "autotickangles", "autotypenumbers", "calendar", "categoryarray", "categoryarraysrc", "categoryorder", "color", "constrain", "constraintoward", "dividercolor", "dividerwidth", "domain", "dtick", "exponentformat", "fixedrange", "gridcolor", "griddash", "gridwidth", "hoverformat", "insiderange", "labelalias", "layer", "linecolor", "linewidth", "matches", "maxallowed", "minallowed", "minexponent", "minor", "mirror", "nticks", "overlaying", "position", "range", "rangebreakdefaults", "rangebreaks", "rangemode", "rangeselector", "rangeslider", "scaleanchor", "scaleratio", "separatethousands", "showdividers", "showexponent", "showgrid", "showline", "showspikes", "showticklabels", "showtickprefix", "showticksuffix", "side", "spikecolor", "spikedash", "spikemode", "spikesnap", "spikethickness", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabelindex", "ticklabelindexsrc", "ticklabelmode", "ticklabeloverflow", "ticklabelposition", "ticklabelshift", "ticklabelstandoff", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "tickson", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "type", "uirevision", "visible", "zeroline", "zerolinecolor", "zerolinewidth"}
 
     @property
     def anchor(self):
@@ -123,11 +33,11 @@ def anchor(self):
         -------
         Any
         """
-        return self["anchor"]
+        return self['anchor']
 
     @anchor.setter
     def anchor(self, val):
-        self["anchor"] = val
+        self['anchor'] = val
 
     @property
     def automargin(self):
@@ -145,11 +55,11 @@ def automargin(self):
         -------
         Any
         """
-        return self["automargin"]
+        return self['automargin']
 
     @automargin.setter
     def automargin(self, val):
-        self["automargin"] = val
+        self['automargin'] = val
 
     @property
     def autorange(self):
@@ -174,11 +84,11 @@ def autorange(self):
         -------
         Any
         """
-        return self["autorange"]
+        return self['autorange']
 
     @autorange.setter
     def autorange(self, val):
-        self["autorange"] = val
+        self['autorange'] = val
 
     @property
     def autorangeoptions(self):
@@ -193,11 +103,11 @@ def autorangeoptions(self):
         -------
         plotly.graph_objs.layout.xaxis.Autorangeoptions
         """
-        return self["autorangeoptions"]
+        return self['autorangeoptions']
 
     @autorangeoptions.setter
     def autorangeoptions(self, val):
-        self["autorangeoptions"] = val
+        self['autorangeoptions'] = val
 
     @property
     def autotickangles(self):
@@ -217,11 +127,11 @@ def autotickangles(self):
         -------
         list
         """
-        return self["autotickangles"]
+        return self['autotickangles']
 
     @autotickangles.setter
     def autotickangles(self, val):
-        self["autotickangles"] = val
+        self['autotickangles'] = val
 
     @property
     def autotypenumbers(self):
@@ -239,11 +149,11 @@ def autotypenumbers(self):
         -------
         Any
         """
-        return self["autotypenumbers"]
+        return self['autotypenumbers']
 
     @autotypenumbers.setter
     def autotypenumbers(self, val):
-        self["autotypenumbers"] = val
+        self['autotypenumbers'] = val
 
     @property
     def calendar(self):
@@ -264,11 +174,11 @@ def calendar(self):
         -------
         Any
         """
-        return self["calendar"]
+        return self['calendar']
 
     @calendar.setter
     def calendar(self, val):
-        self["calendar"] = val
+        self['calendar'] = val
 
     @property
     def categoryarray(self):
@@ -284,11 +194,11 @@ def categoryarray(self):
         -------
         numpy.ndarray
         """
-        return self["categoryarray"]
+        return self['categoryarray']
 
     @categoryarray.setter
     def categoryarray(self, val):
-        self["categoryarray"] = val
+        self['categoryarray'] = val
 
     @property
     def categoryarraysrc(self):
@@ -303,11 +213,11 @@ def categoryarraysrc(self):
         -------
         str
         """
-        return self["categoryarraysrc"]
+        return self['categoryarraysrc']
 
     @categoryarraysrc.setter
     def categoryarraysrc(self, val):
-        self["categoryarraysrc"] = val
+        self['categoryarraysrc'] = val
 
     @property
     def categoryorder(self):
@@ -342,11 +252,11 @@ def categoryorder(self):
         -------
         Any
         """
-        return self["categoryorder"]
+        return self['categoryorder']
 
     @categoryorder.setter
     def categoryorder(self, val):
-        self["categoryorder"] = val
+        self['categoryorder'] = val
 
     @property
     def color(self):
@@ -367,11 +277,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def constrain(self):
@@ -390,11 +300,11 @@ def constrain(self):
         -------
         Any
         """
-        return self["constrain"]
+        return self['constrain']
 
     @constrain.setter
     def constrain(self, val):
-        self["constrain"] = val
+        self['constrain'] = val
 
     @property
     def constraintoward(self):
@@ -414,11 +324,11 @@ def constraintoward(self):
         -------
         Any
         """
-        return self["constraintoward"]
+        return self['constraintoward']
 
     @constraintoward.setter
     def constraintoward(self, val):
-        self["constraintoward"] = val
+        self['constraintoward'] = val
 
     @property
     def dividercolor(self):
@@ -437,11 +347,11 @@ def dividercolor(self):
         -------
         str
         """
-        return self["dividercolor"]
+        return self['dividercolor']
 
     @dividercolor.setter
     def dividercolor(self, val):
-        self["dividercolor"] = val
+        self['dividercolor'] = val
 
     @property
     def dividerwidth(self):
@@ -456,34 +366,34 @@ def dividerwidth(self):
         -------
         int|float
         """
-        return self["dividerwidth"]
+        return self['dividerwidth']
 
     @dividerwidth.setter
     def dividerwidth(self, val):
-        self["dividerwidth"] = val
+        self['dividerwidth'] = val
 
     @property
     def domain(self):
         """
-            Sets the domain of this axis (in plot fraction).
+        Sets the domain of this axis (in plot fraction).
 
-            The 'domain' property is an info array that may be specified as:
-
-            * a list or tuple of 2 elements where:
-        (0) The 'domain[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'domain[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'domain' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'domain[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'domain[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def dtick(self):
@@ -515,11 +425,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -538,11 +448,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def fixedrange(self):
@@ -557,11 +467,11 @@ def fixedrange(self):
         -------
         bool
         """
-        return self["fixedrange"]
+        return self['fixedrange']
 
     @fixedrange.setter
     def fixedrange(self, val):
-        self["fixedrange"] = val
+        self['fixedrange'] = val
 
     @property
     def gridcolor(self):
@@ -579,11 +489,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def griddash(self):
@@ -603,11 +513,11 @@ def griddash(self):
         -------
         str
         """
-        return self["griddash"]
+        return self['griddash']
 
     @griddash.setter
     def griddash(self, val):
-        self["griddash"] = val
+        self['griddash'] = val
 
     @property
     def gridwidth(self):
@@ -621,11 +531,11 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def hoverformat(self):
@@ -649,35 +559,35 @@ def hoverformat(self):
         -------
         str
         """
-        return self["hoverformat"]
+        return self['hoverformat']
 
     @hoverformat.setter
     def hoverformat(self, val):
-        self["hoverformat"] = val
+        self['hoverformat'] = val
 
     @property
     def insiderange(self):
         """
-            Could be used to set the desired inside range of this axis
-            (excluding the labels) when `ticklabelposition` of the anchored
-            axis has "inside". Not implemented for axes with `type` "log".
-            This would be ignored when `range` is provided.
-
-            The 'insiderange' property is an info array that may be specified as:
+        Could be used to set the desired inside range of this axis
+        (excluding the labels) when `ticklabelposition` of the anchored
+        axis has "inside". Not implemented for axes with `type` "log".
+        This would be ignored when `range` is provided.
 
-            * a list or tuple of 2 elements where:
-        (0) The 'insiderange[0]' property accepts values of any type
-        (1) The 'insiderange[1]' property accepts values of any type
+        The 'insiderange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'insiderange[0]' property accepts values of any type
+    (1) The 'insiderange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["insiderange"]
+        return self['insiderange']
 
     @insiderange.setter
     def insiderange(self, val):
-        self["insiderange"] = val
+        self['insiderange'] = val
 
     @property
     def labelalias(self):
@@ -698,11 +608,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def layer(self):
@@ -722,11 +632,11 @@ def layer(self):
         -------
         Any
         """
-        return self["layer"]
+        return self['layer']
 
     @layer.setter
     def layer(self, val):
-        self["layer"] = val
+        self['layer'] = val
 
     @property
     def linecolor(self):
@@ -744,11 +654,11 @@ def linecolor(self):
         -------
         str
         """
-        return self["linecolor"]
+        return self['linecolor']
 
     @linecolor.setter
     def linecolor(self, val):
-        self["linecolor"] = val
+        self['linecolor'] = val
 
     @property
     def linewidth(self):
@@ -762,11 +672,11 @@ def linewidth(self):
         -------
         int|float
         """
-        return self["linewidth"]
+        return self['linewidth']
 
     @linewidth.setter
     def linewidth(self, val):
-        self["linewidth"] = val
+        self['linewidth'] = val
 
     @property
     def matches(self):
@@ -788,11 +698,11 @@ def matches(self):
         -------
         Any
         """
-        return self["matches"]
+        return self['matches']
 
     @matches.setter
     def matches(self, val):
-        self["matches"] = val
+        self['matches'] = val
 
     @property
     def maxallowed(self):
@@ -805,11 +715,11 @@ def maxallowed(self):
         -------
         Any
         """
-        return self["maxallowed"]
+        return self['maxallowed']
 
     @maxallowed.setter
     def maxallowed(self, val):
-        self["maxallowed"] = val
+        self['maxallowed'] = val
 
     @property
     def minallowed(self):
@@ -822,11 +732,11 @@ def minallowed(self):
         -------
         Any
         """
-        return self["minallowed"]
+        return self['minallowed']
 
     @minallowed.setter
     def minallowed(self, val):
-        self["minallowed"] = val
+        self['minallowed'] = val
 
     @property
     def minexponent(self):
@@ -841,11 +751,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def minor(self):
@@ -860,11 +770,11 @@ def minor(self):
         -------
         plotly.graph_objs.layout.xaxis.Minor
         """
-        return self["minor"]
+        return self['minor']
 
     @minor.setter
     def minor(self, val):
-        self["minor"] = val
+        self['minor'] = val
 
     @property
     def mirror(self):
@@ -884,11 +794,11 @@ def mirror(self):
         -------
         Any
         """
-        return self["mirror"]
+        return self['mirror']
 
     @mirror.setter
     def mirror(self, val):
-        self["mirror"] = val
+        self['mirror'] = val
 
     @property
     def nticks(self):
@@ -906,11 +816,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def overlaying(self):
@@ -932,11 +842,11 @@ def overlaying(self):
         -------
         Any
         """
-        return self["overlaying"]
+        return self['overlaying']
 
     @overlaying.setter
     def overlaying(self, val):
-        self["overlaying"] = val
+        self['overlaying'] = val
 
     @property
     def position(self):
@@ -952,41 +862,41 @@ def position(self):
         -------
         int|float
         """
-        return self["position"]
+        return self['position']
 
     @position.setter
     def position(self, val):
-        self["position"] = val
+        self['position'] = val
 
     @property
     def range(self):
         """
-            Sets the range of this axis. If the axis `type` is "log", then
-            you must take the log of your desired range (e.g. to set the
-            range from 1 to 100, set the range from 0 to 2). If the axis
-            `type` is "date", it should be date strings, like date data,
-            though Date objects and unix milliseconds will be accepted and
-            converted to strings. If the axis `type` is "category", it
-            should be numbers, using the scale where each category is
-            assigned a serial number from zero in the order it appears.
-            Leaving either or both elements `null` impacts the default
-            `autorange`.
+        Sets the range of this axis. If the axis `type` is "log", then
+        you must take the log of your desired range (e.g. to set the
+        range from 1 to 100, set the range from 0 to 2). If the axis
+        `type` is "date", it should be date strings, like date data,
+        though Date objects and unix milliseconds will be accepted and
+        converted to strings. If the axis `type` is "category", it
+        should be numbers, using the scale where each category is
+        assigned a serial number from zero in the order it appears.
+        Leaving either or both elements `null` impacts the default
+        `autorange`.
 
-            The 'range' property is an info array that may be specified as:
+        The 'range' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'range[0]' property accepts values of any type
+    (1) The 'range[1]' property accepts values of any type
 
-            * a list or tuple of 2 elements where:
-        (0) The 'range[0]' property accepts values of any type
-        (1) The 'range[1]' property accepts values of any type
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["range"]
+        return self['range']
 
     @range.setter
     def range(self, val):
-        self["range"] = val
+        self['range'] = val
 
     @property
     def rangebreaks(self):
@@ -1001,11 +911,11 @@ def rangebreaks(self):
         -------
         tuple[plotly.graph_objs.layout.xaxis.Rangebreak]
         """
-        return self["rangebreaks"]
+        return self['rangebreaks']
 
     @rangebreaks.setter
     def rangebreaks(self, val):
-        self["rangebreaks"] = val
+        self['rangebreaks'] = val
 
     @property
     def rangebreakdefaults(self):
@@ -1025,11 +935,11 @@ def rangebreakdefaults(self):
         -------
         plotly.graph_objs.layout.xaxis.Rangebreak
         """
-        return self["rangebreakdefaults"]
+        return self['rangebreakdefaults']
 
     @rangebreakdefaults.setter
     def rangebreakdefaults(self, val):
-        self["rangebreakdefaults"] = val
+        self['rangebreakdefaults'] = val
 
     @property
     def rangemode(self):
@@ -1048,11 +958,11 @@ def rangemode(self):
         -------
         Any
         """
-        return self["rangemode"]
+        return self['rangemode']
 
     @rangemode.setter
     def rangemode(self, val):
-        self["rangemode"] = val
+        self['rangemode'] = val
 
     @property
     def rangeselector(self):
@@ -1067,11 +977,11 @@ def rangeselector(self):
         -------
         plotly.graph_objs.layout.xaxis.Rangeselector
         """
-        return self["rangeselector"]
+        return self['rangeselector']
 
     @rangeselector.setter
     def rangeselector(self, val):
-        self["rangeselector"] = val
+        self['rangeselector'] = val
 
     @property
     def rangeslider(self):
@@ -1086,11 +996,11 @@ def rangeslider(self):
         -------
         plotly.graph_objs.layout.xaxis.Rangeslider
         """
-        return self["rangeslider"]
+        return self['rangeslider']
 
     @rangeslider.setter
     def rangeslider(self, val):
-        self["rangeslider"] = val
+        self['rangeslider'] = val
 
     @property
     def scaleanchor(self):
@@ -1129,11 +1039,11 @@ def scaleanchor(self):
         -------
         Any
         """
-        return self["scaleanchor"]
+        return self['scaleanchor']
 
     @scaleanchor.setter
     def scaleanchor(self, val):
-        self["scaleanchor"] = val
+        self['scaleanchor'] = val
 
     @property
     def scaleratio(self):
@@ -1152,11 +1062,11 @@ def scaleratio(self):
         -------
         int|float
         """
-        return self["scaleratio"]
+        return self['scaleratio']
 
     @scaleratio.setter
     def scaleratio(self, val):
-        self["scaleratio"] = val
+        self['scaleratio'] = val
 
     @property
     def separatethousands(self):
@@ -1170,11 +1080,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showdividers(self):
@@ -1190,11 +1100,11 @@ def showdividers(self):
         -------
         bool
         """
-        return self["showdividers"]
+        return self['showdividers']
 
     @showdividers.setter
     def showdividers(self, val):
-        self["showdividers"] = val
+        self['showdividers'] = val
 
     @property
     def showexponent(self):
@@ -1212,11 +1122,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showgrid(self):
@@ -1231,11 +1141,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def showline(self):
@@ -1249,11 +1159,11 @@ def showline(self):
         -------
         bool
         """
-        return self["showline"]
+        return self['showline']
 
     @showline.setter
     def showline(self, val):
-        self["showline"] = val
+        self['showline'] = val
 
     @property
     def showspikes(self):
@@ -1269,11 +1179,11 @@ def showspikes(self):
         -------
         bool
         """
-        return self["showspikes"]
+        return self['showspikes']
 
     @showspikes.setter
     def showspikes(self, val):
-        self["showspikes"] = val
+        self['showspikes'] = val
 
     @property
     def showticklabels(self):
@@ -1287,11 +1197,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -1309,11 +1219,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -1328,11 +1238,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def side(self):
@@ -1348,11 +1258,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def spikecolor(self):
@@ -1370,11 +1280,11 @@ def spikecolor(self):
         -------
         str
         """
-        return self["spikecolor"]
+        return self['spikecolor']
 
     @spikecolor.setter
     def spikecolor(self, val):
-        self["spikecolor"] = val
+        self['spikecolor'] = val
 
     @property
     def spikedash(self):
@@ -1394,11 +1304,11 @@ def spikedash(self):
         -------
         str
         """
-        return self["spikedash"]
+        return self['spikedash']
 
     @spikedash.setter
     def spikedash(self, val):
-        self["spikedash"] = val
+        self['spikedash'] = val
 
     @property
     def spikemode(self):
@@ -1418,11 +1328,11 @@ def spikemode(self):
         -------
         Any
         """
-        return self["spikemode"]
+        return self['spikemode']
 
     @spikemode.setter
     def spikemode(self, val):
-        self["spikemode"] = val
+        self['spikemode'] = val
 
     @property
     def spikesnap(self):
@@ -1438,11 +1348,11 @@ def spikesnap(self):
         -------
         Any
         """
-        return self["spikesnap"]
+        return self['spikesnap']
 
     @spikesnap.setter
     def spikesnap(self, val):
-        self["spikesnap"] = val
+        self['spikesnap'] = val
 
     @property
     def spikethickness(self):
@@ -1456,11 +1366,11 @@ def spikethickness(self):
         -------
         int|float
         """
-        return self["spikethickness"]
+        return self['spikethickness']
 
     @spikethickness.setter
     def spikethickness(self, val):
-        self["spikethickness"] = val
+        self['spikethickness'] = val
 
     @property
     def tick0(self):
@@ -1481,11 +1391,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -1503,11 +1413,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -1525,11 +1435,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -1546,11 +1456,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.layout.xaxis.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -1574,11 +1484,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -1593,11 +1503,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.layout.xaxis.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -1617,11 +1527,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.layout.xaxis.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabelindex(self):
@@ -1643,11 +1553,11 @@ def ticklabelindex(self):
         -------
         int|numpy.ndarray
         """
-        return self["ticklabelindex"]
+        return self['ticklabelindex']
 
     @ticklabelindex.setter
     def ticklabelindex(self, val):
-        self["ticklabelindex"] = val
+        self['ticklabelindex'] = val
 
     @property
     def ticklabelindexsrc(self):
@@ -1662,11 +1572,11 @@ def ticklabelindexsrc(self):
         -------
         str
         """
-        return self["ticklabelindexsrc"]
+        return self['ticklabelindexsrc']
 
     @ticklabelindexsrc.setter
     def ticklabelindexsrc(self, val):
-        self["ticklabelindexsrc"] = val
+        self['ticklabelindexsrc'] = val
 
     @property
     def ticklabelmode(self):
@@ -1684,11 +1594,11 @@ def ticklabelmode(self):
         -------
         Any
         """
-        return self["ticklabelmode"]
+        return self['ticklabelmode']
 
     @ticklabelmode.setter
     def ticklabelmode(self, val):
-        self["ticklabelmode"] = val
+        self['ticklabelmode'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -1707,11 +1617,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -1735,11 +1645,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelshift(self):
@@ -1755,11 +1665,11 @@ def ticklabelshift(self):
         -------
         int
         """
-        return self["ticklabelshift"]
+        return self['ticklabelshift']
 
     @ticklabelshift.setter
     def ticklabelshift(self, val):
-        self["ticklabelshift"] = val
+        self['ticklabelshift'] = val
 
     @property
     def ticklabelstandoff(self):
@@ -1781,11 +1691,11 @@ def ticklabelstandoff(self):
         -------
         int
         """
-        return self["ticklabelstandoff"]
+        return self['ticklabelstandoff']
 
     @ticklabelstandoff.setter
     def ticklabelstandoff(self, val):
-        self["ticklabelstandoff"] = val
+        self['ticklabelstandoff'] = val
 
     @property
     def ticklabelstep(self):
@@ -1805,11 +1715,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -1823,11 +1733,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -1850,11 +1760,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -1869,11 +1779,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -1890,11 +1800,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def tickson(self):
@@ -1913,11 +1823,11 @@ def tickson(self):
         -------
         Any
         """
-        return self["tickson"]
+        return self['tickson']
 
     @tickson.setter
     def tickson(self, val):
-        self["tickson"] = val
+        self['tickson'] = val
 
     @property
     def ticksuffix(self):
@@ -1932,11 +1842,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -1952,11 +1862,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -1970,11 +1880,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -1989,11 +1899,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -2007,11 +1917,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -2025,11 +1935,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -2044,11 +1954,11 @@ def title(self):
         -------
         plotly.graph_objs.layout.xaxis.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def type(self):
@@ -2066,11 +1976,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def uirevision(self):
@@ -2085,11 +1995,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -2105,11 +2015,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def zeroline(self):
@@ -2125,11 +2035,11 @@ def zeroline(self):
         -------
         bool
         """
-        return self["zeroline"]
+        return self['zeroline']
 
     @zeroline.setter
     def zeroline(self, val):
-        self["zeroline"] = val
+        self['zeroline'] = val
 
     @property
     def zerolinecolor(self):
@@ -2147,11 +2057,11 @@ def zerolinecolor(self):
         -------
         str
         """
-        return self["zerolinecolor"]
+        return self['zerolinecolor']
 
     @zerolinecolor.setter
     def zerolinecolor(self, val):
-        self["zerolinecolor"] = val
+        self['zerolinecolor'] = val
 
     @property
     def zerolinewidth(self):
@@ -2165,11 +2075,11 @@ def zerolinewidth(self):
         -------
         int|float
         """
-        return self["zerolinewidth"]
+        return self['zerolinewidth']
 
     @zerolinewidth.setter
     def zerolinewidth(self, val):
-        self["zerolinewidth"] = val
+        self['zerolinewidth'] = val
 
     @property
     def _prop_descriptions(self):
@@ -2681,105 +2591,103 @@ def _prop_descriptions(self):
         zerolinewidth
             Sets the width (in px) of the zero line.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        anchor=None,
-        automargin=None,
-        autorange=None,
-        autorangeoptions=None,
-        autotickangles=None,
-        autotypenumbers=None,
-        calendar=None,
-        categoryarray=None,
-        categoryarraysrc=None,
-        categoryorder=None,
-        color=None,
-        constrain=None,
-        constraintoward=None,
-        dividercolor=None,
-        dividerwidth=None,
-        domain=None,
-        dtick=None,
-        exponentformat=None,
-        fixedrange=None,
-        gridcolor=None,
-        griddash=None,
-        gridwidth=None,
-        hoverformat=None,
-        insiderange=None,
-        labelalias=None,
-        layer=None,
-        linecolor=None,
-        linewidth=None,
-        matches=None,
-        maxallowed=None,
-        minallowed=None,
-        minexponent=None,
-        minor=None,
-        mirror=None,
-        nticks=None,
-        overlaying=None,
-        position=None,
-        range=None,
-        rangebreaks=None,
-        rangebreakdefaults=None,
-        rangemode=None,
-        rangeselector=None,
-        rangeslider=None,
-        scaleanchor=None,
-        scaleratio=None,
-        separatethousands=None,
-        showdividers=None,
-        showexponent=None,
-        showgrid=None,
-        showline=None,
-        showspikes=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        side=None,
-        spikecolor=None,
-        spikedash=None,
-        spikemode=None,
-        spikesnap=None,
-        spikethickness=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabelindex=None,
-        ticklabelindexsrc=None,
-        ticklabelmode=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelshift=None,
-        ticklabelstandoff=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        tickson=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        type=None,
-        uirevision=None,
-        visible=None,
-        zeroline=None,
-        zerolinecolor=None,
-        zerolinewidth=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            anchor=None,
+            automargin=None,
+            autorange=None,
+            autorangeoptions=None,
+            autotickangles=None,
+            autotypenumbers=None,
+            calendar=None,
+            categoryarray=None,
+            categoryarraysrc=None,
+            categoryorder=None,
+            color=None,
+            constrain=None,
+            constraintoward=None,
+            dividercolor=None,
+            dividerwidth=None,
+            domain=None,
+            dtick=None,
+            exponentformat=None,
+            fixedrange=None,
+            gridcolor=None,
+            griddash=None,
+            gridwidth=None,
+            hoverformat=None,
+            insiderange=None,
+            labelalias=None,
+            layer=None,
+            linecolor=None,
+            linewidth=None,
+            matches=None,
+            maxallowed=None,
+            minallowed=None,
+            minexponent=None,
+            minor=None,
+            mirror=None,
+            nticks=None,
+            overlaying=None,
+            position=None,
+            range=None,
+            rangebreaks=None,
+            rangebreakdefaults=None,
+            rangemode=None,
+            rangeselector=None,
+            rangeslider=None,
+            scaleanchor=None,
+            scaleratio=None,
+            separatethousands=None,
+            showdividers=None,
+            showexponent=None,
+            showgrid=None,
+            showline=None,
+            showspikes=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            side=None,
+            spikecolor=None,
+            spikedash=None,
+            spikemode=None,
+            spikesnap=None,
+            spikethickness=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabelindex=None,
+            ticklabelindexsrc=None,
+            ticklabelmode=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelshift=None,
+            ticklabelstandoff=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            tickson=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            type=None,
+            uirevision=None,
+            visible=None,
+            zeroline=None,
+            zerolinecolor=None,
+            zerolinewidth=None,
+            **kwargs
+        ):
         """
         Construct a new XAxis object
 
@@ -3299,9 +3207,9 @@ def __init__(
         -------
         XAxis
         """
-        super().__init__("xaxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('xaxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -3311,108 +3219,108 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.XAxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.XAxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("anchor", arg, anchor)
-        self._set_property("automargin", arg, automargin)
-        self._set_property("autorange", arg, autorange)
-        self._set_property("autorangeoptions", arg, autorangeoptions)
-        self._set_property("autotickangles", arg, autotickangles)
-        self._set_property("autotypenumbers", arg, autotypenumbers)
-        self._set_property("calendar", arg, calendar)
-        self._set_property("categoryarray", arg, categoryarray)
-        self._set_property("categoryarraysrc", arg, categoryarraysrc)
-        self._set_property("categoryorder", arg, categoryorder)
-        self._set_property("color", arg, color)
-        self._set_property("constrain", arg, constrain)
-        self._set_property("constraintoward", arg, constraintoward)
-        self._set_property("dividercolor", arg, dividercolor)
-        self._set_property("dividerwidth", arg, dividerwidth)
-        self._set_property("domain", arg, domain)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("fixedrange", arg, fixedrange)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("griddash", arg, griddash)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("hoverformat", arg, hoverformat)
-        self._set_property("insiderange", arg, insiderange)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("layer", arg, layer)
-        self._set_property("linecolor", arg, linecolor)
-        self._set_property("linewidth", arg, linewidth)
-        self._set_property("matches", arg, matches)
-        self._set_property("maxallowed", arg, maxallowed)
-        self._set_property("minallowed", arg, minallowed)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("minor", arg, minor)
-        self._set_property("mirror", arg, mirror)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("overlaying", arg, overlaying)
-        self._set_property("position", arg, position)
-        self._set_property("range", arg, range)
-        self._set_property("rangebreaks", arg, rangebreaks)
-        self._set_property("rangebreakdefaults", arg, rangebreakdefaults)
-        self._set_property("rangemode", arg, rangemode)
-        self._set_property("rangeselector", arg, rangeselector)
-        self._set_property("rangeslider", arg, rangeslider)
-        self._set_property("scaleanchor", arg, scaleanchor)
-        self._set_property("scaleratio", arg, scaleratio)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showdividers", arg, showdividers)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("showline", arg, showline)
-        self._set_property("showspikes", arg, showspikes)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("side", arg, side)
-        self._set_property("spikecolor", arg, spikecolor)
-        self._set_property("spikedash", arg, spikedash)
-        self._set_property("spikemode", arg, spikemode)
-        self._set_property("spikesnap", arg, spikesnap)
-        self._set_property("spikethickness", arg, spikethickness)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabelindex", arg, ticklabelindex)
-        self._set_property("ticklabelindexsrc", arg, ticklabelindexsrc)
-        self._set_property("ticklabelmode", arg, ticklabelmode)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelshift", arg, ticklabelshift)
-        self._set_property("ticklabelstandoff", arg, ticklabelstandoff)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("tickson", arg, tickson)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("type", arg, type)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("zeroline", arg, zeroline)
-        self._set_property("zerolinecolor", arg, zerolinecolor)
-        self._set_property("zerolinewidth", arg, zerolinewidth)
+an instance of :class:`plotly.graph_objs.layout.XAxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('anchor', arg, anchor)
+        self._set_property('automargin', arg, automargin)
+        self._set_property('autorange', arg, autorange)
+        self._set_property('autorangeoptions', arg, autorangeoptions)
+        self._set_property('autotickangles', arg, autotickangles)
+        self._set_property('autotypenumbers', arg, autotypenumbers)
+        self._set_property('calendar', arg, calendar)
+        self._set_property('categoryarray', arg, categoryarray)
+        self._set_property('categoryarraysrc', arg, categoryarraysrc)
+        self._set_property('categoryorder', arg, categoryorder)
+        self._set_property('color', arg, color)
+        self._set_property('constrain', arg, constrain)
+        self._set_property('constraintoward', arg, constraintoward)
+        self._set_property('dividercolor', arg, dividercolor)
+        self._set_property('dividerwidth', arg, dividerwidth)
+        self._set_property('domain', arg, domain)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('fixedrange', arg, fixedrange)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('griddash', arg, griddash)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('hoverformat', arg, hoverformat)
+        self._set_property('insiderange', arg, insiderange)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('layer', arg, layer)
+        self._set_property('linecolor', arg, linecolor)
+        self._set_property('linewidth', arg, linewidth)
+        self._set_property('matches', arg, matches)
+        self._set_property('maxallowed', arg, maxallowed)
+        self._set_property('minallowed', arg, minallowed)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('minor', arg, minor)
+        self._set_property('mirror', arg, mirror)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('overlaying', arg, overlaying)
+        self._set_property('position', arg, position)
+        self._set_property('range', arg, range)
+        self._set_property('rangebreaks', arg, rangebreaks)
+        self._set_property('rangebreakdefaults', arg, rangebreakdefaults)
+        self._set_property('rangemode', arg, rangemode)
+        self._set_property('rangeselector', arg, rangeselector)
+        self._set_property('rangeslider', arg, rangeslider)
+        self._set_property('scaleanchor', arg, scaleanchor)
+        self._set_property('scaleratio', arg, scaleratio)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showdividers', arg, showdividers)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('showline', arg, showline)
+        self._set_property('showspikes', arg, showspikes)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('side', arg, side)
+        self._set_property('spikecolor', arg, spikecolor)
+        self._set_property('spikedash', arg, spikedash)
+        self._set_property('spikemode', arg, spikemode)
+        self._set_property('spikesnap', arg, spikesnap)
+        self._set_property('spikethickness', arg, spikethickness)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabelindex', arg, ticklabelindex)
+        self._set_property('ticklabelindexsrc', arg, ticklabelindexsrc)
+        self._set_property('ticklabelmode', arg, ticklabelmode)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelshift', arg, ticklabelshift)
+        self._set_property('ticklabelstandoff', arg, ticklabelstandoff)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('tickson', arg, tickson)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('type', arg, type)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('zeroline', arg, zeroline)
+        self._set_property('zerolinecolor', arg, zerolinecolor)
+        self._set_property('zerolinewidth', arg, zerolinewidth)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/_yaxis.py b/plotly/graph_objs/layout/_yaxis.py
index 50c195a6c3f..305bee4883d 100644
--- a/plotly/graph_objs/layout/_yaxis.py
+++ b/plotly/graph_objs/layout/_yaxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,103 +11,9 @@
 
 class YAxis(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout"
-    _path_str = "layout.yaxis"
-    _valid_props = {
-        "anchor",
-        "automargin",
-        "autorange",
-        "autorangeoptions",
-        "autoshift",
-        "autotickangles",
-        "autotypenumbers",
-        "calendar",
-        "categoryarray",
-        "categoryarraysrc",
-        "categoryorder",
-        "color",
-        "constrain",
-        "constraintoward",
-        "dividercolor",
-        "dividerwidth",
-        "domain",
-        "dtick",
-        "exponentformat",
-        "fixedrange",
-        "gridcolor",
-        "griddash",
-        "gridwidth",
-        "hoverformat",
-        "insiderange",
-        "labelalias",
-        "layer",
-        "linecolor",
-        "linewidth",
-        "matches",
-        "maxallowed",
-        "minallowed",
-        "minexponent",
-        "minor",
-        "mirror",
-        "nticks",
-        "overlaying",
-        "position",
-        "range",
-        "rangebreakdefaults",
-        "rangebreaks",
-        "rangemode",
-        "scaleanchor",
-        "scaleratio",
-        "separatethousands",
-        "shift",
-        "showdividers",
-        "showexponent",
-        "showgrid",
-        "showline",
-        "showspikes",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "side",
-        "spikecolor",
-        "spikedash",
-        "spikemode",
-        "spikesnap",
-        "spikethickness",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabelindex",
-        "ticklabelindexsrc",
-        "ticklabelmode",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelshift",
-        "ticklabelstandoff",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "tickson",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "type",
-        "uirevision",
-        "visible",
-        "zeroline",
-        "zerolinecolor",
-        "zerolinewidth",
-    }
+    _parent_path_str = 'layout'
+    _path_str = 'layout.yaxis'
+    _valid_props = {"anchor", "automargin", "autorange", "autorangeoptions", "autoshift", "autotickangles", "autotypenumbers", "calendar", "categoryarray", "categoryarraysrc", "categoryorder", "color", "constrain", "constraintoward", "dividercolor", "dividerwidth", "domain", "dtick", "exponentformat", "fixedrange", "gridcolor", "griddash", "gridwidth", "hoverformat", "insiderange", "labelalias", "layer", "linecolor", "linewidth", "matches", "maxallowed", "minallowed", "minexponent", "minor", "mirror", "nticks", "overlaying", "position", "range", "rangebreakdefaults", "rangebreaks", "rangemode", "scaleanchor", "scaleratio", "separatethousands", "shift", "showdividers", "showexponent", "showgrid", "showline", "showspikes", "showticklabels", "showtickprefix", "showticksuffix", "side", "spikecolor", "spikedash", "spikemode", "spikesnap", "spikethickness", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabelindex", "ticklabelindexsrc", "ticklabelmode", "ticklabeloverflow", "ticklabelposition", "ticklabelshift", "ticklabelstandoff", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "tickson", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "type", "uirevision", "visible", "zeroline", "zerolinecolor", "zerolinewidth"}
 
     @property
     def anchor(self):
@@ -123,11 +33,11 @@ def anchor(self):
         -------
         Any
         """
-        return self["anchor"]
+        return self['anchor']
 
     @anchor.setter
     def anchor(self, val):
-        self["anchor"] = val
+        self['anchor'] = val
 
     @property
     def automargin(self):
@@ -145,11 +55,11 @@ def automargin(self):
         -------
         Any
         """
-        return self["automargin"]
+        return self['automargin']
 
     @automargin.setter
     def automargin(self, val):
-        self["automargin"] = val
+        self['automargin'] = val
 
     @property
     def autorange(self):
@@ -174,11 +84,11 @@ def autorange(self):
         -------
         Any
         """
-        return self["autorange"]
+        return self['autorange']
 
     @autorange.setter
     def autorange(self, val):
-        self["autorange"] = val
+        self['autorange'] = val
 
     @property
     def autorangeoptions(self):
@@ -193,11 +103,11 @@ def autorangeoptions(self):
         -------
         plotly.graph_objs.layout.yaxis.Autorangeoptions
         """
-        return self["autorangeoptions"]
+        return self['autorangeoptions']
 
     @autorangeoptions.setter
     def autorangeoptions(self, val):
-        self["autorangeoptions"] = val
+        self['autorangeoptions'] = val
 
     @property
     def autoshift(self):
@@ -215,11 +125,11 @@ def autoshift(self):
         -------
         bool
         """
-        return self["autoshift"]
+        return self['autoshift']
 
     @autoshift.setter
     def autoshift(self, val):
-        self["autoshift"] = val
+        self['autoshift'] = val
 
     @property
     def autotickangles(self):
@@ -239,11 +149,11 @@ def autotickangles(self):
         -------
         list
         """
-        return self["autotickangles"]
+        return self['autotickangles']
 
     @autotickangles.setter
     def autotickangles(self, val):
-        self["autotickangles"] = val
+        self['autotickangles'] = val
 
     @property
     def autotypenumbers(self):
@@ -261,11 +171,11 @@ def autotypenumbers(self):
         -------
         Any
         """
-        return self["autotypenumbers"]
+        return self['autotypenumbers']
 
     @autotypenumbers.setter
     def autotypenumbers(self, val):
-        self["autotypenumbers"] = val
+        self['autotypenumbers'] = val
 
     @property
     def calendar(self):
@@ -286,11 +196,11 @@ def calendar(self):
         -------
         Any
         """
-        return self["calendar"]
+        return self['calendar']
 
     @calendar.setter
     def calendar(self, val):
-        self["calendar"] = val
+        self['calendar'] = val
 
     @property
     def categoryarray(self):
@@ -306,11 +216,11 @@ def categoryarray(self):
         -------
         numpy.ndarray
         """
-        return self["categoryarray"]
+        return self['categoryarray']
 
     @categoryarray.setter
     def categoryarray(self, val):
-        self["categoryarray"] = val
+        self['categoryarray'] = val
 
     @property
     def categoryarraysrc(self):
@@ -325,11 +235,11 @@ def categoryarraysrc(self):
         -------
         str
         """
-        return self["categoryarraysrc"]
+        return self['categoryarraysrc']
 
     @categoryarraysrc.setter
     def categoryarraysrc(self, val):
-        self["categoryarraysrc"] = val
+        self['categoryarraysrc'] = val
 
     @property
     def categoryorder(self):
@@ -364,11 +274,11 @@ def categoryorder(self):
         -------
         Any
         """
-        return self["categoryorder"]
+        return self['categoryorder']
 
     @categoryorder.setter
     def categoryorder(self, val):
-        self["categoryorder"] = val
+        self['categoryorder'] = val
 
     @property
     def color(self):
@@ -389,11 +299,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def constrain(self):
@@ -412,11 +322,11 @@ def constrain(self):
         -------
         Any
         """
-        return self["constrain"]
+        return self['constrain']
 
     @constrain.setter
     def constrain(self, val):
-        self["constrain"] = val
+        self['constrain'] = val
 
     @property
     def constraintoward(self):
@@ -436,11 +346,11 @@ def constraintoward(self):
         -------
         Any
         """
-        return self["constraintoward"]
+        return self['constraintoward']
 
     @constraintoward.setter
     def constraintoward(self, val):
-        self["constraintoward"] = val
+        self['constraintoward'] = val
 
     @property
     def dividercolor(self):
@@ -459,11 +369,11 @@ def dividercolor(self):
         -------
         str
         """
-        return self["dividercolor"]
+        return self['dividercolor']
 
     @dividercolor.setter
     def dividercolor(self, val):
-        self["dividercolor"] = val
+        self['dividercolor'] = val
 
     @property
     def dividerwidth(self):
@@ -478,34 +388,34 @@ def dividerwidth(self):
         -------
         int|float
         """
-        return self["dividerwidth"]
+        return self['dividerwidth']
 
     @dividerwidth.setter
     def dividerwidth(self, val):
-        self["dividerwidth"] = val
+        self['dividerwidth'] = val
 
     @property
     def domain(self):
         """
-            Sets the domain of this axis (in plot fraction).
+        Sets the domain of this axis (in plot fraction).
 
-            The 'domain' property is an info array that may be specified as:
-
-            * a list or tuple of 2 elements where:
-        (0) The 'domain[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'domain[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'domain' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'domain[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'domain[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["domain"]
+        return self['domain']
 
     @domain.setter
     def domain(self, val):
-        self["domain"] = val
+        self['domain'] = val
 
     @property
     def dtick(self):
@@ -537,11 +447,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -560,11 +470,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def fixedrange(self):
@@ -579,11 +489,11 @@ def fixedrange(self):
         -------
         bool
         """
-        return self["fixedrange"]
+        return self['fixedrange']
 
     @fixedrange.setter
     def fixedrange(self, val):
-        self["fixedrange"] = val
+        self['fixedrange'] = val
 
     @property
     def gridcolor(self):
@@ -601,11 +511,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def griddash(self):
@@ -625,11 +535,11 @@ def griddash(self):
         -------
         str
         """
-        return self["griddash"]
+        return self['griddash']
 
     @griddash.setter
     def griddash(self, val):
-        self["griddash"] = val
+        self['griddash'] = val
 
     @property
     def gridwidth(self):
@@ -643,11 +553,11 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def hoverformat(self):
@@ -671,35 +581,35 @@ def hoverformat(self):
         -------
         str
         """
-        return self["hoverformat"]
+        return self['hoverformat']
 
     @hoverformat.setter
     def hoverformat(self, val):
-        self["hoverformat"] = val
+        self['hoverformat'] = val
 
     @property
     def insiderange(self):
         """
-            Could be used to set the desired inside range of this axis
-            (excluding the labels) when `ticklabelposition` of the anchored
-            axis has "inside". Not implemented for axes with `type` "log".
-            This would be ignored when `range` is provided.
-
-            The 'insiderange' property is an info array that may be specified as:
+        Could be used to set the desired inside range of this axis
+        (excluding the labels) when `ticklabelposition` of the anchored
+        axis has "inside". Not implemented for axes with `type` "log".
+        This would be ignored when `range` is provided.
 
-            * a list or tuple of 2 elements where:
-        (0) The 'insiderange[0]' property accepts values of any type
-        (1) The 'insiderange[1]' property accepts values of any type
+        The 'insiderange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'insiderange[0]' property accepts values of any type
+    (1) The 'insiderange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["insiderange"]
+        return self['insiderange']
 
     @insiderange.setter
     def insiderange(self, val):
-        self["insiderange"] = val
+        self['insiderange'] = val
 
     @property
     def labelalias(self):
@@ -720,11 +630,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def layer(self):
@@ -744,11 +654,11 @@ def layer(self):
         -------
         Any
         """
-        return self["layer"]
+        return self['layer']
 
     @layer.setter
     def layer(self, val):
-        self["layer"] = val
+        self['layer'] = val
 
     @property
     def linecolor(self):
@@ -766,11 +676,11 @@ def linecolor(self):
         -------
         str
         """
-        return self["linecolor"]
+        return self['linecolor']
 
     @linecolor.setter
     def linecolor(self, val):
-        self["linecolor"] = val
+        self['linecolor'] = val
 
     @property
     def linewidth(self):
@@ -784,11 +694,11 @@ def linewidth(self):
         -------
         int|float
         """
-        return self["linewidth"]
+        return self['linewidth']
 
     @linewidth.setter
     def linewidth(self, val):
-        self["linewidth"] = val
+        self['linewidth'] = val
 
     @property
     def matches(self):
@@ -810,11 +720,11 @@ def matches(self):
         -------
         Any
         """
-        return self["matches"]
+        return self['matches']
 
     @matches.setter
     def matches(self, val):
-        self["matches"] = val
+        self['matches'] = val
 
     @property
     def maxallowed(self):
@@ -827,11 +737,11 @@ def maxallowed(self):
         -------
         Any
         """
-        return self["maxallowed"]
+        return self['maxallowed']
 
     @maxallowed.setter
     def maxallowed(self, val):
-        self["maxallowed"] = val
+        self['maxallowed'] = val
 
     @property
     def minallowed(self):
@@ -844,11 +754,11 @@ def minallowed(self):
         -------
         Any
         """
-        return self["minallowed"]
+        return self['minallowed']
 
     @minallowed.setter
     def minallowed(self, val):
-        self["minallowed"] = val
+        self['minallowed'] = val
 
     @property
     def minexponent(self):
@@ -863,11 +773,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def minor(self):
@@ -882,11 +792,11 @@ def minor(self):
         -------
         plotly.graph_objs.layout.yaxis.Minor
         """
-        return self["minor"]
+        return self['minor']
 
     @minor.setter
     def minor(self, val):
-        self["minor"] = val
+        self['minor'] = val
 
     @property
     def mirror(self):
@@ -906,11 +816,11 @@ def mirror(self):
         -------
         Any
         """
-        return self["mirror"]
+        return self['mirror']
 
     @mirror.setter
     def mirror(self, val):
-        self["mirror"] = val
+        self['mirror'] = val
 
     @property
     def nticks(self):
@@ -928,11 +838,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def overlaying(self):
@@ -954,11 +864,11 @@ def overlaying(self):
         -------
         Any
         """
-        return self["overlaying"]
+        return self['overlaying']
 
     @overlaying.setter
     def overlaying(self, val):
-        self["overlaying"] = val
+        self['overlaying'] = val
 
     @property
     def position(self):
@@ -974,41 +884,41 @@ def position(self):
         -------
         int|float
         """
-        return self["position"]
+        return self['position']
 
     @position.setter
     def position(self, val):
-        self["position"] = val
+        self['position'] = val
 
     @property
     def range(self):
         """
-            Sets the range of this axis. If the axis `type` is "log", then
-            you must take the log of your desired range (e.g. to set the
-            range from 1 to 100, set the range from 0 to 2). If the axis
-            `type` is "date", it should be date strings, like date data,
-            though Date objects and unix milliseconds will be accepted and
-            converted to strings. If the axis `type` is "category", it
-            should be numbers, using the scale where each category is
-            assigned a serial number from zero in the order it appears.
-            Leaving either or both elements `null` impacts the default
-            `autorange`.
+        Sets the range of this axis. If the axis `type` is "log", then
+        you must take the log of your desired range (e.g. to set the
+        range from 1 to 100, set the range from 0 to 2). If the axis
+        `type` is "date", it should be date strings, like date data,
+        though Date objects and unix milliseconds will be accepted and
+        converted to strings. If the axis `type` is "category", it
+        should be numbers, using the scale where each category is
+        assigned a serial number from zero in the order it appears.
+        Leaving either or both elements `null` impacts the default
+        `autorange`.
 
-            The 'range' property is an info array that may be specified as:
+        The 'range' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'range[0]' property accepts values of any type
+    (1) The 'range[1]' property accepts values of any type
 
-            * a list or tuple of 2 elements where:
-        (0) The 'range[0]' property accepts values of any type
-        (1) The 'range[1]' property accepts values of any type
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["range"]
+        return self['range']
 
     @range.setter
     def range(self, val):
-        self["range"] = val
+        self['range'] = val
 
     @property
     def rangebreaks(self):
@@ -1023,11 +933,11 @@ def rangebreaks(self):
         -------
         tuple[plotly.graph_objs.layout.yaxis.Rangebreak]
         """
-        return self["rangebreaks"]
+        return self['rangebreaks']
 
     @rangebreaks.setter
     def rangebreaks(self, val):
-        self["rangebreaks"] = val
+        self['rangebreaks'] = val
 
     @property
     def rangebreakdefaults(self):
@@ -1047,11 +957,11 @@ def rangebreakdefaults(self):
         -------
         plotly.graph_objs.layout.yaxis.Rangebreak
         """
-        return self["rangebreakdefaults"]
+        return self['rangebreakdefaults']
 
     @rangebreakdefaults.setter
     def rangebreakdefaults(self, val):
-        self["rangebreakdefaults"] = val
+        self['rangebreakdefaults'] = val
 
     @property
     def rangemode(self):
@@ -1070,11 +980,11 @@ def rangemode(self):
         -------
         Any
         """
-        return self["rangemode"]
+        return self['rangemode']
 
     @rangemode.setter
     def rangemode(self, val):
-        self["rangemode"] = val
+        self['rangemode'] = val
 
     @property
     def scaleanchor(self):
@@ -1113,11 +1023,11 @@ def scaleanchor(self):
         -------
         Any
         """
-        return self["scaleanchor"]
+        return self['scaleanchor']
 
     @scaleanchor.setter
     def scaleanchor(self, val):
-        self["scaleanchor"] = val
+        self['scaleanchor'] = val
 
     @property
     def scaleratio(self):
@@ -1136,11 +1046,11 @@ def scaleratio(self):
         -------
         int|float
         """
-        return self["scaleratio"]
+        return self['scaleratio']
 
     @scaleratio.setter
     def scaleratio(self, val):
-        self["scaleratio"] = val
+        self['scaleratio'] = val
 
     @property
     def separatethousands(self):
@@ -1154,11 +1064,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def shift(self):
@@ -1178,11 +1088,11 @@ def shift(self):
         -------
         int|float
         """
-        return self["shift"]
+        return self['shift']
 
     @shift.setter
     def shift(self, val):
-        self["shift"] = val
+        self['shift'] = val
 
     @property
     def showdividers(self):
@@ -1198,11 +1108,11 @@ def showdividers(self):
         -------
         bool
         """
-        return self["showdividers"]
+        return self['showdividers']
 
     @showdividers.setter
     def showdividers(self, val):
-        self["showdividers"] = val
+        self['showdividers'] = val
 
     @property
     def showexponent(self):
@@ -1220,11 +1130,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showgrid(self):
@@ -1239,11 +1149,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def showline(self):
@@ -1257,11 +1167,11 @@ def showline(self):
         -------
         bool
         """
-        return self["showline"]
+        return self['showline']
 
     @showline.setter
     def showline(self, val):
-        self["showline"] = val
+        self['showline'] = val
 
     @property
     def showspikes(self):
@@ -1277,11 +1187,11 @@ def showspikes(self):
         -------
         bool
         """
-        return self["showspikes"]
+        return self['showspikes']
 
     @showspikes.setter
     def showspikes(self, val):
-        self["showspikes"] = val
+        self['showspikes'] = val
 
     @property
     def showticklabels(self):
@@ -1295,11 +1205,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -1317,11 +1227,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -1336,11 +1246,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def side(self):
@@ -1356,11 +1266,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def spikecolor(self):
@@ -1378,11 +1288,11 @@ def spikecolor(self):
         -------
         str
         """
-        return self["spikecolor"]
+        return self['spikecolor']
 
     @spikecolor.setter
     def spikecolor(self, val):
-        self["spikecolor"] = val
+        self['spikecolor'] = val
 
     @property
     def spikedash(self):
@@ -1402,11 +1312,11 @@ def spikedash(self):
         -------
         str
         """
-        return self["spikedash"]
+        return self['spikedash']
 
     @spikedash.setter
     def spikedash(self, val):
-        self["spikedash"] = val
+        self['spikedash'] = val
 
     @property
     def spikemode(self):
@@ -1426,11 +1336,11 @@ def spikemode(self):
         -------
         Any
         """
-        return self["spikemode"]
+        return self['spikemode']
 
     @spikemode.setter
     def spikemode(self, val):
-        self["spikemode"] = val
+        self['spikemode'] = val
 
     @property
     def spikesnap(self):
@@ -1446,11 +1356,11 @@ def spikesnap(self):
         -------
         Any
         """
-        return self["spikesnap"]
+        return self['spikesnap']
 
     @spikesnap.setter
     def spikesnap(self, val):
-        self["spikesnap"] = val
+        self['spikesnap'] = val
 
     @property
     def spikethickness(self):
@@ -1464,11 +1374,11 @@ def spikethickness(self):
         -------
         int|float
         """
-        return self["spikethickness"]
+        return self['spikethickness']
 
     @spikethickness.setter
     def spikethickness(self, val):
-        self["spikethickness"] = val
+        self['spikethickness'] = val
 
     @property
     def tick0(self):
@@ -1489,11 +1399,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -1511,11 +1421,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -1533,11 +1443,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -1554,11 +1464,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.layout.yaxis.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -1582,11 +1492,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -1601,11 +1511,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.layout.yaxis.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -1625,11 +1535,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.layout.yaxis.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabelindex(self):
@@ -1651,11 +1561,11 @@ def ticklabelindex(self):
         -------
         int|numpy.ndarray
         """
-        return self["ticklabelindex"]
+        return self['ticklabelindex']
 
     @ticklabelindex.setter
     def ticklabelindex(self, val):
-        self["ticklabelindex"] = val
+        self['ticklabelindex'] = val
 
     @property
     def ticklabelindexsrc(self):
@@ -1670,11 +1580,11 @@ def ticklabelindexsrc(self):
         -------
         str
         """
-        return self["ticklabelindexsrc"]
+        return self['ticklabelindexsrc']
 
     @ticklabelindexsrc.setter
     def ticklabelindexsrc(self, val):
-        self["ticklabelindexsrc"] = val
+        self['ticklabelindexsrc'] = val
 
     @property
     def ticklabelmode(self):
@@ -1692,11 +1602,11 @@ def ticklabelmode(self):
         -------
         Any
         """
-        return self["ticklabelmode"]
+        return self['ticklabelmode']
 
     @ticklabelmode.setter
     def ticklabelmode(self, val):
-        self["ticklabelmode"] = val
+        self['ticklabelmode'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -1715,11 +1625,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -1743,11 +1653,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelshift(self):
@@ -1763,11 +1673,11 @@ def ticklabelshift(self):
         -------
         int
         """
-        return self["ticklabelshift"]
+        return self['ticklabelshift']
 
     @ticklabelshift.setter
     def ticklabelshift(self, val):
-        self["ticklabelshift"] = val
+        self['ticklabelshift'] = val
 
     @property
     def ticklabelstandoff(self):
@@ -1789,11 +1699,11 @@ def ticklabelstandoff(self):
         -------
         int
         """
-        return self["ticklabelstandoff"]
+        return self['ticklabelstandoff']
 
     @ticklabelstandoff.setter
     def ticklabelstandoff(self, val):
-        self["ticklabelstandoff"] = val
+        self['ticklabelstandoff'] = val
 
     @property
     def ticklabelstep(self):
@@ -1813,11 +1723,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -1831,11 +1741,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -1858,11 +1768,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -1877,11 +1787,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -1898,11 +1808,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def tickson(self):
@@ -1921,11 +1831,11 @@ def tickson(self):
         -------
         Any
         """
-        return self["tickson"]
+        return self['tickson']
 
     @tickson.setter
     def tickson(self, val):
-        self["tickson"] = val
+        self['tickson'] = val
 
     @property
     def ticksuffix(self):
@@ -1940,11 +1850,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -1960,11 +1870,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -1978,11 +1888,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -1997,11 +1907,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -2015,11 +1925,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -2033,11 +1943,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -2052,11 +1962,11 @@ def title(self):
         -------
         plotly.graph_objs.layout.yaxis.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def type(self):
@@ -2074,11 +1984,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def uirevision(self):
@@ -2093,11 +2003,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -2113,11 +2023,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def zeroline(self):
@@ -2133,11 +2043,11 @@ def zeroline(self):
         -------
         bool
         """
-        return self["zeroline"]
+        return self['zeroline']
 
     @zeroline.setter
     def zeroline(self, val):
-        self["zeroline"] = val
+        self['zeroline'] = val
 
     @property
     def zerolinecolor(self):
@@ -2155,11 +2065,11 @@ def zerolinecolor(self):
         -------
         str
         """
-        return self["zerolinecolor"]
+        return self['zerolinecolor']
 
     @zerolinecolor.setter
     def zerolinecolor(self, val):
-        self["zerolinecolor"] = val
+        self['zerolinecolor'] = val
 
     @property
     def zerolinewidth(self):
@@ -2173,11 +2083,11 @@ def zerolinewidth(self):
         -------
         int|float
         """
-        return self["zerolinewidth"]
+        return self['zerolinewidth']
 
     @zerolinewidth.setter
     def zerolinewidth(self, val):
-        self["zerolinewidth"] = val
+        self['zerolinewidth'] = val
 
     @property
     def _prop_descriptions(self):
@@ -2699,105 +2609,103 @@ def _prop_descriptions(self):
         zerolinewidth
             Sets the width (in px) of the zero line.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        anchor=None,
-        automargin=None,
-        autorange=None,
-        autorangeoptions=None,
-        autoshift=None,
-        autotickangles=None,
-        autotypenumbers=None,
-        calendar=None,
-        categoryarray=None,
-        categoryarraysrc=None,
-        categoryorder=None,
-        color=None,
-        constrain=None,
-        constraintoward=None,
-        dividercolor=None,
-        dividerwidth=None,
-        domain=None,
-        dtick=None,
-        exponentformat=None,
-        fixedrange=None,
-        gridcolor=None,
-        griddash=None,
-        gridwidth=None,
-        hoverformat=None,
-        insiderange=None,
-        labelalias=None,
-        layer=None,
-        linecolor=None,
-        linewidth=None,
-        matches=None,
-        maxallowed=None,
-        minallowed=None,
-        minexponent=None,
-        minor=None,
-        mirror=None,
-        nticks=None,
-        overlaying=None,
-        position=None,
-        range=None,
-        rangebreaks=None,
-        rangebreakdefaults=None,
-        rangemode=None,
-        scaleanchor=None,
-        scaleratio=None,
-        separatethousands=None,
-        shift=None,
-        showdividers=None,
-        showexponent=None,
-        showgrid=None,
-        showline=None,
-        showspikes=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        side=None,
-        spikecolor=None,
-        spikedash=None,
-        spikemode=None,
-        spikesnap=None,
-        spikethickness=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabelindex=None,
-        ticklabelindexsrc=None,
-        ticklabelmode=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelshift=None,
-        ticklabelstandoff=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        tickson=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        type=None,
-        uirevision=None,
-        visible=None,
-        zeroline=None,
-        zerolinecolor=None,
-        zerolinewidth=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            anchor=None,
+            automargin=None,
+            autorange=None,
+            autorangeoptions=None,
+            autoshift=None,
+            autotickangles=None,
+            autotypenumbers=None,
+            calendar=None,
+            categoryarray=None,
+            categoryarraysrc=None,
+            categoryorder=None,
+            color=None,
+            constrain=None,
+            constraintoward=None,
+            dividercolor=None,
+            dividerwidth=None,
+            domain=None,
+            dtick=None,
+            exponentformat=None,
+            fixedrange=None,
+            gridcolor=None,
+            griddash=None,
+            gridwidth=None,
+            hoverformat=None,
+            insiderange=None,
+            labelalias=None,
+            layer=None,
+            linecolor=None,
+            linewidth=None,
+            matches=None,
+            maxallowed=None,
+            minallowed=None,
+            minexponent=None,
+            minor=None,
+            mirror=None,
+            nticks=None,
+            overlaying=None,
+            position=None,
+            range=None,
+            rangebreaks=None,
+            rangebreakdefaults=None,
+            rangemode=None,
+            scaleanchor=None,
+            scaleratio=None,
+            separatethousands=None,
+            shift=None,
+            showdividers=None,
+            showexponent=None,
+            showgrid=None,
+            showline=None,
+            showspikes=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            side=None,
+            spikecolor=None,
+            spikedash=None,
+            spikemode=None,
+            spikesnap=None,
+            spikethickness=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabelindex=None,
+            ticklabelindexsrc=None,
+            ticklabelmode=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelshift=None,
+            ticklabelstandoff=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            tickson=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            type=None,
+            uirevision=None,
+            visible=None,
+            zeroline=None,
+            zerolinecolor=None,
+            zerolinewidth=None,
+            **kwargs
+        ):
         """
         Construct a new YAxis object
 
@@ -3327,9 +3235,9 @@ def __init__(
         -------
         YAxis
         """
-        super().__init__("yaxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('yaxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -3339,108 +3247,108 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.YAxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.YAxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("anchor", arg, anchor)
-        self._set_property("automargin", arg, automargin)
-        self._set_property("autorange", arg, autorange)
-        self._set_property("autorangeoptions", arg, autorangeoptions)
-        self._set_property("autoshift", arg, autoshift)
-        self._set_property("autotickangles", arg, autotickangles)
-        self._set_property("autotypenumbers", arg, autotypenumbers)
-        self._set_property("calendar", arg, calendar)
-        self._set_property("categoryarray", arg, categoryarray)
-        self._set_property("categoryarraysrc", arg, categoryarraysrc)
-        self._set_property("categoryorder", arg, categoryorder)
-        self._set_property("color", arg, color)
-        self._set_property("constrain", arg, constrain)
-        self._set_property("constraintoward", arg, constraintoward)
-        self._set_property("dividercolor", arg, dividercolor)
-        self._set_property("dividerwidth", arg, dividerwidth)
-        self._set_property("domain", arg, domain)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("fixedrange", arg, fixedrange)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("griddash", arg, griddash)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("hoverformat", arg, hoverformat)
-        self._set_property("insiderange", arg, insiderange)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("layer", arg, layer)
-        self._set_property("linecolor", arg, linecolor)
-        self._set_property("linewidth", arg, linewidth)
-        self._set_property("matches", arg, matches)
-        self._set_property("maxallowed", arg, maxallowed)
-        self._set_property("minallowed", arg, minallowed)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("minor", arg, minor)
-        self._set_property("mirror", arg, mirror)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("overlaying", arg, overlaying)
-        self._set_property("position", arg, position)
-        self._set_property("range", arg, range)
-        self._set_property("rangebreaks", arg, rangebreaks)
-        self._set_property("rangebreakdefaults", arg, rangebreakdefaults)
-        self._set_property("rangemode", arg, rangemode)
-        self._set_property("scaleanchor", arg, scaleanchor)
-        self._set_property("scaleratio", arg, scaleratio)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("shift", arg, shift)
-        self._set_property("showdividers", arg, showdividers)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("showline", arg, showline)
-        self._set_property("showspikes", arg, showspikes)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("side", arg, side)
-        self._set_property("spikecolor", arg, spikecolor)
-        self._set_property("spikedash", arg, spikedash)
-        self._set_property("spikemode", arg, spikemode)
-        self._set_property("spikesnap", arg, spikesnap)
-        self._set_property("spikethickness", arg, spikethickness)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabelindex", arg, ticklabelindex)
-        self._set_property("ticklabelindexsrc", arg, ticklabelindexsrc)
-        self._set_property("ticklabelmode", arg, ticklabelmode)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelshift", arg, ticklabelshift)
-        self._set_property("ticklabelstandoff", arg, ticklabelstandoff)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("tickson", arg, tickson)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("type", arg, type)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
-        self._set_property("zeroline", arg, zeroline)
-        self._set_property("zerolinecolor", arg, zerolinecolor)
-        self._set_property("zerolinewidth", arg, zerolinewidth)
+an instance of :class:`plotly.graph_objs.layout.YAxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('anchor', arg, anchor)
+        self._set_property('automargin', arg, automargin)
+        self._set_property('autorange', arg, autorange)
+        self._set_property('autorangeoptions', arg, autorangeoptions)
+        self._set_property('autoshift', arg, autoshift)
+        self._set_property('autotickangles', arg, autotickangles)
+        self._set_property('autotypenumbers', arg, autotypenumbers)
+        self._set_property('calendar', arg, calendar)
+        self._set_property('categoryarray', arg, categoryarray)
+        self._set_property('categoryarraysrc', arg, categoryarraysrc)
+        self._set_property('categoryorder', arg, categoryorder)
+        self._set_property('color', arg, color)
+        self._set_property('constrain', arg, constrain)
+        self._set_property('constraintoward', arg, constraintoward)
+        self._set_property('dividercolor', arg, dividercolor)
+        self._set_property('dividerwidth', arg, dividerwidth)
+        self._set_property('domain', arg, domain)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('fixedrange', arg, fixedrange)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('griddash', arg, griddash)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('hoverformat', arg, hoverformat)
+        self._set_property('insiderange', arg, insiderange)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('layer', arg, layer)
+        self._set_property('linecolor', arg, linecolor)
+        self._set_property('linewidth', arg, linewidth)
+        self._set_property('matches', arg, matches)
+        self._set_property('maxallowed', arg, maxallowed)
+        self._set_property('minallowed', arg, minallowed)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('minor', arg, minor)
+        self._set_property('mirror', arg, mirror)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('overlaying', arg, overlaying)
+        self._set_property('position', arg, position)
+        self._set_property('range', arg, range)
+        self._set_property('rangebreaks', arg, rangebreaks)
+        self._set_property('rangebreakdefaults', arg, rangebreakdefaults)
+        self._set_property('rangemode', arg, rangemode)
+        self._set_property('scaleanchor', arg, scaleanchor)
+        self._set_property('scaleratio', arg, scaleratio)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('shift', arg, shift)
+        self._set_property('showdividers', arg, showdividers)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('showline', arg, showline)
+        self._set_property('showspikes', arg, showspikes)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('side', arg, side)
+        self._set_property('spikecolor', arg, spikecolor)
+        self._set_property('spikedash', arg, spikedash)
+        self._set_property('spikemode', arg, spikemode)
+        self._set_property('spikesnap', arg, spikesnap)
+        self._set_property('spikethickness', arg, spikethickness)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabelindex', arg, ticklabelindex)
+        self._set_property('ticklabelindexsrc', arg, ticklabelindexsrc)
+        self._set_property('ticklabelmode', arg, ticklabelmode)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelshift', arg, ticklabelshift)
+        self._set_property('ticklabelstandoff', arg, ticklabelstandoff)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('tickson', arg, tickson)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('type', arg, type)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
+        self._set_property('zeroline', arg, zeroline)
+        self._set_property('zerolinecolor', arg, zerolinecolor)
+        self._set_property('zerolinewidth', arg, zerolinewidth)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/annotation/__init__.py b/plotly/graph_objs/layout/annotation/__init__.py
index a9cb1938bc8..a10fc8d3857 100644
--- a/plotly/graph_objs/layout/annotation/__init__.py
+++ b/plotly/graph_objs/layout/annotation/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+    from ._hoverlabel import Hoverlabel
+    from . import hoverlabel
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel'],
+        ['._font.Font', '._hoverlabel.Hoverlabel']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".hoverlabel"], ["._font.Font", "._hoverlabel.Hoverlabel"]
-)
diff --git a/plotly/graph_objs/layout/annotation/_font.py b/plotly/graph_objs/layout/annotation/_font.py
index 651a38ca803..e17a6936b9f 100644
--- a/plotly/graph_objs/layout/annotation/_font.py
+++ b/plotly/graph_objs/layout/annotation/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.annotation"
-    _path_str = "layout.annotation.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.annotation'
+    _path_str = 'layout.annotation.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.annotation.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.annotation.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.annotation.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/annotation/_hoverlabel.py b/plotly/graph_objs/layout/annotation/_hoverlabel.py
index 052860cc6f0..fef4ed911da 100644
--- a/plotly/graph_objs/layout/annotation/_hoverlabel.py
+++ b/plotly/graph_objs/layout/annotation/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Hoverlabel(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.annotation"
-    _path_str = "layout.annotation.hoverlabel"
+    _parent_path_str = 'layout.annotation'
+    _path_str = 'layout.annotation.hoverlabel'
     _valid_props = {"bgcolor", "bordercolor", "font"}
 
     @property
@@ -29,11 +33,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -53,11 +57,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def font(self):
@@ -75,11 +79,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.annotation.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def _prop_descriptions(self):
@@ -97,8 +101,13 @@ def _prop_descriptions(self):
             global hover font and size, with color from
             `hoverlabel.bordercolor`.
         """
-
-    def __init__(self, arg=None, bgcolor=None, bordercolor=None, font=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            font=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -125,9 +134,9 @@ def __init__(self, arg=None, bgcolor=None, bordercolor=None, font=None, **kwargs
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -137,18 +146,18 @@ def __init__(self, arg=None, bgcolor=None, bordercolor=None, font=None, **kwargs
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.annotation.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.annotation.Hoverlabel`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.annotation.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("font", arg, font)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('font', arg, font)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/annotation/hoverlabel/__init__.py b/plotly/graph_objs/layout/annotation/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/annotation/hoverlabel/__init__.py
+++ b/plotly/graph_objs/layout/annotation/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/annotation/hoverlabel/_font.py b/plotly/graph_objs/layout/annotation/hoverlabel/_font.py
index 4b89faac69a..ac57ed6ddb1 100644
--- a/plotly/graph_objs/layout/annotation/hoverlabel/_font.py
+++ b/plotly/graph_objs/layout/annotation/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.annotation.hoverlabel"
-    _path_str = "layout.annotation.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.annotation.hoverlabel'
+    _path_str = 'layout.annotation.hoverlabel.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -303,9 +295,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -315,24 +307,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.annotation.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.annotation.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.annotation.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/coloraxis/__init__.py b/plotly/graph_objs/layout/coloraxis/__init__.py
index 5e1805d8fa8..c35de683492 100644
--- a/plotly/graph_objs/layout/coloraxis/__init__.py
+++ b/plotly/graph_objs/layout/coloraxis/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".colorbar"], ["._colorbar.ColorBar"]
-)
diff --git a/plotly/graph_objs/layout/coloraxis/_colorbar.py b/plotly/graph_objs/layout/coloraxis/_colorbar.py
index 5b6adc752b7..8d6148448e2 100644
--- a/plotly/graph_objs/layout/coloraxis/_colorbar.py
+++ b/plotly/graph_objs/layout/coloraxis/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.coloraxis"
-    _path_str = "layout.coloraxis.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'layout.coloraxis'
+    _path_str = 'layout.coloraxis.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.layout.coloraxis.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.layout.coloraxis.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.layout.coloraxis.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.layout.coloraxis.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.coloraxis.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.coloraxis.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.layout.coloraxis.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/coloraxis/colorbar/__init__.py b/plotly/graph_objs/layout/coloraxis/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/layout/coloraxis/colorbar/__init__.py
+++ b/plotly/graph_objs/layout/coloraxis/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/layout/coloraxis/colorbar/_tickfont.py b/plotly/graph_objs/layout/coloraxis/colorbar/_tickfont.py
index 53c81dc8b07..77cdcb27d70 100644
--- a/plotly/graph_objs/layout/coloraxis/colorbar/_tickfont.py
+++ b/plotly/graph_objs/layout/coloraxis/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.coloraxis.colorbar"
-    _path_str = "layout.coloraxis.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.coloraxis.colorbar'
+    _path_str = 'layout.coloraxis.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.coloraxis.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.coloraxis.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.coloraxis.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/coloraxis/colorbar/_tickformatstop.py b/plotly/graph_objs/layout/coloraxis/colorbar/_tickformatstop.py
index e9e9f78a545..10ca344fea0 100644
--- a/plotly/graph_objs/layout/coloraxis/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/layout/coloraxis/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.coloraxis.colorbar"
-    _path_str = "layout.coloraxis.colorbar.tickformatstop"
+    _parent_path_str = 'layout.coloraxis.colorbar'
+    _path_str = 'layout.coloraxis.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.coloraxis.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.coloraxis.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.coloraxis.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/coloraxis/colorbar/_title.py b/plotly/graph_objs/layout/coloraxis/colorbar/_title.py
index eab7c4a99d5..da57b5cefc5 100644
--- a/plotly/graph_objs/layout/coloraxis/colorbar/_title.py
+++ b/plotly/graph_objs/layout/coloraxis/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.coloraxis.colorbar"
-    _path_str = "layout.coloraxis.colorbar.title"
+    _parent_path_str = 'layout.coloraxis.colorbar'
+    _path_str = 'layout.coloraxis.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.coloraxis.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.coloraxis.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.coloraxis.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.coloraxis.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/coloraxis/colorbar/title/__init__.py b/plotly/graph_objs/layout/coloraxis/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/coloraxis/colorbar/title/__init__.py
+++ b/plotly/graph_objs/layout/coloraxis/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/coloraxis/colorbar/title/_font.py b/plotly/graph_objs/layout/coloraxis/colorbar/title/_font.py
index e41fb7e25e2..70522f17d9b 100644
--- a/plotly/graph_objs/layout/coloraxis/colorbar/title/_font.py
+++ b/plotly/graph_objs/layout/coloraxis/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.coloraxis.colorbar.title"
-    _path_str = "layout.coloraxis.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.coloraxis.colorbar.title'
+    _path_str = 'layout.coloraxis.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.coloraxis.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.coloraxis.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.coloraxis.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/geo/__init__.py b/plotly/graph_objs/layout/geo/__init__.py
index dcabe9a0588..6c2cf8fd891 100644
--- a/plotly/graph_objs/layout/geo/__init__.py
+++ b/plotly/graph_objs/layout/geo/__init__.py
@@ -1,14 +1,18 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._center import Center
+    from ._domain import Domain
+    from ._lataxis import Lataxis
+    from ._lonaxis import Lonaxis
+    from ._projection import Projection
+    from . import projection
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.projection'],
+        ['._center.Center', '._domain.Domain', '._lataxis.Lataxis', '._lonaxis.Lonaxis', '._projection.Projection']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".projection"],
-    [
-        "._center.Center",
-        "._domain.Domain",
-        "._lataxis.Lataxis",
-        "._lonaxis.Lonaxis",
-        "._projection.Projection",
-    ],
-)
diff --git a/plotly/graph_objs/layout/geo/_center.py b/plotly/graph_objs/layout/geo/_center.py
index 555788d454b..3551103afaa 100644
--- a/plotly/graph_objs/layout/geo/_center.py
+++ b/plotly/graph_objs/layout/geo/_center.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Center(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.geo"
-    _path_str = "layout.geo.center"
+    _parent_path_str = 'layout.geo'
+    _path_str = 'layout.geo.center'
     _valid_props = {"lat", "lon"}
 
     @property
@@ -25,11 +29,11 @@ def lat(self):
         -------
         int|float
         """
-        return self["lat"]
+        return self['lat']
 
     @lat.setter
     def lat(self, val):
-        self["lat"] = val
+        self['lat'] = val
 
     @property
     def lon(self):
@@ -46,11 +50,11 @@ def lon(self):
         -------
         int|float
         """
-        return self["lon"]
+        return self['lon']
 
     @lon.setter
     def lon(self, val):
-        self["lon"] = val
+        self['lon'] = val
 
     @property
     def _prop_descriptions(self):
@@ -65,8 +69,12 @@ def _prop_descriptions(self):
             longitude range for scoped projection and above
             `projection.rotation.lon` otherwise.
         """
-
-    def __init__(self, arg=None, lat=None, lon=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            lat=None,
+            lon=None,
+            **kwargs
+        ):
         """
         Construct a new Center object
 
@@ -90,9 +98,9 @@ def __init__(self, arg=None, lat=None, lon=None, **kwargs):
         -------
         Center
         """
-        super().__init__("center")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('center')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -102,17 +110,17 @@ def __init__(self, arg=None, lat=None, lon=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.geo.Center
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.geo.Center`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.geo.Center`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("lat", arg, lat)
-        self._set_property("lon", arg, lon)
+        self._set_property('lat', arg, lat)
+        self._set_property('lon', arg, lon)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/geo/_domain.py b/plotly/graph_objs/layout/geo/_domain.py
index 18cb943a0f8..5946fc35371 100644
--- a/plotly/graph_objs/layout/geo/_domain.py
+++ b/plotly/graph_objs/layout/geo/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.geo"
-    _path_str = "layout.geo.domain"
+    _parent_path_str = 'layout.geo'
+    _path_str = 'layout.geo.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -28,11 +32,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -51,63 +55,63 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this geo subplot (in plot
-            fraction). Note that geo subplots are constrained by domain. In
-            general, when `projection.scale` is set to 1. a map will fit
-            either its x or y domain, but not both.
-
-            The 'x' property is an info array that may be specified as:
+        Sets the horizontal domain of this geo subplot (in plot
+        fraction). Note that geo subplots are constrained by domain. In
+        general, when `projection.scale` is set to 1. a map will fit
+        either its x or y domain, but not both.
+
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this geo subplot (in plot
-            fraction). Note that geo subplots are constrained by domain. In
-            general, when `projection.scale` is set to 1. a map will fit
-            either its x or y domain, but not both.
-
-            The 'y' property is an info array that may be specified as:
-
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        Sets the vertical domain of this geo subplot (in plot
+        fraction). Note that geo subplots are constrained by domain. In
+        general, when `projection.scale` is set to 1. a map will fit
+        either its x or y domain, but not both.
+
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -137,8 +141,14 @@ def _prop_descriptions(self):
             1. a map will fit either its x or y domain, but not
             both.
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -177,9 +187,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -189,19 +199,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.geo.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.geo.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.geo.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/geo/_lataxis.py b/plotly/graph_objs/layout/geo/_lataxis.py
index dcbf8f1e661..cf4325ada76 100644
--- a/plotly/graph_objs/layout/geo/_lataxis.py
+++ b/plotly/graph_objs/layout/geo/_lataxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,17 +11,9 @@
 
 class Lataxis(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.geo"
-    _path_str = "layout.geo.lataxis"
-    _valid_props = {
-        "dtick",
-        "gridcolor",
-        "griddash",
-        "gridwidth",
-        "range",
-        "showgrid",
-        "tick0",
-    }
+    _parent_path_str = 'layout.geo'
+    _path_str = 'layout.geo.lataxis'
+    _valid_props = {"dtick", "gridcolor", "griddash", "gridwidth", "range", "showgrid", "tick0"}
 
     @property
     def dtick(self):
@@ -31,11 +27,11 @@ def dtick(self):
         -------
         int|float
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def gridcolor(self):
@@ -53,11 +49,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def griddash(self):
@@ -77,11 +73,11 @@ def griddash(self):
         -------
         str
         """
-        return self["griddash"]
+        return self['griddash']
 
     @griddash.setter
     def griddash(self, val):
-        self["griddash"] = val
+        self['griddash'] = val
 
     @property
     def gridwidth(self):
@@ -95,35 +91,35 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def range(self):
         """
-            Sets the range of this axis (in degrees), sets the map's
-            clipped coordinates.
+        Sets the range of this axis (in degrees), sets the map's
+        clipped coordinates.
 
-            The 'range' property is an info array that may be specified as:
-
-            * a list or tuple of 2 elements where:
-        (0) The 'range[0]' property is a number and may be specified as:
-              - An int or float
-        (1) The 'range[1]' property is a number and may be specified as:
-              - An int or float
+        The 'range' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'range[0]' property is a number and may be specified as:
+          - An int or float
+    (1) The 'range[1]' property is a number and may be specified as:
+          - An int or float
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["range"]
+        return self['range']
 
     @range.setter
     def range(self, val):
-        self["range"] = val
+        self['range'] = val
 
     @property
     def showgrid(self):
@@ -137,11 +133,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def tick0(self):
@@ -155,11 +151,11 @@ def tick0(self):
         -------
         int|float
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def _prop_descriptions(self):
@@ -183,19 +179,17 @@ def _prop_descriptions(self):
         tick0
             Sets the graticule's starting tick longitude/latitude.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtick=None,
-        gridcolor=None,
-        griddash=None,
-        gridwidth=None,
-        range=None,
-        showgrid=None,
-        tick0=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtick=None,
+            gridcolor=None,
+            griddash=None,
+            gridwidth=None,
+            range=None,
+            showgrid=None,
+            tick0=None,
+            **kwargs
+        ):
         """
         Construct a new Lataxis object
 
@@ -228,9 +222,9 @@ def __init__(
         -------
         Lataxis
         """
-        super().__init__("lataxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('lataxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -240,22 +234,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.geo.Lataxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.geo.Lataxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("dtick", arg, dtick)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("griddash", arg, griddash)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("range", arg, range)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("tick0", arg, tick0)
+an instance of :class:`plotly.graph_objs.layout.geo.Lataxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('dtick', arg, dtick)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('griddash', arg, griddash)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('range', arg, range)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('tick0', arg, tick0)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/geo/_lonaxis.py b/plotly/graph_objs/layout/geo/_lonaxis.py
index c7992778502..a2d95742e66 100644
--- a/plotly/graph_objs/layout/geo/_lonaxis.py
+++ b/plotly/graph_objs/layout/geo/_lonaxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,17 +11,9 @@
 
 class Lonaxis(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.geo"
-    _path_str = "layout.geo.lonaxis"
-    _valid_props = {
-        "dtick",
-        "gridcolor",
-        "griddash",
-        "gridwidth",
-        "range",
-        "showgrid",
-        "tick0",
-    }
+    _parent_path_str = 'layout.geo'
+    _path_str = 'layout.geo.lonaxis'
+    _valid_props = {"dtick", "gridcolor", "griddash", "gridwidth", "range", "showgrid", "tick0"}
 
     @property
     def dtick(self):
@@ -31,11 +27,11 @@ def dtick(self):
         -------
         int|float
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def gridcolor(self):
@@ -53,11 +49,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def griddash(self):
@@ -77,11 +73,11 @@ def griddash(self):
         -------
         str
         """
-        return self["griddash"]
+        return self['griddash']
 
     @griddash.setter
     def griddash(self, val):
-        self["griddash"] = val
+        self['griddash'] = val
 
     @property
     def gridwidth(self):
@@ -95,35 +91,35 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def range(self):
         """
-            Sets the range of this axis (in degrees), sets the map's
-            clipped coordinates.
+        Sets the range of this axis (in degrees), sets the map's
+        clipped coordinates.
 
-            The 'range' property is an info array that may be specified as:
-
-            * a list or tuple of 2 elements where:
-        (0) The 'range[0]' property is a number and may be specified as:
-              - An int or float
-        (1) The 'range[1]' property is a number and may be specified as:
-              - An int or float
+        The 'range' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'range[0]' property is a number and may be specified as:
+          - An int or float
+    (1) The 'range[1]' property is a number and may be specified as:
+          - An int or float
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["range"]
+        return self['range']
 
     @range.setter
     def range(self, val):
-        self["range"] = val
+        self['range'] = val
 
     @property
     def showgrid(self):
@@ -137,11 +133,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def tick0(self):
@@ -155,11 +151,11 @@ def tick0(self):
         -------
         int|float
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def _prop_descriptions(self):
@@ -183,19 +179,17 @@ def _prop_descriptions(self):
         tick0
             Sets the graticule's starting tick longitude/latitude.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtick=None,
-        gridcolor=None,
-        griddash=None,
-        gridwidth=None,
-        range=None,
-        showgrid=None,
-        tick0=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtick=None,
+            gridcolor=None,
+            griddash=None,
+            gridwidth=None,
+            range=None,
+            showgrid=None,
+            tick0=None,
+            **kwargs
+        ):
         """
         Construct a new Lonaxis object
 
@@ -228,9 +222,9 @@ def __init__(
         -------
         Lonaxis
         """
-        super().__init__("lonaxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('lonaxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -240,22 +234,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.geo.Lonaxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.geo.Lonaxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("dtick", arg, dtick)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("griddash", arg, griddash)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("range", arg, range)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("tick0", arg, tick0)
+an instance of :class:`plotly.graph_objs.layout.geo.Lonaxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('dtick', arg, dtick)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('griddash', arg, griddash)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('range', arg, range)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('tick0', arg, tick0)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/geo/_projection.py b/plotly/graph_objs/layout/geo/_projection.py
index bd56424ca97..8fbc8748d83 100644
--- a/plotly/graph_objs/layout/geo/_projection.py
+++ b/plotly/graph_objs/layout/geo/_projection.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Projection(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.geo"
-    _path_str = "layout.geo.projection"
+    _parent_path_str = 'layout.geo'
+    _path_str = 'layout.geo.projection'
     _valid_props = {"distance", "parallels", "rotation", "scale", "tilt", "type"}
 
     @property
@@ -25,35 +29,35 @@ def distance(self):
         -------
         int|float
         """
-        return self["distance"]
+        return self['distance']
 
     @distance.setter
     def distance(self, val):
-        self["distance"] = val
+        self['distance'] = val
 
     @property
     def parallels(self):
         """
-            For conic projection types only. Sets the parallels (tangent,
-            secant) where the cone intersects the sphere.
+        For conic projection types only. Sets the parallels (tangent,
+        secant) where the cone intersects the sphere.
 
-            The 'parallels' property is an info array that may be specified as:
-
-            * a list or tuple of 2 elements where:
-        (0) The 'parallels[0]' property is a number and may be specified as:
-              - An int or float
-        (1) The 'parallels[1]' property is a number and may be specified as:
-              - An int or float
+        The 'parallels' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'parallels[0]' property is a number and may be specified as:
+          - An int or float
+    (1) The 'parallels[1]' property is a number and may be specified as:
+          - An int or float
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["parallels"]
+        return self['parallels']
 
     @parallels.setter
     def parallels(self, val):
-        self["parallels"] = val
+        self['parallels'] = val
 
     @property
     def rotation(self):
@@ -68,11 +72,11 @@ def rotation(self):
         -------
         plotly.graph_objs.layout.geo.projection.Rotation
         """
-        return self["rotation"]
+        return self['rotation']
 
     @rotation.setter
     def rotation(self, val):
-        self["rotation"] = val
+        self['rotation'] = val
 
     @property
     def scale(self):
@@ -87,11 +91,11 @@ def scale(self):
         -------
         int|float
         """
-        return self["scale"]
+        return self['scale']
 
     @scale.setter
     def scale(self, val):
-        self["scale"] = val
+        self['scale'] = val
 
     @property
     def tilt(self):
@@ -106,11 +110,11 @@ def tilt(self):
         -------
         int|float
         """
-        return self["tilt"]
+        return self['tilt']
 
     @tilt.setter
     def tilt(self, val):
-        self["tilt"] = val
+        self['tilt'] = val
 
     @property
     def type(self):
@@ -148,11 +152,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def _prop_descriptions(self):
@@ -177,18 +181,16 @@ def _prop_descriptions(self):
         type
             Sets the projection type.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        distance=None,
-        parallels=None,
-        rotation=None,
-        scale=None,
-        tilt=None,
-        type=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            distance=None,
+            parallels=None,
+            rotation=None,
+            scale=None,
+            tilt=None,
+            type=None,
+            **kwargs
+        ):
         """
         Construct a new Projection object
 
@@ -222,9 +224,9 @@ def __init__(
         -------
         Projection
         """
-        super().__init__("projection")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('projection')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -234,21 +236,21 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.geo.Projection
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.geo.Projection`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("distance", arg, distance)
-        self._set_property("parallels", arg, parallels)
-        self._set_property("rotation", arg, rotation)
-        self._set_property("scale", arg, scale)
-        self._set_property("tilt", arg, tilt)
-        self._set_property("type", arg, type)
+an instance of :class:`plotly.graph_objs.layout.geo.Projection`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('distance', arg, distance)
+        self._set_property('parallels', arg, parallels)
+        self._set_property('rotation', arg, rotation)
+        self._set_property('scale', arg, scale)
+        self._set_property('tilt', arg, tilt)
+        self._set_property('type', arg, type)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/geo/projection/__init__.py b/plotly/graph_objs/layout/geo/projection/__init__.py
index 0c79216e297..25ee63f982f 100644
--- a/plotly/graph_objs/layout/geo/projection/__init__.py
+++ b/plotly/graph_objs/layout/geo/projection/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._rotation import Rotation
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._rotation.Rotation']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._rotation.Rotation"])
diff --git a/plotly/graph_objs/layout/geo/projection/_rotation.py b/plotly/graph_objs/layout/geo/projection/_rotation.py
index 6961e429786..058110fdfdd 100644
--- a/plotly/graph_objs/layout/geo/projection/_rotation.py
+++ b/plotly/graph_objs/layout/geo/projection/_rotation.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Rotation(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.geo.projection"
-    _path_str = "layout.geo.projection.rotation"
+    _parent_path_str = 'layout.geo.projection'
+    _path_str = 'layout.geo.projection.rotation'
     _valid_props = {"lat", "lon", "roll"}
 
     @property
@@ -23,11 +27,11 @@ def lat(self):
         -------
         int|float
         """
-        return self["lat"]
+        return self['lat']
 
     @lat.setter
     def lat(self, val):
-        self["lat"] = val
+        self['lat'] = val
 
     @property
     def lon(self):
@@ -42,11 +46,11 @@ def lon(self):
         -------
         int|float
         """
-        return self["lon"]
+        return self['lon']
 
     @lon.setter
     def lon(self, val):
-        self["lon"] = val
+        self['lon'] = val
 
     @property
     def roll(self):
@@ -61,11 +65,11 @@ def roll(self):
         -------
         int|float
         """
-        return self["roll"]
+        return self['roll']
 
     @roll.setter
     def roll(self, val):
-        self["roll"] = val
+        self['roll'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
             Roll the map (in degrees) For example, a roll of 180
             makes the map appear upside down.
         """
-
-    def __init__(self, arg=None, lat=None, lon=None, roll=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            lat=None,
+            lon=None,
+            roll=None,
+            **kwargs
+        ):
         """
         Construct a new Rotation object
 
@@ -103,9 +112,9 @@ def __init__(self, arg=None, lat=None, lon=None, roll=None, **kwargs):
         -------
         Rotation
         """
-        super().__init__("rotation")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('rotation')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -115,18 +124,18 @@ def __init__(self, arg=None, lat=None, lon=None, roll=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.geo.projection.Rotation
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.geo.projection.Rotation`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.geo.projection.Rotation`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("lat", arg, lat)
-        self._set_property("lon", arg, lon)
-        self._set_property("roll", arg, roll)
+        self._set_property('lat', arg, lat)
+        self._set_property('lon', arg, lon)
+        self._set_property('roll', arg, roll)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/grid/__init__.py b/plotly/graph_objs/layout/grid/__init__.py
index b88f1daf603..2337e92360e 100644
--- a/plotly/graph_objs/layout/grid/__init__.py
+++ b/plotly/graph_objs/layout/grid/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._domain import Domain
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._domain.Domain']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._domain.Domain"])
diff --git a/plotly/graph_objs/layout/grid/_domain.py b/plotly/graph_objs/layout/grid/_domain.py
index b9afa3311ec..0b3428eafbe 100644
--- a/plotly/graph_objs/layout/grid/_domain.py
+++ b/plotly/graph_objs/layout/grid/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,59 @@
 
 class Domain(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.grid"
-    _path_str = "layout.grid.domain"
+    _parent_path_str = 'layout.grid'
+    _path_str = 'layout.grid.domain'
     _valid_props = {"x", "y"}
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this grid subplot (in plot
-            fraction). The first and last cells end exactly at the domain
-            edges, with no grout around the edges.
+        Sets the horizontal domain of this grid subplot (in plot
+        fraction). The first and last cells end exactly at the domain
+        edges, with no grout around the edges.
+
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            The 'x' property is an info array that may be specified as:
-
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this grid subplot (in plot
-            fraction). The first and last cells end exactly at the domain
-            edges, with no grout around the edges.
-
-            The 'y' property is an info array that may be specified as:
+        Sets the vertical domain of this grid subplot (in plot
+        fraction). The first and last cells end exactly at the domain
+        edges, with no grout around the edges.
+
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -73,8 +77,12 @@ def _prop_descriptions(self):
             fraction). The first and last cells end exactly at the
             domain edges, with no grout around the edges.
         """
-
-    def __init__(self, arg=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -97,9 +105,9 @@ def __init__(self, arg=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -109,17 +117,17 @@ def __init__(self, arg=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.grid.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.grid.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.grid.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/hoverlabel/__init__.py b/plotly/graph_objs/layout/hoverlabel/__init__.py
index 38bd14ede8b..e200bd8d3c6 100644
--- a/plotly/graph_objs/layout/hoverlabel/__init__.py
+++ b/plotly/graph_objs/layout/hoverlabel/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+    from ._grouptitlefont import Grouptitlefont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font', '._grouptitlefont.Grouptitlefont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._font.Font", "._grouptitlefont.Grouptitlefont"]
-)
diff --git a/plotly/graph_objs/layout/hoverlabel/_font.py b/plotly/graph_objs/layout/hoverlabel/_font.py
index 74b6f929ba2..c3e2f06cf3f 100644
--- a/plotly/graph_objs/layout/hoverlabel/_font.py
+++ b/plotly/graph_objs/layout/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.hoverlabel"
-    _path_str = "layout.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.hoverlabel'
+    _path_str = 'layout.hoverlabel.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -303,9 +295,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -315,24 +307,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/hoverlabel/_grouptitlefont.py b/plotly/graph_objs/layout/hoverlabel/_grouptitlefont.py
index 960f3c15cdc..0ab84ee3355 100644
--- a/plotly/graph_objs/layout/hoverlabel/_grouptitlefont.py
+++ b/plotly/graph_objs/layout/hoverlabel/_grouptitlefont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Grouptitlefont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.hoverlabel"
-    _path_str = "layout.hoverlabel.grouptitlefont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.hoverlabel'
+    _path_str = 'layout.hoverlabel.grouptitlefont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Grouptitlefont object
 
@@ -303,9 +295,9 @@ def __init__(
         -------
         Grouptitlefont
         """
-        super().__init__("grouptitlefont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('grouptitlefont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -315,24 +307,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.hoverlabel.Grouptitlefont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.hoverlabel.Grouptitlefont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.hoverlabel.Grouptitlefont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/legend/__init__.py b/plotly/graph_objs/layout/legend/__init__.py
index 31935632126..2d950d8cf6b 100644
--- a/plotly/graph_objs/layout/legend/__init__.py
+++ b/plotly/graph_objs/layout/legend/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+    from ._grouptitlefont import Grouptitlefont
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._font.Font', '._grouptitlefont.Grouptitlefont', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._font.Font", "._grouptitlefont.Grouptitlefont", "._title.Title"],
-)
diff --git a/plotly/graph_objs/layout/legend/_font.py b/plotly/graph_objs/layout/legend/_font.py
index f0f62c93213..7cee821129e 100644
--- a/plotly/graph_objs/layout/legend/_font.py
+++ b/plotly/graph_objs/layout/legend/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.legend"
-    _path_str = "layout.legend.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.legend'
+    _path_str = 'layout.legend.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.legend.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.legend.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.legend.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/legend/_grouptitlefont.py b/plotly/graph_objs/layout/legend/_grouptitlefont.py
index 5a60a45ebd5..df53ac93cd6 100644
--- a/plotly/graph_objs/layout/legend/_grouptitlefont.py
+++ b/plotly/graph_objs/layout/legend/_grouptitlefont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Grouptitlefont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.legend"
-    _path_str = "layout.legend.grouptitlefont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.legend'
+    _path_str = 'layout.legend.grouptitlefont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Grouptitlefont object
 
@@ -303,9 +295,9 @@ def __init__(
         -------
         Grouptitlefont
         """
-        super().__init__("grouptitlefont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('grouptitlefont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -315,24 +307,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.legend.Grouptitlefont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.legend.Grouptitlefont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.legend.Grouptitlefont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/legend/_title.py b/plotly/graph_objs/layout/legend/_title.py
index 68119a23670..520d0ca4864 100644
--- a/plotly/graph_objs/layout/legend/_title.py
+++ b/plotly/graph_objs/layout/legend/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.legend"
-    _path_str = "layout.legend.title"
+    _parent_path_str = 'layout.legend'
+    _path_str = 'layout.legend.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -27,11 +31,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.legend.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -50,11 +54,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -69,11 +73,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -91,8 +95,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -119,9 +128,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -131,18 +140,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.legend.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.legend.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.legend.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/legend/title/__init__.py b/plotly/graph_objs/layout/legend/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/legend/title/__init__.py
+++ b/plotly/graph_objs/layout/legend/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/legend/title/_font.py b/plotly/graph_objs/layout/legend/title/_font.py
index cadfbdea6e8..aeea6c702fd 100644
--- a/plotly/graph_objs/layout/legend/title/_font.py
+++ b/plotly/graph_objs/layout/legend/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.legend.title"
-    _path_str = "layout.legend.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.legend.title'
+    _path_str = 'layout.legend.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -303,9 +295,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -315,24 +307,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.legend.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.legend.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.legend.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/map/__init__.py b/plotly/graph_objs/layout/map/__init__.py
index 9dfa47aa1d8..95b667b49df 100644
--- a/plotly/graph_objs/layout/map/__init__.py
+++ b/plotly/graph_objs/layout/map/__init__.py
@@ -1,8 +1,17 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._bounds import Bounds
+    from ._center import Center
+    from ._domain import Domain
+    from ._layer import Layer
+    from . import layer
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.layer'],
+        ['._bounds.Bounds', '._center.Center', '._domain.Domain', '._layer.Layer']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".layer"],
-    ["._bounds.Bounds", "._center.Center", "._domain.Domain", "._layer.Layer"],
-)
diff --git a/plotly/graph_objs/layout/map/_bounds.py b/plotly/graph_objs/layout/map/_bounds.py
index 512b32e3ab4..ae4d15b1043 100644
--- a/plotly/graph_objs/layout/map/_bounds.py
+++ b/plotly/graph_objs/layout/map/_bounds.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Bounds(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.map"
-    _path_str = "layout.map.bounds"
+    _parent_path_str = 'layout.map'
+    _path_str = 'layout.map.bounds'
     _valid_props = {"east", "north", "south", "west"}
 
     @property
@@ -24,11 +28,11 @@ def east(self):
         -------
         int|float
         """
-        return self["east"]
+        return self['east']
 
     @east.setter
     def east(self, val):
-        self["east"] = val
+        self['east'] = val
 
     @property
     def north(self):
@@ -43,11 +47,11 @@ def north(self):
         -------
         int|float
         """
-        return self["north"]
+        return self['north']
 
     @north.setter
     def north(self, val):
-        self["north"] = val
+        self['north'] = val
 
     @property
     def south(self):
@@ -62,11 +66,11 @@ def south(self):
         -------
         int|float
         """
-        return self["south"]
+        return self['south']
 
     @south.setter
     def south(self, val):
-        self["south"] = val
+        self['south'] = val
 
     @property
     def west(self):
@@ -81,11 +85,11 @@ def west(self):
         -------
         int|float
         """
-        return self["west"]
+        return self['west']
 
     @west.setter
     def west(self, val):
-        self["west"] = val
+        self['west'] = val
 
     @property
     def _prop_descriptions(self):
@@ -103,10 +107,14 @@ def _prop_descriptions(self):
             Sets the minimum longitude of the map (in degrees East)
             if `east`, `south` and `north` are declared.
         """
-
-    def __init__(
-        self, arg=None, east=None, north=None, south=None, west=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            east=None,
+            north=None,
+            south=None,
+            west=None,
+            **kwargs
+        ):
         """
         Construct a new Bounds object
 
@@ -133,9 +141,9 @@ def __init__(
         -------
         Bounds
         """
-        super().__init__("bounds")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('bounds')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -145,19 +153,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.map.Bounds
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.map.Bounds`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.map.Bounds`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("east", arg, east)
-        self._set_property("north", arg, north)
-        self._set_property("south", arg, south)
-        self._set_property("west", arg, west)
+        self._set_property('east', arg, east)
+        self._set_property('north', arg, north)
+        self._set_property('south', arg, south)
+        self._set_property('west', arg, west)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/map/_center.py b/plotly/graph_objs/layout/map/_center.py
index 0b741df3e06..eeafa69d55a 100644
--- a/plotly/graph_objs/layout/map/_center.py
+++ b/plotly/graph_objs/layout/map/_center.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Center(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.map"
-    _path_str = "layout.map.center"
+    _parent_path_str = 'layout.map'
+    _path_str = 'layout.map.center'
     _valid_props = {"lat", "lon"}
 
     @property
@@ -23,11 +27,11 @@ def lat(self):
         -------
         int|float
         """
-        return self["lat"]
+        return self['lat']
 
     @lat.setter
     def lat(self, val):
-        self["lat"] = val
+        self['lat'] = val
 
     @property
     def lon(self):
@@ -41,11 +45,11 @@ def lon(self):
         -------
         int|float
         """
-        return self["lon"]
+        return self['lon']
 
     @lon.setter
     def lon(self, val):
-        self["lon"] = val
+        self['lon'] = val
 
     @property
     def _prop_descriptions(self):
@@ -57,8 +61,12 @@ def _prop_descriptions(self):
             Sets the longitude of the center of the map (in degrees
             East).
         """
-
-    def __init__(self, arg=None, lat=None, lon=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            lat=None,
+            lon=None,
+            **kwargs
+        ):
         """
         Construct a new Center object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, lat=None, lon=None, **kwargs):
         -------
         Center
         """
-        super().__init__("center")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('center')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, lat=None, lon=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.map.Center
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.map.Center`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.map.Center`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("lat", arg, lat)
-        self._set_property("lon", arg, lon)
+        self._set_property('lat', arg, lat)
+        self._set_property('lon', arg, lon)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/map/_domain.py b/plotly/graph_objs/layout/map/_domain.py
index b4d23da8bc4..8a7df1b4168 100644
--- a/plotly/graph_objs/layout/map/_domain.py
+++ b/plotly/graph_objs/layout/map/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.map"
-    _path_str = "layout.map.domain"
+    _parent_path_str = 'layout.map'
+    _path_str = 'layout.map.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -25,11 +29,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -45,59 +49,59 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this map subplot (in plot
-            fraction).
+        Sets the horizontal domain of this map subplot (in plot
+        fraction).
 
-            The 'x' property is an info array that may be specified as:
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this map subplot (in plot
-            fraction).
-
-            The 'y' property is an info array that may be specified as:
+        Sets the vertical domain of this map subplot (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,8 +119,14 @@ def _prop_descriptions(self):
             Sets the vertical domain of this map subplot (in plot
             fraction).
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -143,9 +153,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -155,19 +165,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.map.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.map.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.map.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/map/_layer.py b/plotly/graph_objs/layout/map/_layer.py
index 01aa9671d0c..f726189d475 100644
--- a/plotly/graph_objs/layout/map/_layer.py
+++ b/plotly/graph_objs/layout/map/_layer.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Layer(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.map"
-    _path_str = "layout.map.layer"
-    _valid_props = {
-        "below",
-        "circle",
-        "color",
-        "coordinates",
-        "fill",
-        "line",
-        "maxzoom",
-        "minzoom",
-        "name",
-        "opacity",
-        "source",
-        "sourceattribution",
-        "sourcelayer",
-        "sourcetype",
-        "symbol",
-        "templateitemname",
-        "type",
-        "visible",
-    }
+    _parent_path_str = 'layout.map'
+    _path_str = 'layout.map.layer'
+    _valid_props = {"below", "circle", "color", "coordinates", "fill", "line", "maxzoom", "minzoom", "name", "opacity", "source", "sourceattribution", "sourcelayer", "sourcetype", "symbol", "templateitemname", "type", "visible"}
 
     @property
     def below(self):
@@ -45,11 +30,11 @@ def below(self):
         -------
         str
         """
-        return self["below"]
+        return self['below']
 
     @below.setter
     def below(self, val):
-        self["below"] = val
+        self['below'] = val
 
     @property
     def circle(self):
@@ -64,11 +49,11 @@ def circle(self):
         -------
         plotly.graph_objs.layout.map.layer.Circle
         """
-        return self["circle"]
+        return self['circle']
 
     @circle.setter
     def circle(self, val):
-        self["circle"] = val
+        self['circle'] = val
 
     @property
     def color(self):
@@ -92,11 +77,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coordinates(self):
@@ -112,11 +97,11 @@ def coordinates(self):
         -------
         Any
         """
-        return self["coordinates"]
+        return self['coordinates']
 
     @coordinates.setter
     def coordinates(self, val):
-        self["coordinates"] = val
+        self['coordinates'] = val
 
     @property
     def fill(self):
@@ -131,11 +116,11 @@ def fill(self):
         -------
         plotly.graph_objs.layout.map.layer.Fill
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def line(self):
@@ -150,11 +135,11 @@ def line(self):
         -------
         plotly.graph_objs.layout.map.layer.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def maxzoom(self):
@@ -169,11 +154,11 @@ def maxzoom(self):
         -------
         int|float
         """
-        return self["maxzoom"]
+        return self['maxzoom']
 
     @maxzoom.setter
     def maxzoom(self, val):
-        self["maxzoom"] = val
+        self['maxzoom'] = val
 
     @property
     def minzoom(self):
@@ -188,11 +173,11 @@ def minzoom(self):
         -------
         int|float
         """
-        return self["minzoom"]
+        return self['minzoom']
 
     @minzoom.setter
     def minzoom(self, val):
-        self["minzoom"] = val
+        self['minzoom'] = val
 
     @property
     def name(self):
@@ -213,11 +198,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -237,11 +222,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def source(self):
@@ -259,11 +244,11 @@ def source(self):
         -------
         Any
         """
-        return self["source"]
+        return self['source']
 
     @source.setter
     def source(self, val):
-        self["source"] = val
+        self['source'] = val
 
     @property
     def sourceattribution(self):
@@ -278,11 +263,11 @@ def sourceattribution(self):
         -------
         str
         """
-        return self["sourceattribution"]
+        return self['sourceattribution']
 
     @sourceattribution.setter
     def sourceattribution(self, val):
-        self["sourceattribution"] = val
+        self['sourceattribution'] = val
 
     @property
     def sourcelayer(self):
@@ -299,11 +284,11 @@ def sourcelayer(self):
         -------
         str
         """
-        return self["sourcelayer"]
+        return self['sourcelayer']
 
     @sourcelayer.setter
     def sourcelayer(self, val):
-        self["sourcelayer"] = val
+        self['sourcelayer'] = val
 
     @property
     def sourcetype(self):
@@ -319,11 +304,11 @@ def sourcetype(self):
         -------
         Any
         """
-        return self["sourcetype"]
+        return self['sourcetype']
 
     @sourcetype.setter
     def sourcetype(self, val):
-        self["sourcetype"] = val
+        self['sourcetype'] = val
 
     @property
     def symbol(self):
@@ -338,11 +323,11 @@ def symbol(self):
         -------
         plotly.graph_objs.layout.map.layer.Symbol
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def templateitemname(self):
@@ -364,11 +349,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def type(self):
@@ -390,11 +375,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def visible(self):
@@ -408,11 +393,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -515,30 +500,28 @@ def _prop_descriptions(self):
         visible
             Determines whether this layer is displayed
         """
-
-    def __init__(
-        self,
-        arg=None,
-        below=None,
-        circle=None,
-        color=None,
-        coordinates=None,
-        fill=None,
-        line=None,
-        maxzoom=None,
-        minzoom=None,
-        name=None,
-        opacity=None,
-        source=None,
-        sourceattribution=None,
-        sourcelayer=None,
-        sourcetype=None,
-        symbol=None,
-        templateitemname=None,
-        type=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            below=None,
+            circle=None,
+            color=None,
+            coordinates=None,
+            fill=None,
+            line=None,
+            maxzoom=None,
+            minzoom=None,
+            name=None,
+            opacity=None,
+            source=None,
+            sourceattribution=None,
+            sourcelayer=None,
+            sourcetype=None,
+            symbol=None,
+            templateitemname=None,
+            type=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Layer object
 
@@ -650,9 +633,9 @@ def __init__(
         -------
         Layer
         """
-        super().__init__("layers")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('layers')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -662,33 +645,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.map.Layer
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.map.Layer`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("below", arg, below)
-        self._set_property("circle", arg, circle)
-        self._set_property("color", arg, color)
-        self._set_property("coordinates", arg, coordinates)
-        self._set_property("fill", arg, fill)
-        self._set_property("line", arg, line)
-        self._set_property("maxzoom", arg, maxzoom)
-        self._set_property("minzoom", arg, minzoom)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("source", arg, source)
-        self._set_property("sourceattribution", arg, sourceattribution)
-        self._set_property("sourcelayer", arg, sourcelayer)
-        self._set_property("sourcetype", arg, sourcetype)
-        self._set_property("symbol", arg, symbol)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("type", arg, type)
-        self._set_property("visible", arg, visible)
+an instance of :class:`plotly.graph_objs.layout.map.Layer`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('below', arg, below)
+        self._set_property('circle', arg, circle)
+        self._set_property('color', arg, color)
+        self._set_property('coordinates', arg, coordinates)
+        self._set_property('fill', arg, fill)
+        self._set_property('line', arg, line)
+        self._set_property('maxzoom', arg, maxzoom)
+        self._set_property('minzoom', arg, minzoom)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('source', arg, source)
+        self._set_property('sourceattribution', arg, sourceattribution)
+        self._set_property('sourcelayer', arg, sourcelayer)
+        self._set_property('sourcetype', arg, sourcetype)
+        self._set_property('symbol', arg, symbol)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('type', arg, type)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/map/layer/__init__.py b/plotly/graph_objs/layout/map/layer/__init__.py
index 9a15ea37d29..7fbb5ae03e3 100644
--- a/plotly/graph_objs/layout/map/layer/__init__.py
+++ b/plotly/graph_objs/layout/map/layer/__init__.py
@@ -1,8 +1,17 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._circle import Circle
+    from ._fill import Fill
+    from ._line import Line
+    from ._symbol import Symbol
+    from . import symbol
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.symbol'],
+        ['._circle.Circle', '._fill.Fill', '._line.Line', '._symbol.Symbol']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".symbol"],
-    ["._circle.Circle", "._fill.Fill", "._line.Line", "._symbol.Symbol"],
-)
diff --git a/plotly/graph_objs/layout/map/layer/_circle.py b/plotly/graph_objs/layout/map/layer/_circle.py
index 839b29e4ab1..3b49e7ecaa6 100644
--- a/plotly/graph_objs/layout/map/layer/_circle.py
+++ b/plotly/graph_objs/layout/map/layer/_circle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Circle(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.map.layer"
-    _path_str = "layout.map.layer.circle"
+    _parent_path_str = 'layout.map.layer'
+    _path_str = 'layout.map.layer.circle'
     _valid_props = {"radius"}
 
     @property
@@ -24,11 +28,11 @@ def radius(self):
         -------
         int|float
         """
-        return self["radius"]
+        return self['radius']
 
     @radius.setter
     def radius(self, val):
-        self["radius"] = val
+        self['radius'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             Sets the circle radius (map.layer.paint.circle-radius).
             Has an effect only when `type` is set to "circle".
         """
-
-    def __init__(self, arg=None, radius=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            radius=None,
+            **kwargs
+        ):
         """
         Construct a new Circle object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, radius=None, **kwargs):
         -------
         Circle
         """
-        super().__init__("circle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('circle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, radius=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.map.layer.Circle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.map.layer.Circle`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.map.layer.Circle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("radius", arg, radius)
+        self._set_property('radius', arg, radius)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/map/layer/_fill.py b/plotly/graph_objs/layout/map/layer/_fill.py
index 71ed17fd566..912ab0e222a 100644
--- a/plotly/graph_objs/layout/map/layer/_fill.py
+++ b/plotly/graph_objs/layout/map/layer/_fill.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Fill(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.map.layer"
-    _path_str = "layout.map.layer.fill"
+    _parent_path_str = 'layout.map.layer'
+    _path_str = 'layout.map.layer.fill'
     _valid_props = {"outlinecolor"}
 
     @property
@@ -28,11 +32,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def _prop_descriptions(self):
@@ -42,8 +46,11 @@ def _prop_descriptions(self):
             outline-color). Has an effect only when `type` is set
             to "fill".
         """
-
-    def __init__(self, arg=None, outlinecolor=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            outlinecolor=None,
+            **kwargs
+        ):
         """
         Construct a new Fill object
 
@@ -62,9 +69,9 @@ def __init__(self, arg=None, outlinecolor=None, **kwargs):
         -------
         Fill
         """
-        super().__init__("fill")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('fill')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -74,16 +81,16 @@ def __init__(self, arg=None, outlinecolor=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.map.layer.Fill
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.map.layer.Fill`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.map.layer.Fill`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("outlinecolor", arg, outlinecolor)
+        self._set_property('outlinecolor', arg, outlinecolor)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/map/layer/_line.py b/plotly/graph_objs/layout/map/layer/_line.py
index 8ed89ed0a7e..af3371cfa9a 100644
--- a/plotly/graph_objs/layout/map/layer/_line.py
+++ b/plotly/graph_objs/layout/map/layer/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.map.layer"
-    _path_str = "layout.map.layer.line"
+    _parent_path_str = 'layout.map.layer'
+    _path_str = 'layout.map.layer.line'
     _valid_props = {"dash", "dashsrc", "width"}
 
     @property
@@ -24,11 +28,11 @@ def dash(self):
         -------
         numpy.ndarray
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def dashsrc(self):
@@ -42,11 +46,11 @@ def dashsrc(self):
         -------
         str
         """
-        return self["dashsrc"]
+        return self['dashsrc']
 
     @dashsrc.setter
     def dashsrc(self, val):
-        self["dashsrc"] = val
+        self['dashsrc'] = val
 
     @property
     def width(self):
@@ -61,11 +65,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -81,8 +85,13 @@ def _prop_descriptions(self):
             Sets the line width (map.layer.paint.line-width). Has
             an effect only when `type` is set to "line".
         """
-
-    def __init__(self, arg=None, dash=None, dashsrc=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            dash=None,
+            dashsrc=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -107,9 +116,9 @@ def __init__(self, arg=None, dash=None, dashsrc=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -119,18 +128,18 @@ def __init__(self, arg=None, dash=None, dashsrc=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.map.layer.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.map.layer.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.map.layer.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dash", arg, dash)
-        self._set_property("dashsrc", arg, dashsrc)
-        self._set_property("width", arg, width)
+        self._set_property('dash', arg, dash)
+        self._set_property('dashsrc', arg, dashsrc)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/map/layer/_symbol.py b/plotly/graph_objs/layout/map/layer/_symbol.py
index 0f8e8853551..1db64234f22 100644
--- a/plotly/graph_objs/layout/map/layer/_symbol.py
+++ b/plotly/graph_objs/layout/map/layer/_symbol.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Symbol(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.map.layer"
-    _path_str = "layout.map.layer.symbol"
+    _parent_path_str = 'layout.map.layer'
+    _path_str = 'layout.map.layer.symbol'
     _valid_props = {"icon", "iconsize", "placement", "text", "textfont", "textposition"}
 
     @property
@@ -25,11 +29,11 @@ def icon(self):
         -------
         str
         """
-        return self["icon"]
+        return self['icon']
 
     @icon.setter
     def icon(self, val):
-        self["icon"] = val
+        self['icon'] = val
 
     @property
     def iconsize(self):
@@ -44,11 +48,11 @@ def iconsize(self):
         -------
         int|float
         """
-        return self["iconsize"]
+        return self['iconsize']
 
     @iconsize.setter
     def iconsize(self, val):
-        self["iconsize"] = val
+        self['iconsize'] = val
 
     @property
     def placement(self):
@@ -68,11 +72,11 @@ def placement(self):
         -------
         Any
         """
-        return self["placement"]
+        return self['placement']
 
     @placement.setter
     def placement(self, val):
-        self["placement"] = val
+        self['placement'] = val
 
     @property
     def text(self):
@@ -87,11 +91,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -110,11 +114,11 @@ def textfont(self):
         -------
         plotly.graph_objs.layout.map.layer.symbol.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textposition(self):
@@ -132,11 +136,11 @@ def textposition(self):
         -------
         Any
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def _prop_descriptions(self):
@@ -165,18 +169,16 @@ def _prop_descriptions(self):
             Sets the positions of the `text` elements with respects
             to the (x,y) coordinates.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        icon=None,
-        iconsize=None,
-        placement=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            icon=None,
+            iconsize=None,
+            placement=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            **kwargs
+        ):
         """
         Construct a new Symbol object
 
@@ -214,9 +216,9 @@ def __init__(
         -------
         Symbol
         """
-        super().__init__("symbol")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('symbol')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -226,21 +228,21 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.map.layer.Symbol
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.map.layer.Symbol`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("icon", arg, icon)
-        self._set_property("iconsize", arg, iconsize)
-        self._set_property("placement", arg, placement)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textposition", arg, textposition)
+an instance of :class:`plotly.graph_objs.layout.map.layer.Symbol`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('icon', arg, icon)
+        self._set_property('iconsize', arg, iconsize)
+        self._set_property('placement', arg, placement)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textposition', arg, textposition)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/map/layer/symbol/__init__.py b/plotly/graph_objs/layout/map/layer/symbol/__init__.py
index 2afd605560b..60a2c197f7c 100644
--- a/plotly/graph_objs/layout/map/layer/symbol/__init__.py
+++ b/plotly/graph_objs/layout/map/layer/symbol/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._textfont.Textfont"])
diff --git a/plotly/graph_objs/layout/map/layer/symbol/_textfont.py b/plotly/graph_objs/layout/map/layer/symbol/_textfont.py
index bd95dbe7f3e..a965d14c912 100644
--- a/plotly/graph_objs/layout/map/layer/symbol/_textfont.py
+++ b/plotly/graph_objs/layout/map/layer/symbol/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.map.layer.symbol"
-    _path_str = "layout.map.layer.symbol.textfont"
+    _parent_path_str = 'layout.map.layer.symbol'
+    _path_str = 'layout.map.layer.symbol.textfont'
     _valid_props = {"color", "family", "size", "style", "weight"}
 
     @property
@@ -25,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -47,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -83,11 +87,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def weight(self):
@@ -103,11 +107,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -129,17 +133,15 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        size=None,
-        style=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            size=None,
+            style=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -174,9 +176,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -186,20 +188,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.map.layer.symbol.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.map.layer.symbol.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.map.layer.symbol.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("weight", arg, weight)
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/mapbox/__init__.py b/plotly/graph_objs/layout/mapbox/__init__.py
index 9dfa47aa1d8..95b667b49df 100644
--- a/plotly/graph_objs/layout/mapbox/__init__.py
+++ b/plotly/graph_objs/layout/mapbox/__init__.py
@@ -1,8 +1,17 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._bounds import Bounds
+    from ._center import Center
+    from ._domain import Domain
+    from ._layer import Layer
+    from . import layer
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.layer'],
+        ['._bounds.Bounds', '._center.Center', '._domain.Domain', '._layer.Layer']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".layer"],
-    ["._bounds.Bounds", "._center.Center", "._domain.Domain", "._layer.Layer"],
-)
diff --git a/plotly/graph_objs/layout/mapbox/_bounds.py b/plotly/graph_objs/layout/mapbox/_bounds.py
index 92330d8fb85..3359f95623b 100644
--- a/plotly/graph_objs/layout/mapbox/_bounds.py
+++ b/plotly/graph_objs/layout/mapbox/_bounds.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Bounds(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.mapbox"
-    _path_str = "layout.mapbox.bounds"
+    _parent_path_str = 'layout.mapbox'
+    _path_str = 'layout.mapbox.bounds'
     _valid_props = {"east", "north", "south", "west"}
 
     @property
@@ -24,11 +28,11 @@ def east(self):
         -------
         int|float
         """
-        return self["east"]
+        return self['east']
 
     @east.setter
     def east(self, val):
-        self["east"] = val
+        self['east'] = val
 
     @property
     def north(self):
@@ -43,11 +47,11 @@ def north(self):
         -------
         int|float
         """
-        return self["north"]
+        return self['north']
 
     @north.setter
     def north(self, val):
-        self["north"] = val
+        self['north'] = val
 
     @property
     def south(self):
@@ -62,11 +66,11 @@ def south(self):
         -------
         int|float
         """
-        return self["south"]
+        return self['south']
 
     @south.setter
     def south(self, val):
-        self["south"] = val
+        self['south'] = val
 
     @property
     def west(self):
@@ -81,11 +85,11 @@ def west(self):
         -------
         int|float
         """
-        return self["west"]
+        return self['west']
 
     @west.setter
     def west(self, val):
-        self["west"] = val
+        self['west'] = val
 
     @property
     def _prop_descriptions(self):
@@ -103,10 +107,14 @@ def _prop_descriptions(self):
             Sets the minimum longitude of the map (in degrees East)
             if `east`, `south` and `north` are declared.
         """
-
-    def __init__(
-        self, arg=None, east=None, north=None, south=None, west=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            east=None,
+            north=None,
+            south=None,
+            west=None,
+            **kwargs
+        ):
         """
         Construct a new Bounds object
 
@@ -133,9 +141,9 @@ def __init__(
         -------
         Bounds
         """
-        super().__init__("bounds")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('bounds')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -145,19 +153,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.mapbox.Bounds
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.mapbox.Bounds`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.mapbox.Bounds`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("east", arg, east)
-        self._set_property("north", arg, north)
-        self._set_property("south", arg, south)
-        self._set_property("west", arg, west)
+        self._set_property('east', arg, east)
+        self._set_property('north', arg, north)
+        self._set_property('south', arg, south)
+        self._set_property('west', arg, west)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/mapbox/_center.py b/plotly/graph_objs/layout/mapbox/_center.py
index f740e4194ca..db5df797054 100644
--- a/plotly/graph_objs/layout/mapbox/_center.py
+++ b/plotly/graph_objs/layout/mapbox/_center.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Center(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.mapbox"
-    _path_str = "layout.mapbox.center"
+    _parent_path_str = 'layout.mapbox'
+    _path_str = 'layout.mapbox.center'
     _valid_props = {"lat", "lon"}
 
     @property
@@ -23,11 +27,11 @@ def lat(self):
         -------
         int|float
         """
-        return self["lat"]
+        return self['lat']
 
     @lat.setter
     def lat(self, val):
-        self["lat"] = val
+        self['lat'] = val
 
     @property
     def lon(self):
@@ -41,11 +45,11 @@ def lon(self):
         -------
         int|float
         """
-        return self["lon"]
+        return self['lon']
 
     @lon.setter
     def lon(self, val):
-        self["lon"] = val
+        self['lon'] = val
 
     @property
     def _prop_descriptions(self):
@@ -57,8 +61,12 @@ def _prop_descriptions(self):
             Sets the longitude of the center of the map (in degrees
             East).
         """
-
-    def __init__(self, arg=None, lat=None, lon=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            lat=None,
+            lon=None,
+            **kwargs
+        ):
         """
         Construct a new Center object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, lat=None, lon=None, **kwargs):
         -------
         Center
         """
-        super().__init__("center")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('center')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, lat=None, lon=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.mapbox.Center
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.mapbox.Center`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.mapbox.Center`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("lat", arg, lat)
-        self._set_property("lon", arg, lon)
+        self._set_property('lat', arg, lat)
+        self._set_property('lon', arg, lon)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/mapbox/_domain.py b/plotly/graph_objs/layout/mapbox/_domain.py
index be2db84f0aa..1741b9e1b95 100644
--- a/plotly/graph_objs/layout/mapbox/_domain.py
+++ b/plotly/graph_objs/layout/mapbox/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.mapbox"
-    _path_str = "layout.mapbox.domain"
+    _parent_path_str = 'layout.mapbox'
+    _path_str = 'layout.mapbox.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -25,11 +29,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -45,59 +49,59 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this mapbox subplot (in plot
-            fraction).
-
-            The 'x' property is an info array that may be specified as:
+        Sets the horizontal domain of this mapbox subplot (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this mapbox subplot (in plot
-            fraction).
-
-            The 'y' property is an info array that may be specified as:
+        Sets the vertical domain of this mapbox subplot (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,8 +119,14 @@ def _prop_descriptions(self):
             Sets the vertical domain of this mapbox subplot (in
             plot fraction).
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -143,9 +153,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -155,19 +165,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.mapbox.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.mapbox.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.mapbox.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/mapbox/_layer.py b/plotly/graph_objs/layout/mapbox/_layer.py
index e3d516fe184..7adfcb6265d 100644
--- a/plotly/graph_objs/layout/mapbox/_layer.py
+++ b/plotly/graph_objs/layout/mapbox/_layer.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Layer(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.mapbox"
-    _path_str = "layout.mapbox.layer"
-    _valid_props = {
-        "below",
-        "circle",
-        "color",
-        "coordinates",
-        "fill",
-        "line",
-        "maxzoom",
-        "minzoom",
-        "name",
-        "opacity",
-        "source",
-        "sourceattribution",
-        "sourcelayer",
-        "sourcetype",
-        "symbol",
-        "templateitemname",
-        "type",
-        "visible",
-    }
+    _parent_path_str = 'layout.mapbox'
+    _path_str = 'layout.mapbox.layer'
+    _valid_props = {"below", "circle", "color", "coordinates", "fill", "line", "maxzoom", "minzoom", "name", "opacity", "source", "sourceattribution", "sourcelayer", "sourcetype", "symbol", "templateitemname", "type", "visible"}
 
     @property
     def below(self):
@@ -45,11 +30,11 @@ def below(self):
         -------
         str
         """
-        return self["below"]
+        return self['below']
 
     @below.setter
     def below(self, val):
-        self["below"] = val
+        self['below'] = val
 
     @property
     def circle(self):
@@ -64,11 +49,11 @@ def circle(self):
         -------
         plotly.graph_objs.layout.mapbox.layer.Circle
         """
-        return self["circle"]
+        return self['circle']
 
     @circle.setter
     def circle(self, val):
-        self["circle"] = val
+        self['circle'] = val
 
     @property
     def color(self):
@@ -92,11 +77,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coordinates(self):
@@ -112,11 +97,11 @@ def coordinates(self):
         -------
         Any
         """
-        return self["coordinates"]
+        return self['coordinates']
 
     @coordinates.setter
     def coordinates(self, val):
-        self["coordinates"] = val
+        self['coordinates'] = val
 
     @property
     def fill(self):
@@ -131,11 +116,11 @@ def fill(self):
         -------
         plotly.graph_objs.layout.mapbox.layer.Fill
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def line(self):
@@ -150,11 +135,11 @@ def line(self):
         -------
         plotly.graph_objs.layout.mapbox.layer.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def maxzoom(self):
@@ -170,11 +155,11 @@ def maxzoom(self):
         -------
         int|float
         """
-        return self["maxzoom"]
+        return self['maxzoom']
 
     @maxzoom.setter
     def maxzoom(self, val):
-        self["maxzoom"] = val
+        self['maxzoom'] = val
 
     @property
     def minzoom(self):
@@ -189,11 +174,11 @@ def minzoom(self):
         -------
         int|float
         """
-        return self["minzoom"]
+        return self['minzoom']
 
     @minzoom.setter
     def minzoom(self, val):
-        self["minzoom"] = val
+        self['minzoom'] = val
 
     @property
     def name(self):
@@ -214,11 +199,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -239,11 +224,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def source(self):
@@ -261,11 +246,11 @@ def source(self):
         -------
         Any
         """
-        return self["source"]
+        return self['source']
 
     @source.setter
     def source(self, val):
-        self["source"] = val
+        self['source'] = val
 
     @property
     def sourceattribution(self):
@@ -280,11 +265,11 @@ def sourceattribution(self):
         -------
         str
         """
-        return self["sourceattribution"]
+        return self['sourceattribution']
 
     @sourceattribution.setter
     def sourceattribution(self, val):
-        self["sourceattribution"] = val
+        self['sourceattribution'] = val
 
     @property
     def sourcelayer(self):
@@ -301,11 +286,11 @@ def sourcelayer(self):
         -------
         str
         """
-        return self["sourcelayer"]
+        return self['sourcelayer']
 
     @sourcelayer.setter
     def sourcelayer(self, val):
-        self["sourcelayer"] = val
+        self['sourcelayer'] = val
 
     @property
     def sourcetype(self):
@@ -321,11 +306,11 @@ def sourcetype(self):
         -------
         Any
         """
-        return self["sourcetype"]
+        return self['sourcetype']
 
     @sourcetype.setter
     def sourcetype(self, val):
-        self["sourcetype"] = val
+        self['sourcetype'] = val
 
     @property
     def symbol(self):
@@ -340,11 +325,11 @@ def symbol(self):
         -------
         plotly.graph_objs.layout.mapbox.layer.Symbol
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def templateitemname(self):
@@ -366,11 +351,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def type(self):
@@ -392,11 +377,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def visible(self):
@@ -410,11 +395,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -518,30 +503,28 @@ def _prop_descriptions(self):
         visible
             Determines whether this layer is displayed
         """
-
-    def __init__(
-        self,
-        arg=None,
-        below=None,
-        circle=None,
-        color=None,
-        coordinates=None,
-        fill=None,
-        line=None,
-        maxzoom=None,
-        minzoom=None,
-        name=None,
-        opacity=None,
-        source=None,
-        sourceattribution=None,
-        sourcelayer=None,
-        sourcetype=None,
-        symbol=None,
-        templateitemname=None,
-        type=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            below=None,
+            circle=None,
+            color=None,
+            coordinates=None,
+            fill=None,
+            line=None,
+            maxzoom=None,
+            minzoom=None,
+            name=None,
+            opacity=None,
+            source=None,
+            sourceattribution=None,
+            sourcelayer=None,
+            sourcetype=None,
+            symbol=None,
+            templateitemname=None,
+            type=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Layer object
 
@@ -654,9 +637,9 @@ def __init__(
         -------
         Layer
         """
-        super().__init__("layers")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('layers')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -666,33 +649,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.mapbox.Layer
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.mapbox.Layer`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("below", arg, below)
-        self._set_property("circle", arg, circle)
-        self._set_property("color", arg, color)
-        self._set_property("coordinates", arg, coordinates)
-        self._set_property("fill", arg, fill)
-        self._set_property("line", arg, line)
-        self._set_property("maxzoom", arg, maxzoom)
-        self._set_property("minzoom", arg, minzoom)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("source", arg, source)
-        self._set_property("sourceattribution", arg, sourceattribution)
-        self._set_property("sourcelayer", arg, sourcelayer)
-        self._set_property("sourcetype", arg, sourcetype)
-        self._set_property("symbol", arg, symbol)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("type", arg, type)
-        self._set_property("visible", arg, visible)
+an instance of :class:`plotly.graph_objs.layout.mapbox.Layer`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('below', arg, below)
+        self._set_property('circle', arg, circle)
+        self._set_property('color', arg, color)
+        self._set_property('coordinates', arg, coordinates)
+        self._set_property('fill', arg, fill)
+        self._set_property('line', arg, line)
+        self._set_property('maxzoom', arg, maxzoom)
+        self._set_property('minzoom', arg, minzoom)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('source', arg, source)
+        self._set_property('sourceattribution', arg, sourceattribution)
+        self._set_property('sourcelayer', arg, sourcelayer)
+        self._set_property('sourcetype', arg, sourcetype)
+        self._set_property('symbol', arg, symbol)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('type', arg, type)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/mapbox/layer/__init__.py b/plotly/graph_objs/layout/mapbox/layer/__init__.py
index 9a15ea37d29..7fbb5ae03e3 100644
--- a/plotly/graph_objs/layout/mapbox/layer/__init__.py
+++ b/plotly/graph_objs/layout/mapbox/layer/__init__.py
@@ -1,8 +1,17 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._circle import Circle
+    from ._fill import Fill
+    from ._line import Line
+    from ._symbol import Symbol
+    from . import symbol
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.symbol'],
+        ['._circle.Circle', '._fill.Fill', '._line.Line', '._symbol.Symbol']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".symbol"],
-    ["._circle.Circle", "._fill.Fill", "._line.Line", "._symbol.Symbol"],
-)
diff --git a/plotly/graph_objs/layout/mapbox/layer/_circle.py b/plotly/graph_objs/layout/mapbox/layer/_circle.py
index 17a6f270f7b..566587665a0 100644
--- a/plotly/graph_objs/layout/mapbox/layer/_circle.py
+++ b/plotly/graph_objs/layout/mapbox/layer/_circle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Circle(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.mapbox.layer"
-    _path_str = "layout.mapbox.layer.circle"
+    _parent_path_str = 'layout.mapbox.layer'
+    _path_str = 'layout.mapbox.layer.circle'
     _valid_props = {"radius"}
 
     @property
@@ -24,11 +28,11 @@ def radius(self):
         -------
         int|float
         """
-        return self["radius"]
+        return self['radius']
 
     @radius.setter
     def radius(self, val):
-        self["radius"] = val
+        self['radius'] = val
 
     @property
     def _prop_descriptions(self):
@@ -38,8 +42,11 @@ def _prop_descriptions(self):
             radius). Has an effect only when `type` is set to
             "circle".
         """
-
-    def __init__(self, arg=None, radius=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            radius=None,
+            **kwargs
+        ):
         """
         Construct a new Circle object
 
@@ -58,9 +65,9 @@ def __init__(self, arg=None, radius=None, **kwargs):
         -------
         Circle
         """
-        super().__init__("circle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('circle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -70,16 +77,16 @@ def __init__(self, arg=None, radius=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.mapbox.layer.Circle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.mapbox.layer.Circle`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.mapbox.layer.Circle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("radius", arg, radius)
+        self._set_property('radius', arg, radius)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/mapbox/layer/_fill.py b/plotly/graph_objs/layout/mapbox/layer/_fill.py
index 791cf20a35e..57d10cfcf0e 100644
--- a/plotly/graph_objs/layout/mapbox/layer/_fill.py
+++ b/plotly/graph_objs/layout/mapbox/layer/_fill.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Fill(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.mapbox.layer"
-    _path_str = "layout.mapbox.layer.fill"
+    _parent_path_str = 'layout.mapbox.layer'
+    _path_str = 'layout.mapbox.layer.fill'
     _valid_props = {"outlinecolor"}
 
     @property
@@ -28,11 +32,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def _prop_descriptions(self):
@@ -42,8 +46,11 @@ def _prop_descriptions(self):
             outline-color). Has an effect only when `type` is set
             to "fill".
         """
-
-    def __init__(self, arg=None, outlinecolor=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            outlinecolor=None,
+            **kwargs
+        ):
         """
         Construct a new Fill object
 
@@ -62,9 +69,9 @@ def __init__(self, arg=None, outlinecolor=None, **kwargs):
         -------
         Fill
         """
-        super().__init__("fill")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('fill')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -74,16 +81,16 @@ def __init__(self, arg=None, outlinecolor=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.mapbox.layer.Fill
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.mapbox.layer.Fill`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.mapbox.layer.Fill`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("outlinecolor", arg, outlinecolor)
+        self._set_property('outlinecolor', arg, outlinecolor)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/mapbox/layer/_line.py b/plotly/graph_objs/layout/mapbox/layer/_line.py
index 27db066a8eb..5c498d07af7 100644
--- a/plotly/graph_objs/layout/mapbox/layer/_line.py
+++ b/plotly/graph_objs/layout/mapbox/layer/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.mapbox.layer"
-    _path_str = "layout.mapbox.layer.line"
+    _parent_path_str = 'layout.mapbox.layer'
+    _path_str = 'layout.mapbox.layer.line'
     _valid_props = {"dash", "dashsrc", "width"}
 
     @property
@@ -24,11 +28,11 @@ def dash(self):
         -------
         numpy.ndarray
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def dashsrc(self):
@@ -42,11 +46,11 @@ def dashsrc(self):
         -------
         str
         """
-        return self["dashsrc"]
+        return self['dashsrc']
 
     @dashsrc.setter
     def dashsrc(self, val):
-        self["dashsrc"] = val
+        self['dashsrc'] = val
 
     @property
     def width(self):
@@ -61,11 +65,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -81,8 +85,13 @@ def _prop_descriptions(self):
             Sets the line width (mapbox.layer.paint.line-width).
             Has an effect only when `type` is set to "line".
         """
-
-    def __init__(self, arg=None, dash=None, dashsrc=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            dash=None,
+            dashsrc=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -107,9 +116,9 @@ def __init__(self, arg=None, dash=None, dashsrc=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -119,18 +128,18 @@ def __init__(self, arg=None, dash=None, dashsrc=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.mapbox.layer.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.mapbox.layer.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.mapbox.layer.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dash", arg, dash)
-        self._set_property("dashsrc", arg, dashsrc)
-        self._set_property("width", arg, width)
+        self._set_property('dash', arg, dash)
+        self._set_property('dashsrc', arg, dashsrc)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/mapbox/layer/_symbol.py b/plotly/graph_objs/layout/mapbox/layer/_symbol.py
index 1eb28e9d37d..57538490c42 100644
--- a/plotly/graph_objs/layout/mapbox/layer/_symbol.py
+++ b/plotly/graph_objs/layout/mapbox/layer/_symbol.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Symbol(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.mapbox.layer"
-    _path_str = "layout.mapbox.layer.symbol"
+    _parent_path_str = 'layout.mapbox.layer'
+    _path_str = 'layout.mapbox.layer.symbol'
     _valid_props = {"icon", "iconsize", "placement", "text", "textfont", "textposition"}
 
     @property
@@ -25,11 +29,11 @@ def icon(self):
         -------
         str
         """
-        return self["icon"]
+        return self['icon']
 
     @icon.setter
     def icon(self, val):
-        self["icon"] = val
+        self['icon'] = val
 
     @property
     def iconsize(self):
@@ -44,11 +48,11 @@ def iconsize(self):
         -------
         int|float
         """
-        return self["iconsize"]
+        return self['iconsize']
 
     @iconsize.setter
     def iconsize(self, val):
-        self["iconsize"] = val
+        self['iconsize'] = val
 
     @property
     def placement(self):
@@ -68,11 +72,11 @@ def placement(self):
         -------
         Any
         """
-        return self["placement"]
+        return self['placement']
 
     @placement.setter
     def placement(self, val):
-        self["placement"] = val
+        self['placement'] = val
 
     @property
     def text(self):
@@ -87,11 +91,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textfont(self):
@@ -110,11 +114,11 @@ def textfont(self):
         -------
         plotly.graph_objs.layout.mapbox.layer.symbol.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def textposition(self):
@@ -132,11 +136,11 @@ def textposition(self):
         -------
         Any
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def _prop_descriptions(self):
@@ -166,18 +170,16 @@ def _prop_descriptions(self):
             Sets the positions of the `text` elements with respects
             to the (x,y) coordinates.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        icon=None,
-        iconsize=None,
-        placement=None,
-        text=None,
-        textfont=None,
-        textposition=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            icon=None,
+            iconsize=None,
+            placement=None,
+            text=None,
+            textfont=None,
+            textposition=None,
+            **kwargs
+        ):
         """
         Construct a new Symbol object
 
@@ -216,9 +218,9 @@ def __init__(
         -------
         Symbol
         """
-        super().__init__("symbol")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('symbol')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -228,21 +230,21 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.mapbox.layer.Symbol
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.mapbox.layer.Symbol`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("icon", arg, icon)
-        self._set_property("iconsize", arg, iconsize)
-        self._set_property("placement", arg, placement)
-        self._set_property("text", arg, text)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("textposition", arg, textposition)
+an instance of :class:`plotly.graph_objs.layout.mapbox.layer.Symbol`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('icon', arg, icon)
+        self._set_property('iconsize', arg, iconsize)
+        self._set_property('placement', arg, placement)
+        self._set_property('text', arg, text)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('textposition', arg, textposition)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/mapbox/layer/symbol/__init__.py b/plotly/graph_objs/layout/mapbox/layer/symbol/__init__.py
index 2afd605560b..60a2c197f7c 100644
--- a/plotly/graph_objs/layout/mapbox/layer/symbol/__init__.py
+++ b/plotly/graph_objs/layout/mapbox/layer/symbol/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._textfont.Textfont"])
diff --git a/plotly/graph_objs/layout/mapbox/layer/symbol/_textfont.py b/plotly/graph_objs/layout/mapbox/layer/symbol/_textfont.py
index 337fe7d370c..08bcd4c7127 100644
--- a/plotly/graph_objs/layout/mapbox/layer/symbol/_textfont.py
+++ b/plotly/graph_objs/layout/mapbox/layer/symbol/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.mapbox.layer.symbol"
-    _path_str = "layout.mapbox.layer.symbol.textfont"
+    _parent_path_str = 'layout.mapbox.layer.symbol'
+    _path_str = 'layout.mapbox.layer.symbol.textfont'
     _valid_props = {"color", "family", "size", "style", "weight"}
 
     @property
@@ -25,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -47,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -83,11 +87,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def weight(self):
@@ -103,11 +107,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -129,17 +133,15 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        size=None,
-        style=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            size=None,
+            style=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -174,9 +176,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -186,20 +188,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.mapbox.layer.symbol.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.mapbox.layer.symbol.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.mapbox.layer.symbol.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("weight", arg, weight)
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/newselection/__init__.py b/plotly/graph_objs/layout/newselection/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/layout/newselection/__init__.py
+++ b/plotly/graph_objs/layout/newselection/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/layout/newselection/_line.py b/plotly/graph_objs/layout/newselection/_line.py
index f11feb990cc..39434ec0090 100644
--- a/plotly/graph_objs/layout/newselection/_line.py
+++ b/plotly/graph_objs/layout/newselection/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.newselection"
-    _path_str = "layout.newselection.line"
+    _parent_path_str = 'layout.newselection'
+    _path_str = 'layout.newselection.line'
     _valid_props = {"color", "dash", "width"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -52,11 +56,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def width(self):
@@ -70,11 +74,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -90,8 +94,13 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dash=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -116,9 +125,9 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -128,18 +137,18 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.newselection.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.newselection.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.newselection.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/newshape/__init__.py b/plotly/graph_objs/layout/newshape/__init__.py
index ac9079347de..d6a6449c75e 100644
--- a/plotly/graph_objs/layout/newshape/__init__.py
+++ b/plotly/graph_objs/layout/newshape/__init__.py
@@ -1,8 +1,17 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._label import Label
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from . import label
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.label', '.legendgrouptitle'],
+        ['._label.Label', '._legendgrouptitle.Legendgrouptitle', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".label", ".legendgrouptitle"],
-    ["._label.Label", "._legendgrouptitle.Legendgrouptitle", "._line.Line"],
-)
diff --git a/plotly/graph_objs/layout/newshape/_label.py b/plotly/graph_objs/layout/newshape/_label.py
index 027968b8421..189fc98dc5c 100644
--- a/plotly/graph_objs/layout/newshape/_label.py
+++ b/plotly/graph_objs/layout/newshape/_label.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,18 +11,9 @@
 
 class Label(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.newshape"
-    _path_str = "layout.newshape.label"
-    _valid_props = {
-        "font",
-        "padding",
-        "text",
-        "textangle",
-        "textposition",
-        "texttemplate",
-        "xanchor",
-        "yanchor",
-    }
+    _parent_path_str = 'layout.newshape'
+    _path_str = 'layout.newshape.label'
+    _valid_props = {"font", "padding", "text", "textangle", "textposition", "texttemplate", "xanchor", "yanchor"}
 
     @property
     def font(self):
@@ -35,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.newshape.label.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def padding(self):
@@ -54,11 +49,11 @@ def padding(self):
         -------
         int|float
         """
-        return self["padding"]
+        return self['padding']
 
     @padding.setter
     def padding(self, val):
-        self["padding"] = val
+        self['padding'] = val
 
     @property
     def text(self):
@@ -74,11 +69,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textangle(self):
@@ -96,11 +91,11 @@ def textangle(self):
         -------
         int|float
         """
-        return self["textangle"]
+        return self['textangle']
 
     @textangle.setter
     def textangle(self, val):
-        self["textangle"] = val
+        self['textangle'] = val
 
     @property
     def textposition(self):
@@ -123,11 +118,11 @@ def textposition(self):
         -------
         Any
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def texttemplate(self):
@@ -161,11 +156,11 @@ def texttemplate(self):
         -------
         str
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def xanchor(self):
@@ -185,11 +180,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def yanchor(self):
@@ -208,11 +203,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def _prop_descriptions(self):
@@ -278,20 +273,18 @@ def _prop_descriptions(self):
             "top" then the top-most portion of the label text lines
             up with the top-most edge of the new shape.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        font=None,
-        padding=None,
-        text=None,
-        textangle=None,
-        textposition=None,
-        texttemplate=None,
-        xanchor=None,
-        yanchor=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            font=None,
+            padding=None,
+            text=None,
+            textangle=None,
+            textposition=None,
+            texttemplate=None,
+            xanchor=None,
+            yanchor=None,
+            **kwargs
+        ):
         """
         Construct a new Label object
 
@@ -366,9 +359,9 @@ def __init__(
         -------
         Label
         """
-        super().__init__("label")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('label')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -378,23 +371,23 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.newshape.Label
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.newshape.Label`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("font", arg, font)
-        self._set_property("padding", arg, padding)
-        self._set_property("text", arg, text)
-        self._set_property("textangle", arg, textangle)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("yanchor", arg, yanchor)
+an instance of :class:`plotly.graph_objs.layout.newshape.Label`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('font', arg, font)
+        self._set_property('padding', arg, padding)
+        self._set_property('text', arg, text)
+        self._set_property('textangle', arg, textangle)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('yanchor', arg, yanchor)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/newshape/_legendgrouptitle.py b/plotly/graph_objs/layout/newshape/_legendgrouptitle.py
index 87a5f0b6e00..6338fdd959d 100644
--- a/plotly/graph_objs/layout/newshape/_legendgrouptitle.py
+++ b/plotly/graph_objs/layout/newshape/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.newshape"
-    _path_str = "layout.newshape.legendgrouptitle"
+    _parent_path_str = 'layout.newshape'
+    _path_str = 'layout.newshape.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.newshape.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.newshape.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.newshape.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.newshape.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/newshape/_line.py b/plotly/graph_objs/layout/newshape/_line.py
index b0fb879bde6..9c89c70d222 100644
--- a/plotly/graph_objs/layout/newshape/_line.py
+++ b/plotly/graph_objs/layout/newshape/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.newshape"
-    _path_str = "layout.newshape.line"
+    _parent_path_str = 'layout.newshape'
+    _path_str = 'layout.newshape.line'
     _valid_props = {"color", "dash", "width"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -52,11 +56,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def width(self):
@@ -70,11 +74,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -90,8 +94,13 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dash=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -116,9 +125,9 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -128,18 +137,18 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.newshape.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.newshape.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.newshape.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/newshape/label/__init__.py b/plotly/graph_objs/layout/newshape/label/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/newshape/label/__init__.py
+++ b/plotly/graph_objs/layout/newshape/label/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/newshape/label/_font.py b/plotly/graph_objs/layout/newshape/label/_font.py
index 77b1b5e5fd5..f34ae6f6184 100644
--- a/plotly/graph_objs/layout/newshape/label/_font.py
+++ b/plotly/graph_objs/layout/newshape/label/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.newshape.label"
-    _path_str = "layout.newshape.label.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.newshape.label'
+    _path_str = 'layout.newshape.label.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.newshape.label.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.newshape.label.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.newshape.label.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/newshape/legendgrouptitle/__init__.py b/plotly/graph_objs/layout/newshape/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/newshape/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/layout/newshape/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/newshape/legendgrouptitle/_font.py b/plotly/graph_objs/layout/newshape/legendgrouptitle/_font.py
index f7ce3c35738..9cc118b2460 100644
--- a/plotly/graph_objs/layout/newshape/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/layout/newshape/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.newshape.legendgrouptitle"
-    _path_str = "layout.newshape.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.newshape.legendgrouptitle'
+    _path_str = 'layout.newshape.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.newshape.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.newshape.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.newshape.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/polar/__init__.py b/plotly/graph_objs/layout/polar/__init__.py
index b21eef0f2f1..7653ac0dcb9 100644
--- a/plotly/graph_objs/layout/polar/__init__.py
+++ b/plotly/graph_objs/layout/polar/__init__.py
@@ -1,8 +1,17 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._angularaxis import AngularAxis
+    from ._domain import Domain
+    from ._radialaxis import RadialAxis
+    from . import angularaxis
+    from . import radialaxis
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.angularaxis', '.radialaxis'],
+        ['._angularaxis.AngularAxis', '._domain.Domain', '._radialaxis.RadialAxis']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".angularaxis", ".radialaxis"],
-    ["._angularaxis.AngularAxis", "._domain.Domain", "._radialaxis.RadialAxis"],
-)
diff --git a/plotly/graph_objs/layout/polar/_angularaxis.py b/plotly/graph_objs/layout/polar/_angularaxis.py
index 527e82cf441..e63fb04222d 100644
--- a/plotly/graph_objs/layout/polar/_angularaxis.py
+++ b/plotly/graph_objs/layout/polar/_angularaxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class AngularAxis(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.polar"
-    _path_str = "layout.polar.angularaxis"
-    _valid_props = {
-        "autotypenumbers",
-        "categoryarray",
-        "categoryarraysrc",
-        "categoryorder",
-        "color",
-        "direction",
-        "dtick",
-        "exponentformat",
-        "gridcolor",
-        "griddash",
-        "gridwidth",
-        "hoverformat",
-        "labelalias",
-        "layer",
-        "linecolor",
-        "linewidth",
-        "minexponent",
-        "nticks",
-        "period",
-        "rotation",
-        "separatethousands",
-        "showexponent",
-        "showgrid",
-        "showline",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thetaunit",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "type",
-        "uirevision",
-        "visible",
-    }
+    _parent_path_str = 'layout.polar'
+    _path_str = 'layout.polar.angularaxis'
+    _valid_props = {"autotypenumbers", "categoryarray", "categoryarraysrc", "categoryorder", "color", "direction", "dtick", "exponentformat", "gridcolor", "griddash", "gridwidth", "hoverformat", "labelalias", "layer", "linecolor", "linewidth", "minexponent", "nticks", "period", "rotation", "separatethousands", "showexponent", "showgrid", "showline", "showticklabels", "showtickprefix", "showticksuffix", "thetaunit", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "type", "uirevision", "visible"}
 
     @property
     def autotypenumbers(self):
@@ -77,11 +31,11 @@ def autotypenumbers(self):
         -------
         Any
         """
-        return self["autotypenumbers"]
+        return self['autotypenumbers']
 
     @autotypenumbers.setter
     def autotypenumbers(self, val):
-        self["autotypenumbers"] = val
+        self['autotypenumbers'] = val
 
     @property
     def categoryarray(self):
@@ -97,11 +51,11 @@ def categoryarray(self):
         -------
         numpy.ndarray
         """
-        return self["categoryarray"]
+        return self['categoryarray']
 
     @categoryarray.setter
     def categoryarray(self, val):
-        self["categoryarray"] = val
+        self['categoryarray'] = val
 
     @property
     def categoryarraysrc(self):
@@ -116,11 +70,11 @@ def categoryarraysrc(self):
         -------
         str
         """
-        return self["categoryarraysrc"]
+        return self['categoryarraysrc']
 
     @categoryarraysrc.setter
     def categoryarraysrc(self, val):
-        self["categoryarraysrc"] = val
+        self['categoryarraysrc'] = val
 
     @property
     def categoryorder(self):
@@ -155,11 +109,11 @@ def categoryorder(self):
         -------
         Any
         """
-        return self["categoryorder"]
+        return self['categoryorder']
 
     @categoryorder.setter
     def categoryorder(self, val):
-        self["categoryorder"] = val
+        self['categoryorder'] = val
 
     @property
     def color(self):
@@ -180,11 +134,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def direction(self):
@@ -199,11 +153,11 @@ def direction(self):
         -------
         Any
         """
-        return self["direction"]
+        return self['direction']
 
     @direction.setter
     def direction(self, val):
-        self["direction"] = val
+        self['direction'] = val
 
     @property
     def dtick(self):
@@ -235,11 +189,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -258,11 +212,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def gridcolor(self):
@@ -280,11 +234,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def griddash(self):
@@ -304,11 +258,11 @@ def griddash(self):
         -------
         str
         """
-        return self["griddash"]
+        return self['griddash']
 
     @griddash.setter
     def griddash(self, val):
-        self["griddash"] = val
+        self['griddash'] = val
 
     @property
     def gridwidth(self):
@@ -322,11 +276,11 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def hoverformat(self):
@@ -350,11 +304,11 @@ def hoverformat(self):
         -------
         str
         """
-        return self["hoverformat"]
+        return self['hoverformat']
 
     @hoverformat.setter
     def hoverformat(self, val):
-        self["hoverformat"] = val
+        self['hoverformat'] = val
 
     @property
     def labelalias(self):
@@ -375,11 +329,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def layer(self):
@@ -399,11 +353,11 @@ def layer(self):
         -------
         Any
         """
-        return self["layer"]
+        return self['layer']
 
     @layer.setter
     def layer(self, val):
-        self["layer"] = val
+        self['layer'] = val
 
     @property
     def linecolor(self):
@@ -421,11 +375,11 @@ def linecolor(self):
         -------
         str
         """
-        return self["linecolor"]
+        return self['linecolor']
 
     @linecolor.setter
     def linecolor(self, val):
-        self["linecolor"] = val
+        self['linecolor'] = val
 
     @property
     def linewidth(self):
@@ -439,11 +393,11 @@ def linewidth(self):
         -------
         int|float
         """
-        return self["linewidth"]
+        return self['linewidth']
 
     @linewidth.setter
     def linewidth(self, val):
-        self["linewidth"] = val
+        self['linewidth'] = val
 
     @property
     def minexponent(self):
@@ -458,11 +412,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -480,11 +434,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def period(self):
@@ -499,11 +453,11 @@ def period(self):
         -------
         int|float
         """
-        return self["period"]
+        return self['period']
 
     @period.setter
     def period(self, val):
-        self["period"] = val
+        self['period'] = val
 
     @property
     def rotation(self):
@@ -524,11 +478,11 @@ def rotation(self):
         -------
         int|float
         """
-        return self["rotation"]
+        return self['rotation']
 
     @rotation.setter
     def rotation(self, val):
-        self["rotation"] = val
+        self['rotation'] = val
 
     @property
     def separatethousands(self):
@@ -542,11 +496,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -564,11 +518,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showgrid(self):
@@ -583,11 +537,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def showline(self):
@@ -601,11 +555,11 @@ def showline(self):
         -------
         bool
         """
-        return self["showline"]
+        return self['showline']
 
     @showline.setter
     def showline(self, val):
-        self["showline"] = val
+        self['showline'] = val
 
     @property
     def showticklabels(self):
@@ -619,11 +573,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -641,11 +595,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -660,11 +614,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thetaunit(self):
@@ -680,11 +634,11 @@ def thetaunit(self):
         -------
         Any
         """
-        return self["thetaunit"]
+        return self['thetaunit']
 
     @thetaunit.setter
     def thetaunit(self, val):
-        self["thetaunit"] = val
+        self['thetaunit'] = val
 
     @property
     def tick0(self):
@@ -705,11 +659,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -727,11 +681,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -749,11 +703,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -770,11 +724,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.layout.polar.angularaxis.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -798,11 +752,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -817,11 +771,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.layout.polar.angularaxis.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -840,11 +794,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.layout.polar.angularaxis.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabelstep(self):
@@ -864,11 +818,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -882,11 +836,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -907,11 +861,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -926,11 +880,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -947,11 +901,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -966,11 +920,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -986,11 +940,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -1004,11 +958,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -1023,11 +977,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -1041,11 +995,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -1059,11 +1013,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def type(self):
@@ -1081,11 +1035,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def uirevision(self):
@@ -1099,11 +1053,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -1119,11 +1073,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1382,61 +1336,59 @@ def _prop_descriptions(self):
             interaction like dragging. Default is true when a
             cheater plot is present on the axis, otherwise false
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autotypenumbers=None,
-        categoryarray=None,
-        categoryarraysrc=None,
-        categoryorder=None,
-        color=None,
-        direction=None,
-        dtick=None,
-        exponentformat=None,
-        gridcolor=None,
-        griddash=None,
-        gridwidth=None,
-        hoverformat=None,
-        labelalias=None,
-        layer=None,
-        linecolor=None,
-        linewidth=None,
-        minexponent=None,
-        nticks=None,
-        period=None,
-        rotation=None,
-        separatethousands=None,
-        showexponent=None,
-        showgrid=None,
-        showline=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thetaunit=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        type=None,
-        uirevision=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autotypenumbers=None,
+            categoryarray=None,
+            categoryarraysrc=None,
+            categoryorder=None,
+            color=None,
+            direction=None,
+            dtick=None,
+            exponentformat=None,
+            gridcolor=None,
+            griddash=None,
+            gridwidth=None,
+            hoverformat=None,
+            labelalias=None,
+            layer=None,
+            linecolor=None,
+            linewidth=None,
+            minexponent=None,
+            nticks=None,
+            period=None,
+            rotation=None,
+            separatethousands=None,
+            showexponent=None,
+            showgrid=None,
+            showline=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thetaunit=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            type=None,
+            uirevision=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new AngularAxis object
 
@@ -1704,9 +1656,9 @@ def __init__(
         -------
         AngularAxis
         """
-        super().__init__("angularaxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('angularaxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1716,64 +1668,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.polar.AngularAxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.polar.AngularAxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autotypenumbers", arg, autotypenumbers)
-        self._set_property("categoryarray", arg, categoryarray)
-        self._set_property("categoryarraysrc", arg, categoryarraysrc)
-        self._set_property("categoryorder", arg, categoryorder)
-        self._set_property("color", arg, color)
-        self._set_property("direction", arg, direction)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("griddash", arg, griddash)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("hoverformat", arg, hoverformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("layer", arg, layer)
-        self._set_property("linecolor", arg, linecolor)
-        self._set_property("linewidth", arg, linewidth)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("period", arg, period)
-        self._set_property("rotation", arg, rotation)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("showline", arg, showline)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thetaunit", arg, thetaunit)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("type", arg, type)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
+an instance of :class:`plotly.graph_objs.layout.polar.AngularAxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autotypenumbers', arg, autotypenumbers)
+        self._set_property('categoryarray', arg, categoryarray)
+        self._set_property('categoryarraysrc', arg, categoryarraysrc)
+        self._set_property('categoryorder', arg, categoryorder)
+        self._set_property('color', arg, color)
+        self._set_property('direction', arg, direction)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('griddash', arg, griddash)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('hoverformat', arg, hoverformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('layer', arg, layer)
+        self._set_property('linecolor', arg, linecolor)
+        self._set_property('linewidth', arg, linewidth)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('period', arg, period)
+        self._set_property('rotation', arg, rotation)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('showline', arg, showline)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thetaunit', arg, thetaunit)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('type', arg, type)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/polar/_domain.py b/plotly/graph_objs/layout/polar/_domain.py
index ab016a9adb3..906ca1e3371 100644
--- a/plotly/graph_objs/layout/polar/_domain.py
+++ b/plotly/graph_objs/layout/polar/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.polar"
-    _path_str = "layout.polar.domain"
+    _parent_path_str = 'layout.polar'
+    _path_str = 'layout.polar.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -25,11 +29,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -45,59 +49,59 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this polar subplot (in plot
-            fraction).
-
-            The 'x' property is an info array that may be specified as:
+        Sets the horizontal domain of this polar subplot (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this polar subplot (in plot
-            fraction).
+        Sets the vertical domain of this polar subplot (in plot
+        fraction).
 
-            The 'y' property is an info array that may be specified as:
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,8 +119,14 @@ def _prop_descriptions(self):
             Sets the vertical domain of this polar subplot (in plot
             fraction).
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -143,9 +153,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -155,19 +165,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.polar.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.polar.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.polar.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/polar/_radialaxis.py b/plotly/graph_objs/layout/polar/_radialaxis.py
index 38b1740608b..9da782eea83 100644
--- a/plotly/graph_objs/layout/polar/_radialaxis.py
+++ b/plotly/graph_objs/layout/polar/_radialaxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,66 +11,9 @@
 
 class RadialAxis(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.polar"
-    _path_str = "layout.polar.radialaxis"
-    _valid_props = {
-        "angle",
-        "autorange",
-        "autorangeoptions",
-        "autotickangles",
-        "autotypenumbers",
-        "calendar",
-        "categoryarray",
-        "categoryarraysrc",
-        "categoryorder",
-        "color",
-        "dtick",
-        "exponentformat",
-        "gridcolor",
-        "griddash",
-        "gridwidth",
-        "hoverformat",
-        "labelalias",
-        "layer",
-        "linecolor",
-        "linewidth",
-        "maxallowed",
-        "minallowed",
-        "minexponent",
-        "nticks",
-        "range",
-        "rangemode",
-        "separatethousands",
-        "showexponent",
-        "showgrid",
-        "showline",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "side",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "type",
-        "uirevision",
-        "visible",
-    }
+    _parent_path_str = 'layout.polar'
+    _path_str = 'layout.polar.radialaxis'
+    _valid_props = {"angle", "autorange", "autorangeoptions", "autotickangles", "autotypenumbers", "calendar", "categoryarray", "categoryarraysrc", "categoryorder", "color", "dtick", "exponentformat", "gridcolor", "griddash", "gridwidth", "hoverformat", "labelalias", "layer", "linecolor", "linewidth", "maxallowed", "minallowed", "minexponent", "nticks", "range", "rangemode", "separatethousands", "showexponent", "showgrid", "showline", "showticklabels", "showtickprefix", "showticksuffix", "side", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "type", "uirevision", "visible"}
 
     @property
     def angle(self):
@@ -86,11 +33,11 @@ def angle(self):
         -------
         int|float
         """
-        return self["angle"]
+        return self['angle']
 
     @angle.setter
     def angle(self, val):
-        self["angle"] = val
+        self['angle'] = val
 
     @property
     def autorange(self):
@@ -115,11 +62,11 @@ def autorange(self):
         -------
         Any
         """
-        return self["autorange"]
+        return self['autorange']
 
     @autorange.setter
     def autorange(self, val):
-        self["autorange"] = val
+        self['autorange'] = val
 
     @property
     def autorangeoptions(self):
@@ -134,11 +81,11 @@ def autorangeoptions(self):
         -------
         plotly.graph_objs.layout.polar.radialaxis.Autorangeoptions
         """
-        return self["autorangeoptions"]
+        return self['autorangeoptions']
 
     @autorangeoptions.setter
     def autorangeoptions(self, val):
-        self["autorangeoptions"] = val
+        self['autorangeoptions'] = val
 
     @property
     def autotickangles(self):
@@ -158,11 +105,11 @@ def autotickangles(self):
         -------
         list
         """
-        return self["autotickangles"]
+        return self['autotickangles']
 
     @autotickangles.setter
     def autotickangles(self, val):
-        self["autotickangles"] = val
+        self['autotickangles'] = val
 
     @property
     def autotypenumbers(self):
@@ -180,11 +127,11 @@ def autotypenumbers(self):
         -------
         Any
         """
-        return self["autotypenumbers"]
+        return self['autotypenumbers']
 
     @autotypenumbers.setter
     def autotypenumbers(self, val):
-        self["autotypenumbers"] = val
+        self['autotypenumbers'] = val
 
     @property
     def calendar(self):
@@ -205,11 +152,11 @@ def calendar(self):
         -------
         Any
         """
-        return self["calendar"]
+        return self['calendar']
 
     @calendar.setter
     def calendar(self, val):
-        self["calendar"] = val
+        self['calendar'] = val
 
     @property
     def categoryarray(self):
@@ -225,11 +172,11 @@ def categoryarray(self):
         -------
         numpy.ndarray
         """
-        return self["categoryarray"]
+        return self['categoryarray']
 
     @categoryarray.setter
     def categoryarray(self, val):
-        self["categoryarray"] = val
+        self['categoryarray'] = val
 
     @property
     def categoryarraysrc(self):
@@ -244,11 +191,11 @@ def categoryarraysrc(self):
         -------
         str
         """
-        return self["categoryarraysrc"]
+        return self['categoryarraysrc']
 
     @categoryarraysrc.setter
     def categoryarraysrc(self, val):
-        self["categoryarraysrc"] = val
+        self['categoryarraysrc'] = val
 
     @property
     def categoryorder(self):
@@ -283,11 +230,11 @@ def categoryorder(self):
         -------
         Any
         """
-        return self["categoryorder"]
+        return self['categoryorder']
 
     @categoryorder.setter
     def categoryorder(self, val):
-        self["categoryorder"] = val
+        self['categoryorder'] = val
 
     @property
     def color(self):
@@ -308,11 +255,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dtick(self):
@@ -344,11 +291,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -367,11 +314,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def gridcolor(self):
@@ -389,11 +336,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def griddash(self):
@@ -413,11 +360,11 @@ def griddash(self):
         -------
         str
         """
-        return self["griddash"]
+        return self['griddash']
 
     @griddash.setter
     def griddash(self, val):
-        self["griddash"] = val
+        self['griddash'] = val
 
     @property
     def gridwidth(self):
@@ -431,11 +378,11 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def hoverformat(self):
@@ -459,11 +406,11 @@ def hoverformat(self):
         -------
         str
         """
-        return self["hoverformat"]
+        return self['hoverformat']
 
     @hoverformat.setter
     def hoverformat(self, val):
-        self["hoverformat"] = val
+        self['hoverformat'] = val
 
     @property
     def labelalias(self):
@@ -484,11 +431,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def layer(self):
@@ -508,11 +455,11 @@ def layer(self):
         -------
         Any
         """
-        return self["layer"]
+        return self['layer']
 
     @layer.setter
     def layer(self, val):
-        self["layer"] = val
+        self['layer'] = val
 
     @property
     def linecolor(self):
@@ -530,11 +477,11 @@ def linecolor(self):
         -------
         str
         """
-        return self["linecolor"]
+        return self['linecolor']
 
     @linecolor.setter
     def linecolor(self, val):
-        self["linecolor"] = val
+        self['linecolor'] = val
 
     @property
     def linewidth(self):
@@ -548,11 +495,11 @@ def linewidth(self):
         -------
         int|float
         """
-        return self["linewidth"]
+        return self['linewidth']
 
     @linewidth.setter
     def linewidth(self, val):
-        self["linewidth"] = val
+        self['linewidth'] = val
 
     @property
     def maxallowed(self):
@@ -565,11 +512,11 @@ def maxallowed(self):
         -------
         Any
         """
-        return self["maxallowed"]
+        return self['maxallowed']
 
     @maxallowed.setter
     def maxallowed(self, val):
-        self["maxallowed"] = val
+        self['maxallowed'] = val
 
     @property
     def minallowed(self):
@@ -582,11 +529,11 @@ def minallowed(self):
         -------
         Any
         """
-        return self["minallowed"]
+        return self['minallowed']
 
     @minallowed.setter
     def minallowed(self, val):
-        self["minallowed"] = val
+        self['minallowed'] = val
 
     @property
     def minexponent(self):
@@ -601,11 +548,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -623,41 +570,41 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def range(self):
         """
-            Sets the range of this axis. If the axis `type` is "log", then
-            you must take the log of your desired range (e.g. to set the
-            range from 1 to 100, set the range from 0 to 2). If the axis
-            `type` is "date", it should be date strings, like date data,
-            though Date objects and unix milliseconds will be accepted and
-            converted to strings. If the axis `type` is "category", it
-            should be numbers, using the scale where each category is
-            assigned a serial number from zero in the order it appears.
-            Leaving either or both elements `null` impacts the default
-            `autorange`.
-
-            The 'range' property is an info array that may be specified as:
+        Sets the range of this axis. If the axis `type` is "log", then
+        you must take the log of your desired range (e.g. to set the
+        range from 1 to 100, set the range from 0 to 2). If the axis
+        `type` is "date", it should be date strings, like date data,
+        though Date objects and unix milliseconds will be accepted and
+        converted to strings. If the axis `type` is "category", it
+        should be numbers, using the scale where each category is
+        assigned a serial number from zero in the order it appears.
+        Leaving either or both elements `null` impacts the default
+        `autorange`.
+
+        The 'range' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'range[0]' property accepts values of any type
+    (1) The 'range[1]' property accepts values of any type
 
-            * a list or tuple of 2 elements where:
-        (0) The 'range[0]' property accepts values of any type
-        (1) The 'range[1]' property accepts values of any type
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["range"]
+        return self['range']
 
     @range.setter
     def range(self, val):
-        self["range"] = val
+        self['range'] = val
 
     @property
     def rangemode(self):
@@ -676,11 +623,11 @@ def rangemode(self):
         -------
         Any
         """
-        return self["rangemode"]
+        return self['rangemode']
 
     @rangemode.setter
     def rangemode(self, val):
-        self["rangemode"] = val
+        self['rangemode'] = val
 
     @property
     def separatethousands(self):
@@ -694,11 +641,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -716,11 +663,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showgrid(self):
@@ -735,11 +682,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def showline(self):
@@ -753,11 +700,11 @@ def showline(self):
         -------
         bool
         """
-        return self["showline"]
+        return self['showline']
 
     @showline.setter
     def showline(self, val):
-        self["showline"] = val
+        self['showline'] = val
 
     @property
     def showticklabels(self):
@@ -771,11 +718,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -793,11 +740,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -812,11 +759,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def side(self):
@@ -832,11 +779,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def tick0(self):
@@ -857,11 +804,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -879,11 +826,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -901,11 +848,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -922,11 +869,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.layout.polar.radialaxis.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -950,11 +897,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -969,11 +916,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.layout.polar.radialaxis.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -992,11 +939,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.layout.polar.radialaxis.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabelstep(self):
@@ -1016,11 +963,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -1034,11 +981,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -1059,11 +1006,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -1078,11 +1025,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -1099,11 +1046,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -1118,11 +1065,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -1138,11 +1085,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -1156,11 +1103,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -1175,11 +1122,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -1193,11 +1140,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -1211,11 +1158,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -1230,11 +1177,11 @@ def title(self):
         -------
         plotly.graph_objs.layout.polar.radialaxis.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def type(self):
@@ -1251,11 +1198,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def uirevision(self):
@@ -1270,11 +1217,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def visible(self):
@@ -1290,11 +1237,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1597,68 +1544,66 @@ def _prop_descriptions(self):
             interaction like dragging. Default is true when a
             cheater plot is present on the axis, otherwise false
         """
-
-    def __init__(
-        self,
-        arg=None,
-        angle=None,
-        autorange=None,
-        autorangeoptions=None,
-        autotickangles=None,
-        autotypenumbers=None,
-        calendar=None,
-        categoryarray=None,
-        categoryarraysrc=None,
-        categoryorder=None,
-        color=None,
-        dtick=None,
-        exponentformat=None,
-        gridcolor=None,
-        griddash=None,
-        gridwidth=None,
-        hoverformat=None,
-        labelalias=None,
-        layer=None,
-        linecolor=None,
-        linewidth=None,
-        maxallowed=None,
-        minallowed=None,
-        minexponent=None,
-        nticks=None,
-        range=None,
-        rangemode=None,
-        separatethousands=None,
-        showexponent=None,
-        showgrid=None,
-        showline=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        side=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        type=None,
-        uirevision=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            angle=None,
+            autorange=None,
+            autorangeoptions=None,
+            autotickangles=None,
+            autotypenumbers=None,
+            calendar=None,
+            categoryarray=None,
+            categoryarraysrc=None,
+            categoryorder=None,
+            color=None,
+            dtick=None,
+            exponentformat=None,
+            gridcolor=None,
+            griddash=None,
+            gridwidth=None,
+            hoverformat=None,
+            labelalias=None,
+            layer=None,
+            linecolor=None,
+            linewidth=None,
+            maxallowed=None,
+            minallowed=None,
+            minexponent=None,
+            nticks=None,
+            range=None,
+            rangemode=None,
+            separatethousands=None,
+            showexponent=None,
+            showgrid=None,
+            showline=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            side=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            type=None,
+            uirevision=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new RadialAxis object
 
@@ -1970,9 +1915,9 @@ def __init__(
         -------
         RadialAxis
         """
-        super().__init__("radialaxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('radialaxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1982,71 +1927,71 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.polar.RadialAxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.polar.RadialAxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("angle", arg, angle)
-        self._set_property("autorange", arg, autorange)
-        self._set_property("autorangeoptions", arg, autorangeoptions)
-        self._set_property("autotickangles", arg, autotickangles)
-        self._set_property("autotypenumbers", arg, autotypenumbers)
-        self._set_property("calendar", arg, calendar)
-        self._set_property("categoryarray", arg, categoryarray)
-        self._set_property("categoryarraysrc", arg, categoryarraysrc)
-        self._set_property("categoryorder", arg, categoryorder)
-        self._set_property("color", arg, color)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("griddash", arg, griddash)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("hoverformat", arg, hoverformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("layer", arg, layer)
-        self._set_property("linecolor", arg, linecolor)
-        self._set_property("linewidth", arg, linewidth)
-        self._set_property("maxallowed", arg, maxallowed)
-        self._set_property("minallowed", arg, minallowed)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("range", arg, range)
-        self._set_property("rangemode", arg, rangemode)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("showline", arg, showline)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("side", arg, side)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("type", arg, type)
-        self._set_property("uirevision", arg, uirevision)
-        self._set_property("visible", arg, visible)
+an instance of :class:`plotly.graph_objs.layout.polar.RadialAxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('angle', arg, angle)
+        self._set_property('autorange', arg, autorange)
+        self._set_property('autorangeoptions', arg, autorangeoptions)
+        self._set_property('autotickangles', arg, autotickangles)
+        self._set_property('autotypenumbers', arg, autotypenumbers)
+        self._set_property('calendar', arg, calendar)
+        self._set_property('categoryarray', arg, categoryarray)
+        self._set_property('categoryarraysrc', arg, categoryarraysrc)
+        self._set_property('categoryorder', arg, categoryorder)
+        self._set_property('color', arg, color)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('griddash', arg, griddash)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('hoverformat', arg, hoverformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('layer', arg, layer)
+        self._set_property('linecolor', arg, linecolor)
+        self._set_property('linewidth', arg, linewidth)
+        self._set_property('maxallowed', arg, maxallowed)
+        self._set_property('minallowed', arg, minallowed)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('range', arg, range)
+        self._set_property('rangemode', arg, rangemode)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('showline', arg, showline)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('side', arg, side)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('type', arg, type)
+        self._set_property('uirevision', arg, uirevision)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/polar/angularaxis/__init__.py b/plotly/graph_objs/layout/polar/angularaxis/__init__.py
index a1ed04a04e5..e1969f3ff2e 100644
--- a/plotly/graph_objs/layout/polar/angularaxis/__init__.py
+++ b/plotly/graph_objs/layout/polar/angularaxis/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop"]
-)
diff --git a/plotly/graph_objs/layout/polar/angularaxis/_tickfont.py b/plotly/graph_objs/layout/polar/angularaxis/_tickfont.py
index 677e0ccb9e1..d9aa1f0bf58 100644
--- a/plotly/graph_objs/layout/polar/angularaxis/_tickfont.py
+++ b/plotly/graph_objs/layout/polar/angularaxis/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.polar.angularaxis"
-    _path_str = "layout.polar.angularaxis.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.polar.angularaxis'
+    _path_str = 'layout.polar.angularaxis.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.polar.angularaxis.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.polar.angularaxis.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.polar.angularaxis.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/polar/angularaxis/_tickformatstop.py b/plotly/graph_objs/layout/polar/angularaxis/_tickformatstop.py
index 51ab090aac6..c39a4c65825 100644
--- a/plotly/graph_objs/layout/polar/angularaxis/_tickformatstop.py
+++ b/plotly/graph_objs/layout/polar/angularaxis/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.polar.angularaxis"
-    _path_str = "layout.polar.angularaxis.tickformatstop"
+    _parent_path_str = 'layout.polar.angularaxis'
+    _path_str = 'layout.polar.angularaxis.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.polar.angularaxis.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.polar.angularaxis.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.polar.angularaxis.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/polar/radialaxis/__init__.py b/plotly/graph_objs/layout/polar/radialaxis/__init__.py
index 72774d8afaa..9608419f0db 100644
--- a/plotly/graph_objs/layout/polar/radialaxis/__init__.py
+++ b/plotly/graph_objs/layout/polar/radialaxis/__init__.py
@@ -1,13 +1,17 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._autorangeoptions import Autorangeoptions
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._autorangeoptions.Autorangeoptions', '._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    [
-        "._autorangeoptions.Autorangeoptions",
-        "._tickfont.Tickfont",
-        "._tickformatstop.Tickformatstop",
-        "._title.Title",
-    ],
-)
diff --git a/plotly/graph_objs/layout/polar/radialaxis/_autorangeoptions.py b/plotly/graph_objs/layout/polar/radialaxis/_autorangeoptions.py
index 4548bca104f..8c15c9bf40c 100644
--- a/plotly/graph_objs/layout/polar/radialaxis/_autorangeoptions.py
+++ b/plotly/graph_objs/layout/polar/radialaxis/_autorangeoptions.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,16 +11,9 @@
 
 class Autorangeoptions(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.polar.radialaxis"
-    _path_str = "layout.polar.radialaxis.autorangeoptions"
-    _valid_props = {
-        "clipmax",
-        "clipmin",
-        "include",
-        "includesrc",
-        "maxallowed",
-        "minallowed",
-    }
+    _parent_path_str = 'layout.polar.radialaxis'
+    _path_str = 'layout.polar.radialaxis.autorangeoptions'
+    _valid_props = {"clipmax", "clipmin", "include", "includesrc", "maxallowed", "minallowed"}
 
     @property
     def clipmax(self):
@@ -30,11 +27,11 @@ def clipmax(self):
         -------
         Any
         """
-        return self["clipmax"]
+        return self['clipmax']
 
     @clipmax.setter
     def clipmax(self, val):
-        self["clipmax"] = val
+        self['clipmax'] = val
 
     @property
     def clipmin(self):
@@ -48,11 +45,11 @@ def clipmin(self):
         -------
         Any
         """
-        return self["clipmin"]
+        return self['clipmin']
 
     @clipmin.setter
     def clipmin(self, val):
-        self["clipmin"] = val
+        self['clipmin'] = val
 
     @property
     def include(self):
@@ -65,11 +62,11 @@ def include(self):
         -------
         Any|numpy.ndarray
         """
-        return self["include"]
+        return self['include']
 
     @include.setter
     def include(self, val):
-        self["include"] = val
+        self['include'] = val
 
     @property
     def includesrc(self):
@@ -83,11 +80,11 @@ def includesrc(self):
         -------
         str
         """
-        return self["includesrc"]
+        return self['includesrc']
 
     @includesrc.setter
     def includesrc(self, val):
-        self["includesrc"] = val
+        self['includesrc'] = val
 
     @property
     def maxallowed(self):
@@ -100,11 +97,11 @@ def maxallowed(self):
         -------
         Any
         """
-        return self["maxallowed"]
+        return self['maxallowed']
 
     @maxallowed.setter
     def maxallowed(self, val):
-        self["maxallowed"] = val
+        self['maxallowed'] = val
 
     @property
     def minallowed(self):
@@ -117,11 +114,11 @@ def minallowed(self):
         -------
         Any
         """
-        return self["minallowed"]
+        return self['minallowed']
 
     @minallowed.setter
     def minallowed(self, val):
-        self["minallowed"] = val
+        self['minallowed'] = val
 
     @property
     def _prop_descriptions(self):
@@ -144,18 +141,16 @@ def _prop_descriptions(self):
         minallowed
             Use this value exactly as autorange minimum.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        clipmax=None,
-        clipmin=None,
-        include=None,
-        includesrc=None,
-        maxallowed=None,
-        minallowed=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            clipmax=None,
+            clipmin=None,
+            include=None,
+            includesrc=None,
+            maxallowed=None,
+            minallowed=None,
+            **kwargs
+        ):
         """
         Construct a new Autorangeoptions object
 
@@ -187,9 +182,9 @@ def __init__(
         -------
         Autorangeoptions
         """
-        super().__init__("autorangeoptions")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('autorangeoptions')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -199,21 +194,21 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.polar.radialaxis.Autorangeoptions
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.polar.radialaxis.Autorangeoptions`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("clipmax", arg, clipmax)
-        self._set_property("clipmin", arg, clipmin)
-        self._set_property("include", arg, include)
-        self._set_property("includesrc", arg, includesrc)
-        self._set_property("maxallowed", arg, maxallowed)
-        self._set_property("minallowed", arg, minallowed)
+an instance of :class:`plotly.graph_objs.layout.polar.radialaxis.Autorangeoptions`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('clipmax', arg, clipmax)
+        self._set_property('clipmin', arg, clipmin)
+        self._set_property('include', arg, include)
+        self._set_property('includesrc', arg, includesrc)
+        self._set_property('maxallowed', arg, maxallowed)
+        self._set_property('minallowed', arg, minallowed)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/polar/radialaxis/_tickfont.py b/plotly/graph_objs/layout/polar/radialaxis/_tickfont.py
index 8abdb4ba8fd..c82a4ded665 100644
--- a/plotly/graph_objs/layout/polar/radialaxis/_tickfont.py
+++ b/plotly/graph_objs/layout/polar/radialaxis/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.polar.radialaxis"
-    _path_str = "layout.polar.radialaxis.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.polar.radialaxis'
+    _path_str = 'layout.polar.radialaxis.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.polar.radialaxis.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.polar.radialaxis.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.polar.radialaxis.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/polar/radialaxis/_tickformatstop.py b/plotly/graph_objs/layout/polar/radialaxis/_tickformatstop.py
index 768bfa3089f..4984b066365 100644
--- a/plotly/graph_objs/layout/polar/radialaxis/_tickformatstop.py
+++ b/plotly/graph_objs/layout/polar/radialaxis/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.polar.radialaxis"
-    _path_str = "layout.polar.radialaxis.tickformatstop"
+    _parent_path_str = 'layout.polar.radialaxis'
+    _path_str = 'layout.polar.radialaxis.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.polar.radialaxis.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.polar.radialaxis.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.polar.radialaxis.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/polar/radialaxis/_title.py b/plotly/graph_objs/layout/polar/radialaxis/_title.py
index 1d105d45149..64b1e3cf92b 100644
--- a/plotly/graph_objs/layout/polar/radialaxis/_title.py
+++ b/plotly/graph_objs/layout/polar/radialaxis/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.polar.radialaxis"
-    _path_str = "layout.polar.radialaxis.title"
+    _parent_path_str = 'layout.polar.radialaxis'
+    _path_str = 'layout.polar.radialaxis.title'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.polar.radialaxis.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of this axis.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.polar.radialaxis.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.polar.radialaxis.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.polar.radialaxis.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/polar/radialaxis/title/__init__.py b/plotly/graph_objs/layout/polar/radialaxis/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/polar/radialaxis/title/__init__.py
+++ b/plotly/graph_objs/layout/polar/radialaxis/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/polar/radialaxis/title/_font.py b/plotly/graph_objs/layout/polar/radialaxis/title/_font.py
index 67dffb964b2..a590c99da14 100644
--- a/plotly/graph_objs/layout/polar/radialaxis/title/_font.py
+++ b/plotly/graph_objs/layout/polar/radialaxis/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.polar.radialaxis.title"
-    _path_str = "layout.polar.radialaxis.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.polar.radialaxis.title'
+    _path_str = 'layout.polar.radialaxis.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.polar.radialaxis.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.polar.radialaxis.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.polar.radialaxis.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/__init__.py b/plotly/graph_objs/layout/scene/__init__.py
index c6a1c5c3e27..672c127a3c2 100644
--- a/plotly/graph_objs/layout/scene/__init__.py
+++ b/plotly/graph_objs/layout/scene/__init__.py
@@ -1,16 +1,24 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._annotation import Annotation
+    from ._aspectratio import Aspectratio
+    from ._camera import Camera
+    from ._domain import Domain
+    from ._xaxis import XAxis
+    from ._yaxis import YAxis
+    from ._zaxis import ZAxis
+    from . import annotation
+    from . import camera
+    from . import xaxis
+    from . import yaxis
+    from . import zaxis
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.annotation', '.camera', '.xaxis', '.yaxis', '.zaxis'],
+        ['._annotation.Annotation', '._aspectratio.Aspectratio', '._camera.Camera', '._domain.Domain', '._xaxis.XAxis', '._yaxis.YAxis', '._zaxis.ZAxis']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".annotation", ".camera", ".xaxis", ".yaxis", ".zaxis"],
-    [
-        "._annotation.Annotation",
-        "._aspectratio.Aspectratio",
-        "._camera.Camera",
-        "._domain.Domain",
-        "._xaxis.XAxis",
-        "._yaxis.YAxis",
-        "._zaxis.ZAxis",
-    ],
-)
diff --git a/plotly/graph_objs/layout/scene/_annotation.py b/plotly/graph_objs/layout/scene/_annotation.py
index aef234a6326..f41f3871be7 100644
--- a/plotly/graph_objs/layout/scene/_annotation.py
+++ b/plotly/graph_objs/layout/scene/_annotation.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,47 +11,9 @@
 
 class Annotation(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene"
-    _path_str = "layout.scene.annotation"
-    _valid_props = {
-        "align",
-        "arrowcolor",
-        "arrowhead",
-        "arrowside",
-        "arrowsize",
-        "arrowwidth",
-        "ax",
-        "ay",
-        "bgcolor",
-        "bordercolor",
-        "borderpad",
-        "borderwidth",
-        "captureevents",
-        "font",
-        "height",
-        "hoverlabel",
-        "hovertext",
-        "name",
-        "opacity",
-        "showarrow",
-        "standoff",
-        "startarrowhead",
-        "startarrowsize",
-        "startstandoff",
-        "templateitemname",
-        "text",
-        "textangle",
-        "valign",
-        "visible",
-        "width",
-        "x",
-        "xanchor",
-        "xshift",
-        "y",
-        "yanchor",
-        "yshift",
-        "z",
-    }
+    _parent_path_str = 'layout.scene'
+    _path_str = 'layout.scene.annotation'
+    _valid_props = {"align", "arrowcolor", "arrowhead", "arrowside", "arrowsize", "arrowwidth", "ax", "ay", "bgcolor", "bordercolor", "borderpad", "borderwidth", "captureevents", "font", "height", "hoverlabel", "hovertext", "name", "opacity", "showarrow", "standoff", "startarrowhead", "startarrowsize", "startstandoff", "templateitemname", "text", "textangle", "valign", "visible", "width", "x", "xanchor", "xshift", "y", "yanchor", "yshift", "z"}
 
     @property
     def align(self):
@@ -65,11 +31,11 @@ def align(self):
         -------
         Any
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def arrowcolor(self):
@@ -87,11 +53,11 @@ def arrowcolor(self):
         -------
         str
         """
-        return self["arrowcolor"]
+        return self['arrowcolor']
 
     @arrowcolor.setter
     def arrowcolor(self, val):
-        self["arrowcolor"] = val
+        self['arrowcolor'] = val
 
     @property
     def arrowhead(self):
@@ -106,11 +72,11 @@ def arrowhead(self):
         -------
         int
         """
-        return self["arrowhead"]
+        return self['arrowhead']
 
     @arrowhead.setter
     def arrowhead(self, val):
-        self["arrowhead"] = val
+        self['arrowhead'] = val
 
     @property
     def arrowside(self):
@@ -127,11 +93,11 @@ def arrowside(self):
         -------
         Any
         """
-        return self["arrowside"]
+        return self['arrowside']
 
     @arrowside.setter
     def arrowside(self, val):
-        self["arrowside"] = val
+        self['arrowside'] = val
 
     @property
     def arrowsize(self):
@@ -147,11 +113,11 @@ def arrowsize(self):
         -------
         int|float
         """
-        return self["arrowsize"]
+        return self['arrowsize']
 
     @arrowsize.setter
     def arrowsize(self, val):
-        self["arrowsize"] = val
+        self['arrowsize'] = val
 
     @property
     def arrowwidth(self):
@@ -165,11 +131,11 @@ def arrowwidth(self):
         -------
         int|float
         """
-        return self["arrowwidth"]
+        return self['arrowwidth']
 
     @arrowwidth.setter
     def arrowwidth(self, val):
-        self["arrowwidth"] = val
+        self['arrowwidth'] = val
 
     @property
     def ax(self):
@@ -184,11 +150,11 @@ def ax(self):
         -------
         int|float
         """
-        return self["ax"]
+        return self['ax']
 
     @ax.setter
     def ax(self, val):
-        self["ax"] = val
+        self['ax'] = val
 
     @property
     def ay(self):
@@ -203,11 +169,11 @@ def ay(self):
         -------
         int|float
         """
-        return self["ay"]
+        return self['ay']
 
     @ay.setter
     def ay(self, val):
-        self["ay"] = val
+        self['ay'] = val
 
     @property
     def bgcolor(self):
@@ -225,11 +191,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -247,11 +213,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderpad(self):
@@ -266,11 +232,11 @@ def borderpad(self):
         -------
         int|float
         """
-        return self["borderpad"]
+        return self['borderpad']
 
     @borderpad.setter
     def borderpad(self, val):
-        self["borderpad"] = val
+        self['borderpad'] = val
 
     @property
     def borderwidth(self):
@@ -285,11 +251,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def captureevents(self):
@@ -308,11 +274,11 @@ def captureevents(self):
         -------
         bool
         """
-        return self["captureevents"]
+        return self['captureevents']
 
     @captureevents.setter
     def captureevents(self, val):
-        self["captureevents"] = val
+        self['captureevents'] = val
 
     @property
     def font(self):
@@ -329,11 +295,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.scene.annotation.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def height(self):
@@ -348,11 +314,11 @@ def height(self):
         -------
         int|float
         """
-        return self["height"]
+        return self['height']
 
     @height.setter
     def height(self, val):
-        self["height"] = val
+        self['height'] = val
 
     @property
     def hoverlabel(self):
@@ -367,11 +333,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.layout.scene.annotation.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertext(self):
@@ -387,11 +353,11 @@ def hovertext(self):
         -------
         str
         """
-        return self["hovertext"]
+        return self['hovertext']
 
     @hovertext.setter
     def hovertext(self, val):
-        self["hovertext"] = val
+        self['hovertext'] = val
 
     @property
     def name(self):
@@ -412,11 +378,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def opacity(self):
@@ -430,11 +396,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def showarrow(self):
@@ -450,11 +416,11 @@ def showarrow(self):
         -------
         bool
         """
-        return self["showarrow"]
+        return self['showarrow']
 
     @showarrow.setter
     def showarrow(self, val):
-        self["showarrow"] = val
+        self['showarrow'] = val
 
     @property
     def standoff(self):
@@ -472,11 +438,11 @@ def standoff(self):
         -------
         int|float
         """
-        return self["standoff"]
+        return self['standoff']
 
     @standoff.setter
     def standoff(self, val):
-        self["standoff"] = val
+        self['standoff'] = val
 
     @property
     def startarrowhead(self):
@@ -491,11 +457,11 @@ def startarrowhead(self):
         -------
         int
         """
-        return self["startarrowhead"]
+        return self['startarrowhead']
 
     @startarrowhead.setter
     def startarrowhead(self, val):
-        self["startarrowhead"] = val
+        self['startarrowhead'] = val
 
     @property
     def startarrowsize(self):
@@ -511,11 +477,11 @@ def startarrowsize(self):
         -------
         int|float
         """
-        return self["startarrowsize"]
+        return self['startarrowsize']
 
     @startarrowsize.setter
     def startarrowsize(self, val):
-        self["startarrowsize"] = val
+        self['startarrowsize'] = val
 
     @property
     def startstandoff(self):
@@ -533,11 +499,11 @@ def startstandoff(self):
         -------
         int|float
         """
-        return self["startstandoff"]
+        return self['startstandoff']
 
     @startstandoff.setter
     def startstandoff(self, val):
-        self["startstandoff"] = val
+        self['startstandoff'] = val
 
     @property
     def templateitemname(self):
@@ -559,11 +525,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def text(self):
@@ -581,11 +547,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textangle(self):
@@ -602,11 +568,11 @@ def textangle(self):
         -------
         int|float
         """
-        return self["textangle"]
+        return self['textangle']
 
     @textangle.setter
     def textangle(self, val):
-        self["textangle"] = val
+        self['textangle'] = val
 
     @property
     def valign(self):
@@ -623,11 +589,11 @@ def valign(self):
         -------
         Any
         """
-        return self["valign"]
+        return self['valign']
 
     @valign.setter
     def valign(self, val):
-        self["valign"] = val
+        self['valign'] = val
 
     @property
     def visible(self):
@@ -641,11 +607,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -661,11 +627,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def x(self):
@@ -678,11 +644,11 @@ def x(self):
         -------
         Any
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -705,11 +671,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xshift(self):
@@ -724,11 +690,11 @@ def xshift(self):
         -------
         int|float
         """
-        return self["xshift"]
+        return self['xshift']
 
     @xshift.setter
     def xshift(self, val):
-        self["xshift"] = val
+        self['xshift'] = val
 
     @property
     def y(self):
@@ -741,11 +707,11 @@ def y(self):
         -------
         Any
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -768,11 +734,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def yshift(self):
@@ -787,11 +753,11 @@ def yshift(self):
         -------
         int|float
         """
-        return self["yshift"]
+        return self['yshift']
 
     @yshift.setter
     def yshift(self, val):
-        self["yshift"] = val
+        self['yshift'] = val
 
     @property
     def z(self):
@@ -804,11 +770,11 @@ def z(self):
         -------
         Any
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -970,49 +936,47 @@ def _prop_descriptions(self):
         z
             Sets the annotation's z position.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        arrowcolor=None,
-        arrowhead=None,
-        arrowside=None,
-        arrowsize=None,
-        arrowwidth=None,
-        ax=None,
-        ay=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderpad=None,
-        borderwidth=None,
-        captureevents=None,
-        font=None,
-        height=None,
-        hoverlabel=None,
-        hovertext=None,
-        name=None,
-        opacity=None,
-        showarrow=None,
-        standoff=None,
-        startarrowhead=None,
-        startarrowsize=None,
-        startstandoff=None,
-        templateitemname=None,
-        text=None,
-        textangle=None,
-        valign=None,
-        visible=None,
-        width=None,
-        x=None,
-        xanchor=None,
-        xshift=None,
-        y=None,
-        yanchor=None,
-        yshift=None,
-        z=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            arrowcolor=None,
+            arrowhead=None,
+            arrowside=None,
+            arrowsize=None,
+            arrowwidth=None,
+            ax=None,
+            ay=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderpad=None,
+            borderwidth=None,
+            captureevents=None,
+            font=None,
+            height=None,
+            hoverlabel=None,
+            hovertext=None,
+            name=None,
+            opacity=None,
+            showarrow=None,
+            standoff=None,
+            startarrowhead=None,
+            startarrowsize=None,
+            startstandoff=None,
+            templateitemname=None,
+            text=None,
+            textangle=None,
+            valign=None,
+            visible=None,
+            width=None,
+            x=None,
+            xanchor=None,
+            xshift=None,
+            y=None,
+            yanchor=None,
+            yshift=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Annotation object
 
@@ -1183,9 +1147,9 @@ def __init__(
         -------
         Annotation
         """
-        super().__init__("annotations")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('annotations')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1195,52 +1159,52 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.Annotation
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.Annotation`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("arrowcolor", arg, arrowcolor)
-        self._set_property("arrowhead", arg, arrowhead)
-        self._set_property("arrowside", arg, arrowside)
-        self._set_property("arrowsize", arg, arrowsize)
-        self._set_property("arrowwidth", arg, arrowwidth)
-        self._set_property("ax", arg, ax)
-        self._set_property("ay", arg, ay)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderpad", arg, borderpad)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("captureevents", arg, captureevents)
-        self._set_property("font", arg, font)
-        self._set_property("height", arg, height)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertext", arg, hovertext)
-        self._set_property("name", arg, name)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("showarrow", arg, showarrow)
-        self._set_property("standoff", arg, standoff)
-        self._set_property("startarrowhead", arg, startarrowhead)
-        self._set_property("startarrowsize", arg, startarrowsize)
-        self._set_property("startstandoff", arg, startstandoff)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("text", arg, text)
-        self._set_property("textangle", arg, textangle)
-        self._set_property("valign", arg, valign)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xshift", arg, xshift)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("yshift", arg, yshift)
-        self._set_property("z", arg, z)
+an instance of :class:`plotly.graph_objs.layout.scene.Annotation`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('arrowcolor', arg, arrowcolor)
+        self._set_property('arrowhead', arg, arrowhead)
+        self._set_property('arrowside', arg, arrowside)
+        self._set_property('arrowsize', arg, arrowsize)
+        self._set_property('arrowwidth', arg, arrowwidth)
+        self._set_property('ax', arg, ax)
+        self._set_property('ay', arg, ay)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderpad', arg, borderpad)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('captureevents', arg, captureevents)
+        self._set_property('font', arg, font)
+        self._set_property('height', arg, height)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertext', arg, hovertext)
+        self._set_property('name', arg, name)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('showarrow', arg, showarrow)
+        self._set_property('standoff', arg, standoff)
+        self._set_property('startarrowhead', arg, startarrowhead)
+        self._set_property('startarrowsize', arg, startarrowsize)
+        self._set_property('startstandoff', arg, startstandoff)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('text', arg, text)
+        self._set_property('textangle', arg, textangle)
+        self._set_property('valign', arg, valign)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xshift', arg, xshift)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('yshift', arg, yshift)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/_aspectratio.py b/plotly/graph_objs/layout/scene/_aspectratio.py
index 81c15e75422..651c57e34fb 100644
--- a/plotly/graph_objs/layout/scene/_aspectratio.py
+++ b/plotly/graph_objs/layout/scene/_aspectratio.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Aspectratio(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene"
-    _path_str = "layout.scene.aspectratio"
+    _parent_path_str = 'layout.scene'
+    _path_str = 'layout.scene.aspectratio'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -21,11 +25,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -37,11 +41,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -53,11 +57,11 @@ def z(self):
         -------
         int|float
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -69,8 +73,13 @@ def _prop_descriptions(self):
         z
 
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Aspectratio object
 
@@ -93,9 +102,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Aspectratio
         """
-        super().__init__("aspectratio")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('aspectratio')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -105,18 +114,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.Aspectratio
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.Aspectratio`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.scene.Aspectratio`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/_camera.py b/plotly/graph_objs/layout/scene/_camera.py
index e70bb6f0aaa..f39c2d5fb2a 100644
--- a/plotly/graph_objs/layout/scene/_camera.py
+++ b/plotly/graph_objs/layout/scene/_camera.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Camera(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene"
-    _path_str = "layout.scene.camera"
+    _parent_path_str = 'layout.scene'
+    _path_str = 'layout.scene.camera'
     _valid_props = {"center", "eye", "projection", "up"}
 
     @property
@@ -28,11 +32,11 @@ def center(self):
         -------
         plotly.graph_objs.layout.scene.camera.Center
         """
-        return self["center"]
+        return self['center']
 
     @center.setter
     def center(self, val):
-        self["center"] = val
+        self['center'] = val
 
     @property
     def eye(self):
@@ -51,11 +55,11 @@ def eye(self):
         -------
         plotly.graph_objs.layout.scene.camera.Eye
         """
-        return self["eye"]
+        return self['eye']
 
     @eye.setter
     def eye(self, val):
-        self["eye"] = val
+        self['eye'] = val
 
     @property
     def projection(self):
@@ -70,11 +74,11 @@ def projection(self):
         -------
         plotly.graph_objs.layout.scene.camera.Projection
         """
-        return self["projection"]
+        return self['projection']
 
     @projection.setter
     def projection(self, val):
-        self["projection"] = val
+        self['projection'] = val
 
     @property
     def up(self):
@@ -94,11 +98,11 @@ def up(self):
         -------
         plotly.graph_objs.layout.scene.camera.Up
         """
-        return self["up"]
+        return self['up']
 
     @up.setter
     def up(self, val):
-        self["up"] = val
+        self['up'] = val
 
     @property
     def _prop_descriptions(self):
@@ -121,10 +125,14 @@ def _prop_descriptions(self):
             with respect to the page. The default is *{x: 0, y: 0,
             z: 1}* which means that the z axis points up.
         """
-
-    def __init__(
-        self, arg=None, center=None, eye=None, projection=None, up=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            center=None,
+            eye=None,
+            projection=None,
+            up=None,
+            **kwargs
+        ):
         """
         Construct a new Camera object
 
@@ -156,9 +164,9 @@ def __init__(
         -------
         Camera
         """
-        super().__init__("camera")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('camera')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -168,19 +176,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.Camera
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.Camera`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.scene.Camera`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("center", arg, center)
-        self._set_property("eye", arg, eye)
-        self._set_property("projection", arg, projection)
-        self._set_property("up", arg, up)
+        self._set_property('center', arg, center)
+        self._set_property('eye', arg, eye)
+        self._set_property('projection', arg, projection)
+        self._set_property('up', arg, up)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/_domain.py b/plotly/graph_objs/layout/scene/_domain.py
index 88469984d85..cbd5150263b 100644
--- a/plotly/graph_objs/layout/scene/_domain.py
+++ b/plotly/graph_objs/layout/scene/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene"
-    _path_str = "layout.scene.domain"
+    _parent_path_str = 'layout.scene'
+    _path_str = 'layout.scene.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -25,11 +29,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -45,59 +49,59 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this scene subplot (in plot
-            fraction).
-
-            The 'x' property is an info array that may be specified as:
+        Sets the horizontal domain of this scene subplot (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this scene subplot (in plot
-            fraction).
+        Sets the vertical domain of this scene subplot (in plot
+        fraction).
 
-            The 'y' property is an info array that may be specified as:
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,8 +119,14 @@ def _prop_descriptions(self):
             Sets the vertical domain of this scene subplot (in plot
             fraction).
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -143,9 +153,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -155,19 +165,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.scene.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/_xaxis.py b/plotly/graph_objs/layout/scene/_xaxis.py
index 466951eed53..d72123139e3 100644
--- a/plotly/graph_objs/layout/scene/_xaxis.py
+++ b/plotly/graph_objs/layout/scene/_xaxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,70 +11,9 @@
 
 class XAxis(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene"
-    _path_str = "layout.scene.xaxis"
-    _valid_props = {
-        "autorange",
-        "autorangeoptions",
-        "autotypenumbers",
-        "backgroundcolor",
-        "calendar",
-        "categoryarray",
-        "categoryarraysrc",
-        "categoryorder",
-        "color",
-        "dtick",
-        "exponentformat",
-        "gridcolor",
-        "gridwidth",
-        "hoverformat",
-        "labelalias",
-        "linecolor",
-        "linewidth",
-        "maxallowed",
-        "minallowed",
-        "minexponent",
-        "mirror",
-        "nticks",
-        "range",
-        "rangemode",
-        "separatethousands",
-        "showaxeslabels",
-        "showbackground",
-        "showexponent",
-        "showgrid",
-        "showline",
-        "showspikes",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "spikecolor",
-        "spikesides",
-        "spikethickness",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "type",
-        "visible",
-        "zeroline",
-        "zerolinecolor",
-        "zerolinewidth",
-    }
+    _parent_path_str = 'layout.scene'
+    _path_str = 'layout.scene.xaxis'
+    _valid_props = {"autorange", "autorangeoptions", "autotypenumbers", "backgroundcolor", "calendar", "categoryarray", "categoryarraysrc", "categoryorder", "color", "dtick", "exponentformat", "gridcolor", "gridwidth", "hoverformat", "labelalias", "linecolor", "linewidth", "maxallowed", "minallowed", "minexponent", "mirror", "nticks", "range", "rangemode", "separatethousands", "showaxeslabels", "showbackground", "showexponent", "showgrid", "showline", "showspikes", "showticklabels", "showtickprefix", "showticksuffix", "spikecolor", "spikesides", "spikethickness", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "type", "visible", "zeroline", "zerolinecolor", "zerolinewidth"}
 
     @property
     def autorange(self):
@@ -95,11 +38,11 @@ def autorange(self):
         -------
         Any
         """
-        return self["autorange"]
+        return self['autorange']
 
     @autorange.setter
     def autorange(self, val):
-        self["autorange"] = val
+        self['autorange'] = val
 
     @property
     def autorangeoptions(self):
@@ -114,11 +57,11 @@ def autorangeoptions(self):
         -------
         plotly.graph_objs.layout.scene.xaxis.Autorangeoptions
         """
-        return self["autorangeoptions"]
+        return self['autorangeoptions']
 
     @autorangeoptions.setter
     def autorangeoptions(self, val):
-        self["autorangeoptions"] = val
+        self['autorangeoptions'] = val
 
     @property
     def autotypenumbers(self):
@@ -136,11 +79,11 @@ def autotypenumbers(self):
         -------
         Any
         """
-        return self["autotypenumbers"]
+        return self['autotypenumbers']
 
     @autotypenumbers.setter
     def autotypenumbers(self, val):
-        self["autotypenumbers"] = val
+        self['autotypenumbers'] = val
 
     @property
     def backgroundcolor(self):
@@ -158,11 +101,11 @@ def backgroundcolor(self):
         -------
         str
         """
-        return self["backgroundcolor"]
+        return self['backgroundcolor']
 
     @backgroundcolor.setter
     def backgroundcolor(self, val):
-        self["backgroundcolor"] = val
+        self['backgroundcolor'] = val
 
     @property
     def calendar(self):
@@ -183,11 +126,11 @@ def calendar(self):
         -------
         Any
         """
-        return self["calendar"]
+        return self['calendar']
 
     @calendar.setter
     def calendar(self, val):
-        self["calendar"] = val
+        self['calendar'] = val
 
     @property
     def categoryarray(self):
@@ -203,11 +146,11 @@ def categoryarray(self):
         -------
         numpy.ndarray
         """
-        return self["categoryarray"]
+        return self['categoryarray']
 
     @categoryarray.setter
     def categoryarray(self, val):
-        self["categoryarray"] = val
+        self['categoryarray'] = val
 
     @property
     def categoryarraysrc(self):
@@ -222,11 +165,11 @@ def categoryarraysrc(self):
         -------
         str
         """
-        return self["categoryarraysrc"]
+        return self['categoryarraysrc']
 
     @categoryarraysrc.setter
     def categoryarraysrc(self, val):
-        self["categoryarraysrc"] = val
+        self['categoryarraysrc'] = val
 
     @property
     def categoryorder(self):
@@ -261,11 +204,11 @@ def categoryorder(self):
         -------
         Any
         """
-        return self["categoryorder"]
+        return self['categoryorder']
 
     @categoryorder.setter
     def categoryorder(self, val):
-        self["categoryorder"] = val
+        self['categoryorder'] = val
 
     @property
     def color(self):
@@ -286,11 +229,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dtick(self):
@@ -322,11 +265,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -345,11 +288,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def gridcolor(self):
@@ -367,11 +310,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def gridwidth(self):
@@ -385,11 +328,11 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def hoverformat(self):
@@ -413,11 +356,11 @@ def hoverformat(self):
         -------
         str
         """
-        return self["hoverformat"]
+        return self['hoverformat']
 
     @hoverformat.setter
     def hoverformat(self, val):
-        self["hoverformat"] = val
+        self['hoverformat'] = val
 
     @property
     def labelalias(self):
@@ -438,11 +381,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def linecolor(self):
@@ -460,11 +403,11 @@ def linecolor(self):
         -------
         str
         """
-        return self["linecolor"]
+        return self['linecolor']
 
     @linecolor.setter
     def linecolor(self, val):
-        self["linecolor"] = val
+        self['linecolor'] = val
 
     @property
     def linewidth(self):
@@ -478,11 +421,11 @@ def linewidth(self):
         -------
         int|float
         """
-        return self["linewidth"]
+        return self['linewidth']
 
     @linewidth.setter
     def linewidth(self, val):
-        self["linewidth"] = val
+        self['linewidth'] = val
 
     @property
     def maxallowed(self):
@@ -495,11 +438,11 @@ def maxallowed(self):
         -------
         Any
         """
-        return self["maxallowed"]
+        return self['maxallowed']
 
     @maxallowed.setter
     def maxallowed(self, val):
-        self["maxallowed"] = val
+        self['maxallowed'] = val
 
     @property
     def minallowed(self):
@@ -512,11 +455,11 @@ def minallowed(self):
         -------
         Any
         """
-        return self["minallowed"]
+        return self['minallowed']
 
     @minallowed.setter
     def minallowed(self, val):
-        self["minallowed"] = val
+        self['minallowed'] = val
 
     @property
     def minexponent(self):
@@ -531,11 +474,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def mirror(self):
@@ -555,11 +498,11 @@ def mirror(self):
         -------
         Any
         """
-        return self["mirror"]
+        return self['mirror']
 
     @mirror.setter
     def mirror(self, val):
-        self["mirror"] = val
+        self['mirror'] = val
 
     @property
     def nticks(self):
@@ -577,41 +520,41 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def range(self):
         """
-            Sets the range of this axis. If the axis `type` is "log", then
-            you must take the log of your desired range (e.g. to set the
-            range from 1 to 100, set the range from 0 to 2). If the axis
-            `type` is "date", it should be date strings, like date data,
-            though Date objects and unix milliseconds will be accepted and
-            converted to strings. If the axis `type` is "category", it
-            should be numbers, using the scale where each category is
-            assigned a serial number from zero in the order it appears.
-            Leaving either or both elements `null` impacts the default
-            `autorange`.
-
-            The 'range' property is an info array that may be specified as:
+        Sets the range of this axis. If the axis `type` is "log", then
+        you must take the log of your desired range (e.g. to set the
+        range from 1 to 100, set the range from 0 to 2). If the axis
+        `type` is "date", it should be date strings, like date data,
+        though Date objects and unix milliseconds will be accepted and
+        converted to strings. If the axis `type` is "category", it
+        should be numbers, using the scale where each category is
+        assigned a serial number from zero in the order it appears.
+        Leaving either or both elements `null` impacts the default
+        `autorange`.
+
+        The 'range' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'range[0]' property accepts values of any type
+    (1) The 'range[1]' property accepts values of any type
 
-            * a list or tuple of 2 elements where:
-        (0) The 'range[0]' property accepts values of any type
-        (1) The 'range[1]' property accepts values of any type
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["range"]
+        return self['range']
 
     @range.setter
     def range(self, val):
-        self["range"] = val
+        self['range'] = val
 
     @property
     def rangemode(self):
@@ -630,11 +573,11 @@ def rangemode(self):
         -------
         Any
         """
-        return self["rangemode"]
+        return self['rangemode']
 
     @rangemode.setter
     def rangemode(self, val):
-        self["rangemode"] = val
+        self['rangemode'] = val
 
     @property
     def separatethousands(self):
@@ -648,11 +591,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showaxeslabels(self):
@@ -666,11 +609,11 @@ def showaxeslabels(self):
         -------
         bool
         """
-        return self["showaxeslabels"]
+        return self['showaxeslabels']
 
     @showaxeslabels.setter
     def showaxeslabels(self, val):
-        self["showaxeslabels"] = val
+        self['showaxeslabels'] = val
 
     @property
     def showbackground(self):
@@ -684,11 +627,11 @@ def showbackground(self):
         -------
         bool
         """
-        return self["showbackground"]
+        return self['showbackground']
 
     @showbackground.setter
     def showbackground(self, val):
-        self["showbackground"] = val
+        self['showbackground'] = val
 
     @property
     def showexponent(self):
@@ -706,11 +649,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showgrid(self):
@@ -725,11 +668,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def showline(self):
@@ -743,11 +686,11 @@ def showline(self):
         -------
         bool
         """
-        return self["showline"]
+        return self['showline']
 
     @showline.setter
     def showline(self, val):
-        self["showline"] = val
+        self['showline'] = val
 
     @property
     def showspikes(self):
@@ -762,11 +705,11 @@ def showspikes(self):
         -------
         bool
         """
-        return self["showspikes"]
+        return self['showspikes']
 
     @showspikes.setter
     def showspikes(self, val):
-        self["showspikes"] = val
+        self['showspikes'] = val
 
     @property
     def showticklabels(self):
@@ -780,11 +723,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -802,11 +745,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -821,11 +764,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def spikecolor(self):
@@ -843,11 +786,11 @@ def spikecolor(self):
         -------
         str
         """
-        return self["spikecolor"]
+        return self['spikecolor']
 
     @spikecolor.setter
     def spikecolor(self, val):
-        self["spikecolor"] = val
+        self['spikecolor'] = val
 
     @property
     def spikesides(self):
@@ -862,11 +805,11 @@ def spikesides(self):
         -------
         bool
         """
-        return self["spikesides"]
+        return self['spikesides']
 
     @spikesides.setter
     def spikesides(self, val):
-        self["spikesides"] = val
+        self['spikesides'] = val
 
     @property
     def spikethickness(self):
@@ -880,11 +823,11 @@ def spikethickness(self):
         -------
         int|float
         """
-        return self["spikethickness"]
+        return self['spikethickness']
 
     @spikethickness.setter
     def spikethickness(self, val):
-        self["spikethickness"] = val
+        self['spikethickness'] = val
 
     @property
     def tick0(self):
@@ -905,11 +848,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -927,11 +870,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -949,11 +892,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -970,11 +913,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.layout.scene.xaxis.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -998,11 +941,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -1017,11 +960,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.layout.scene.xaxis.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -1041,11 +984,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.layout.scene.xaxis.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklen(self):
@@ -1059,11 +1002,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -1084,11 +1027,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -1103,11 +1046,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -1124,11 +1067,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -1143,11 +1086,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -1163,11 +1106,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -1181,11 +1124,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -1200,11 +1143,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -1218,11 +1161,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -1236,11 +1179,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -1255,11 +1198,11 @@ def title(self):
         -------
         plotly.graph_objs.layout.scene.xaxis.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def type(self):
@@ -1276,11 +1219,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def visible(self):
@@ -1296,11 +1239,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def zeroline(self):
@@ -1316,11 +1259,11 @@ def zeroline(self):
         -------
         bool
         """
-        return self["zeroline"]
+        return self['zeroline']
 
     @zeroline.setter
     def zeroline(self, val):
-        self["zeroline"] = val
+        self['zeroline'] = val
 
     @property
     def zerolinecolor(self):
@@ -1338,11 +1281,11 @@ def zerolinecolor(self):
         -------
         str
         """
-        return self["zerolinecolor"]
+        return self['zerolinecolor']
 
     @zerolinecolor.setter
     def zerolinecolor(self, val):
-        self["zerolinecolor"] = val
+        self['zerolinecolor'] = val
 
     @property
     def zerolinewidth(self):
@@ -1356,11 +1299,11 @@ def zerolinewidth(self):
         -------
         int|float
         """
-        return self["zerolinewidth"]
+        return self['zerolinewidth']
 
     @zerolinewidth.setter
     def zerolinewidth(self, val):
-        self["zerolinewidth"] = val
+        self['zerolinewidth'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1657,72 +1600,70 @@ def _prop_descriptions(self):
         zerolinewidth
             Sets the width (in px) of the zero line.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autorange=None,
-        autorangeoptions=None,
-        autotypenumbers=None,
-        backgroundcolor=None,
-        calendar=None,
-        categoryarray=None,
-        categoryarraysrc=None,
-        categoryorder=None,
-        color=None,
-        dtick=None,
-        exponentformat=None,
-        gridcolor=None,
-        gridwidth=None,
-        hoverformat=None,
-        labelalias=None,
-        linecolor=None,
-        linewidth=None,
-        maxallowed=None,
-        minallowed=None,
-        minexponent=None,
-        mirror=None,
-        nticks=None,
-        range=None,
-        rangemode=None,
-        separatethousands=None,
-        showaxeslabels=None,
-        showbackground=None,
-        showexponent=None,
-        showgrid=None,
-        showline=None,
-        showspikes=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        spikecolor=None,
-        spikesides=None,
-        spikethickness=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        type=None,
-        visible=None,
-        zeroline=None,
-        zerolinecolor=None,
-        zerolinewidth=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autorange=None,
+            autorangeoptions=None,
+            autotypenumbers=None,
+            backgroundcolor=None,
+            calendar=None,
+            categoryarray=None,
+            categoryarraysrc=None,
+            categoryorder=None,
+            color=None,
+            dtick=None,
+            exponentformat=None,
+            gridcolor=None,
+            gridwidth=None,
+            hoverformat=None,
+            labelalias=None,
+            linecolor=None,
+            linewidth=None,
+            maxallowed=None,
+            minallowed=None,
+            minexponent=None,
+            mirror=None,
+            nticks=None,
+            range=None,
+            rangemode=None,
+            separatethousands=None,
+            showaxeslabels=None,
+            showbackground=None,
+            showexponent=None,
+            showgrid=None,
+            showline=None,
+            showspikes=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            spikecolor=None,
+            spikesides=None,
+            spikethickness=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            type=None,
+            visible=None,
+            zeroline=None,
+            zerolinecolor=None,
+            zerolinewidth=None,
+            **kwargs
+        ):
         """
         Construct a new XAxis object
 
@@ -2028,9 +1969,9 @@ def __init__(
         -------
         XAxis
         """
-        super().__init__("xaxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('xaxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2040,75 +1981,75 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.XAxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.XAxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autorange", arg, autorange)
-        self._set_property("autorangeoptions", arg, autorangeoptions)
-        self._set_property("autotypenumbers", arg, autotypenumbers)
-        self._set_property("backgroundcolor", arg, backgroundcolor)
-        self._set_property("calendar", arg, calendar)
-        self._set_property("categoryarray", arg, categoryarray)
-        self._set_property("categoryarraysrc", arg, categoryarraysrc)
-        self._set_property("categoryorder", arg, categoryorder)
-        self._set_property("color", arg, color)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("hoverformat", arg, hoverformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("linecolor", arg, linecolor)
-        self._set_property("linewidth", arg, linewidth)
-        self._set_property("maxallowed", arg, maxallowed)
-        self._set_property("minallowed", arg, minallowed)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("mirror", arg, mirror)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("range", arg, range)
-        self._set_property("rangemode", arg, rangemode)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showaxeslabels", arg, showaxeslabels)
-        self._set_property("showbackground", arg, showbackground)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("showline", arg, showline)
-        self._set_property("showspikes", arg, showspikes)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("spikecolor", arg, spikecolor)
-        self._set_property("spikesides", arg, spikesides)
-        self._set_property("spikethickness", arg, spikethickness)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("type", arg, type)
-        self._set_property("visible", arg, visible)
-        self._set_property("zeroline", arg, zeroline)
-        self._set_property("zerolinecolor", arg, zerolinecolor)
-        self._set_property("zerolinewidth", arg, zerolinewidth)
+an instance of :class:`plotly.graph_objs.layout.scene.XAxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autorange', arg, autorange)
+        self._set_property('autorangeoptions', arg, autorangeoptions)
+        self._set_property('autotypenumbers', arg, autotypenumbers)
+        self._set_property('backgroundcolor', arg, backgroundcolor)
+        self._set_property('calendar', arg, calendar)
+        self._set_property('categoryarray', arg, categoryarray)
+        self._set_property('categoryarraysrc', arg, categoryarraysrc)
+        self._set_property('categoryorder', arg, categoryorder)
+        self._set_property('color', arg, color)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('hoverformat', arg, hoverformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('linecolor', arg, linecolor)
+        self._set_property('linewidth', arg, linewidth)
+        self._set_property('maxallowed', arg, maxallowed)
+        self._set_property('minallowed', arg, minallowed)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('mirror', arg, mirror)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('range', arg, range)
+        self._set_property('rangemode', arg, rangemode)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showaxeslabels', arg, showaxeslabels)
+        self._set_property('showbackground', arg, showbackground)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('showline', arg, showline)
+        self._set_property('showspikes', arg, showspikes)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('spikecolor', arg, spikecolor)
+        self._set_property('spikesides', arg, spikesides)
+        self._set_property('spikethickness', arg, spikethickness)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('type', arg, type)
+        self._set_property('visible', arg, visible)
+        self._set_property('zeroline', arg, zeroline)
+        self._set_property('zerolinecolor', arg, zerolinecolor)
+        self._set_property('zerolinewidth', arg, zerolinewidth)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/_yaxis.py b/plotly/graph_objs/layout/scene/_yaxis.py
index 28d9e26db96..674e2d1fc26 100644
--- a/plotly/graph_objs/layout/scene/_yaxis.py
+++ b/plotly/graph_objs/layout/scene/_yaxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,70 +11,9 @@
 
 class YAxis(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene"
-    _path_str = "layout.scene.yaxis"
-    _valid_props = {
-        "autorange",
-        "autorangeoptions",
-        "autotypenumbers",
-        "backgroundcolor",
-        "calendar",
-        "categoryarray",
-        "categoryarraysrc",
-        "categoryorder",
-        "color",
-        "dtick",
-        "exponentformat",
-        "gridcolor",
-        "gridwidth",
-        "hoverformat",
-        "labelalias",
-        "linecolor",
-        "linewidth",
-        "maxallowed",
-        "minallowed",
-        "minexponent",
-        "mirror",
-        "nticks",
-        "range",
-        "rangemode",
-        "separatethousands",
-        "showaxeslabels",
-        "showbackground",
-        "showexponent",
-        "showgrid",
-        "showline",
-        "showspikes",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "spikecolor",
-        "spikesides",
-        "spikethickness",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "type",
-        "visible",
-        "zeroline",
-        "zerolinecolor",
-        "zerolinewidth",
-    }
+    _parent_path_str = 'layout.scene'
+    _path_str = 'layout.scene.yaxis'
+    _valid_props = {"autorange", "autorangeoptions", "autotypenumbers", "backgroundcolor", "calendar", "categoryarray", "categoryarraysrc", "categoryorder", "color", "dtick", "exponentformat", "gridcolor", "gridwidth", "hoverformat", "labelalias", "linecolor", "linewidth", "maxallowed", "minallowed", "minexponent", "mirror", "nticks", "range", "rangemode", "separatethousands", "showaxeslabels", "showbackground", "showexponent", "showgrid", "showline", "showspikes", "showticklabels", "showtickprefix", "showticksuffix", "spikecolor", "spikesides", "spikethickness", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "type", "visible", "zeroline", "zerolinecolor", "zerolinewidth"}
 
     @property
     def autorange(self):
@@ -95,11 +38,11 @@ def autorange(self):
         -------
         Any
         """
-        return self["autorange"]
+        return self['autorange']
 
     @autorange.setter
     def autorange(self, val):
-        self["autorange"] = val
+        self['autorange'] = val
 
     @property
     def autorangeoptions(self):
@@ -114,11 +57,11 @@ def autorangeoptions(self):
         -------
         plotly.graph_objs.layout.scene.yaxis.Autorangeoptions
         """
-        return self["autorangeoptions"]
+        return self['autorangeoptions']
 
     @autorangeoptions.setter
     def autorangeoptions(self, val):
-        self["autorangeoptions"] = val
+        self['autorangeoptions'] = val
 
     @property
     def autotypenumbers(self):
@@ -136,11 +79,11 @@ def autotypenumbers(self):
         -------
         Any
         """
-        return self["autotypenumbers"]
+        return self['autotypenumbers']
 
     @autotypenumbers.setter
     def autotypenumbers(self, val):
-        self["autotypenumbers"] = val
+        self['autotypenumbers'] = val
 
     @property
     def backgroundcolor(self):
@@ -158,11 +101,11 @@ def backgroundcolor(self):
         -------
         str
         """
-        return self["backgroundcolor"]
+        return self['backgroundcolor']
 
     @backgroundcolor.setter
     def backgroundcolor(self, val):
-        self["backgroundcolor"] = val
+        self['backgroundcolor'] = val
 
     @property
     def calendar(self):
@@ -183,11 +126,11 @@ def calendar(self):
         -------
         Any
         """
-        return self["calendar"]
+        return self['calendar']
 
     @calendar.setter
     def calendar(self, val):
-        self["calendar"] = val
+        self['calendar'] = val
 
     @property
     def categoryarray(self):
@@ -203,11 +146,11 @@ def categoryarray(self):
         -------
         numpy.ndarray
         """
-        return self["categoryarray"]
+        return self['categoryarray']
 
     @categoryarray.setter
     def categoryarray(self, val):
-        self["categoryarray"] = val
+        self['categoryarray'] = val
 
     @property
     def categoryarraysrc(self):
@@ -222,11 +165,11 @@ def categoryarraysrc(self):
         -------
         str
         """
-        return self["categoryarraysrc"]
+        return self['categoryarraysrc']
 
     @categoryarraysrc.setter
     def categoryarraysrc(self, val):
-        self["categoryarraysrc"] = val
+        self['categoryarraysrc'] = val
 
     @property
     def categoryorder(self):
@@ -261,11 +204,11 @@ def categoryorder(self):
         -------
         Any
         """
-        return self["categoryorder"]
+        return self['categoryorder']
 
     @categoryorder.setter
     def categoryorder(self, val):
-        self["categoryorder"] = val
+        self['categoryorder'] = val
 
     @property
     def color(self):
@@ -286,11 +229,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dtick(self):
@@ -322,11 +265,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -345,11 +288,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def gridcolor(self):
@@ -367,11 +310,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def gridwidth(self):
@@ -385,11 +328,11 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def hoverformat(self):
@@ -413,11 +356,11 @@ def hoverformat(self):
         -------
         str
         """
-        return self["hoverformat"]
+        return self['hoverformat']
 
     @hoverformat.setter
     def hoverformat(self, val):
-        self["hoverformat"] = val
+        self['hoverformat'] = val
 
     @property
     def labelalias(self):
@@ -438,11 +381,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def linecolor(self):
@@ -460,11 +403,11 @@ def linecolor(self):
         -------
         str
         """
-        return self["linecolor"]
+        return self['linecolor']
 
     @linecolor.setter
     def linecolor(self, val):
-        self["linecolor"] = val
+        self['linecolor'] = val
 
     @property
     def linewidth(self):
@@ -478,11 +421,11 @@ def linewidth(self):
         -------
         int|float
         """
-        return self["linewidth"]
+        return self['linewidth']
 
     @linewidth.setter
     def linewidth(self, val):
-        self["linewidth"] = val
+        self['linewidth'] = val
 
     @property
     def maxallowed(self):
@@ -495,11 +438,11 @@ def maxallowed(self):
         -------
         Any
         """
-        return self["maxallowed"]
+        return self['maxallowed']
 
     @maxallowed.setter
     def maxallowed(self, val):
-        self["maxallowed"] = val
+        self['maxallowed'] = val
 
     @property
     def minallowed(self):
@@ -512,11 +455,11 @@ def minallowed(self):
         -------
         Any
         """
-        return self["minallowed"]
+        return self['minallowed']
 
     @minallowed.setter
     def minallowed(self, val):
-        self["minallowed"] = val
+        self['minallowed'] = val
 
     @property
     def minexponent(self):
@@ -531,11 +474,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def mirror(self):
@@ -555,11 +498,11 @@ def mirror(self):
         -------
         Any
         """
-        return self["mirror"]
+        return self['mirror']
 
     @mirror.setter
     def mirror(self, val):
-        self["mirror"] = val
+        self['mirror'] = val
 
     @property
     def nticks(self):
@@ -577,41 +520,41 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def range(self):
         """
-            Sets the range of this axis. If the axis `type` is "log", then
-            you must take the log of your desired range (e.g. to set the
-            range from 1 to 100, set the range from 0 to 2). If the axis
-            `type` is "date", it should be date strings, like date data,
-            though Date objects and unix milliseconds will be accepted and
-            converted to strings. If the axis `type` is "category", it
-            should be numbers, using the scale where each category is
-            assigned a serial number from zero in the order it appears.
-            Leaving either or both elements `null` impacts the default
-            `autorange`.
-
-            The 'range' property is an info array that may be specified as:
+        Sets the range of this axis. If the axis `type` is "log", then
+        you must take the log of your desired range (e.g. to set the
+        range from 1 to 100, set the range from 0 to 2). If the axis
+        `type` is "date", it should be date strings, like date data,
+        though Date objects and unix milliseconds will be accepted and
+        converted to strings. If the axis `type` is "category", it
+        should be numbers, using the scale where each category is
+        assigned a serial number from zero in the order it appears.
+        Leaving either or both elements `null` impacts the default
+        `autorange`.
+
+        The 'range' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'range[0]' property accepts values of any type
+    (1) The 'range[1]' property accepts values of any type
 
-            * a list or tuple of 2 elements where:
-        (0) The 'range[0]' property accepts values of any type
-        (1) The 'range[1]' property accepts values of any type
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["range"]
+        return self['range']
 
     @range.setter
     def range(self, val):
-        self["range"] = val
+        self['range'] = val
 
     @property
     def rangemode(self):
@@ -630,11 +573,11 @@ def rangemode(self):
         -------
         Any
         """
-        return self["rangemode"]
+        return self['rangemode']
 
     @rangemode.setter
     def rangemode(self, val):
-        self["rangemode"] = val
+        self['rangemode'] = val
 
     @property
     def separatethousands(self):
@@ -648,11 +591,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showaxeslabels(self):
@@ -666,11 +609,11 @@ def showaxeslabels(self):
         -------
         bool
         """
-        return self["showaxeslabels"]
+        return self['showaxeslabels']
 
     @showaxeslabels.setter
     def showaxeslabels(self, val):
-        self["showaxeslabels"] = val
+        self['showaxeslabels'] = val
 
     @property
     def showbackground(self):
@@ -684,11 +627,11 @@ def showbackground(self):
         -------
         bool
         """
-        return self["showbackground"]
+        return self['showbackground']
 
     @showbackground.setter
     def showbackground(self, val):
-        self["showbackground"] = val
+        self['showbackground'] = val
 
     @property
     def showexponent(self):
@@ -706,11 +649,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showgrid(self):
@@ -725,11 +668,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def showline(self):
@@ -743,11 +686,11 @@ def showline(self):
         -------
         bool
         """
-        return self["showline"]
+        return self['showline']
 
     @showline.setter
     def showline(self, val):
-        self["showline"] = val
+        self['showline'] = val
 
     @property
     def showspikes(self):
@@ -762,11 +705,11 @@ def showspikes(self):
         -------
         bool
         """
-        return self["showspikes"]
+        return self['showspikes']
 
     @showspikes.setter
     def showspikes(self, val):
-        self["showspikes"] = val
+        self['showspikes'] = val
 
     @property
     def showticklabels(self):
@@ -780,11 +723,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -802,11 +745,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -821,11 +764,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def spikecolor(self):
@@ -843,11 +786,11 @@ def spikecolor(self):
         -------
         str
         """
-        return self["spikecolor"]
+        return self['spikecolor']
 
     @spikecolor.setter
     def spikecolor(self, val):
-        self["spikecolor"] = val
+        self['spikecolor'] = val
 
     @property
     def spikesides(self):
@@ -862,11 +805,11 @@ def spikesides(self):
         -------
         bool
         """
-        return self["spikesides"]
+        return self['spikesides']
 
     @spikesides.setter
     def spikesides(self, val):
-        self["spikesides"] = val
+        self['spikesides'] = val
 
     @property
     def spikethickness(self):
@@ -880,11 +823,11 @@ def spikethickness(self):
         -------
         int|float
         """
-        return self["spikethickness"]
+        return self['spikethickness']
 
     @spikethickness.setter
     def spikethickness(self, val):
-        self["spikethickness"] = val
+        self['spikethickness'] = val
 
     @property
     def tick0(self):
@@ -905,11 +848,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -927,11 +870,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -949,11 +892,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -970,11 +913,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.layout.scene.yaxis.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -998,11 +941,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -1017,11 +960,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.layout.scene.yaxis.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -1041,11 +984,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.layout.scene.yaxis.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklen(self):
@@ -1059,11 +1002,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -1084,11 +1027,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -1103,11 +1046,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -1124,11 +1067,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -1143,11 +1086,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -1163,11 +1106,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -1181,11 +1124,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -1200,11 +1143,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -1218,11 +1161,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -1236,11 +1179,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -1255,11 +1198,11 @@ def title(self):
         -------
         plotly.graph_objs.layout.scene.yaxis.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def type(self):
@@ -1276,11 +1219,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def visible(self):
@@ -1296,11 +1239,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def zeroline(self):
@@ -1316,11 +1259,11 @@ def zeroline(self):
         -------
         bool
         """
-        return self["zeroline"]
+        return self['zeroline']
 
     @zeroline.setter
     def zeroline(self, val):
-        self["zeroline"] = val
+        self['zeroline'] = val
 
     @property
     def zerolinecolor(self):
@@ -1338,11 +1281,11 @@ def zerolinecolor(self):
         -------
         str
         """
-        return self["zerolinecolor"]
+        return self['zerolinecolor']
 
     @zerolinecolor.setter
     def zerolinecolor(self, val):
-        self["zerolinecolor"] = val
+        self['zerolinecolor'] = val
 
     @property
     def zerolinewidth(self):
@@ -1356,11 +1299,11 @@ def zerolinewidth(self):
         -------
         int|float
         """
-        return self["zerolinewidth"]
+        return self['zerolinewidth']
 
     @zerolinewidth.setter
     def zerolinewidth(self, val):
-        self["zerolinewidth"] = val
+        self['zerolinewidth'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1657,72 +1600,70 @@ def _prop_descriptions(self):
         zerolinewidth
             Sets the width (in px) of the zero line.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autorange=None,
-        autorangeoptions=None,
-        autotypenumbers=None,
-        backgroundcolor=None,
-        calendar=None,
-        categoryarray=None,
-        categoryarraysrc=None,
-        categoryorder=None,
-        color=None,
-        dtick=None,
-        exponentformat=None,
-        gridcolor=None,
-        gridwidth=None,
-        hoverformat=None,
-        labelalias=None,
-        linecolor=None,
-        linewidth=None,
-        maxallowed=None,
-        minallowed=None,
-        minexponent=None,
-        mirror=None,
-        nticks=None,
-        range=None,
-        rangemode=None,
-        separatethousands=None,
-        showaxeslabels=None,
-        showbackground=None,
-        showexponent=None,
-        showgrid=None,
-        showline=None,
-        showspikes=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        spikecolor=None,
-        spikesides=None,
-        spikethickness=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        type=None,
-        visible=None,
-        zeroline=None,
-        zerolinecolor=None,
-        zerolinewidth=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autorange=None,
+            autorangeoptions=None,
+            autotypenumbers=None,
+            backgroundcolor=None,
+            calendar=None,
+            categoryarray=None,
+            categoryarraysrc=None,
+            categoryorder=None,
+            color=None,
+            dtick=None,
+            exponentformat=None,
+            gridcolor=None,
+            gridwidth=None,
+            hoverformat=None,
+            labelalias=None,
+            linecolor=None,
+            linewidth=None,
+            maxallowed=None,
+            minallowed=None,
+            minexponent=None,
+            mirror=None,
+            nticks=None,
+            range=None,
+            rangemode=None,
+            separatethousands=None,
+            showaxeslabels=None,
+            showbackground=None,
+            showexponent=None,
+            showgrid=None,
+            showline=None,
+            showspikes=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            spikecolor=None,
+            spikesides=None,
+            spikethickness=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            type=None,
+            visible=None,
+            zeroline=None,
+            zerolinecolor=None,
+            zerolinewidth=None,
+            **kwargs
+        ):
         """
         Construct a new YAxis object
 
@@ -2028,9 +1969,9 @@ def __init__(
         -------
         YAxis
         """
-        super().__init__("yaxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('yaxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2040,75 +1981,75 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.YAxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.YAxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autorange", arg, autorange)
-        self._set_property("autorangeoptions", arg, autorangeoptions)
-        self._set_property("autotypenumbers", arg, autotypenumbers)
-        self._set_property("backgroundcolor", arg, backgroundcolor)
-        self._set_property("calendar", arg, calendar)
-        self._set_property("categoryarray", arg, categoryarray)
-        self._set_property("categoryarraysrc", arg, categoryarraysrc)
-        self._set_property("categoryorder", arg, categoryorder)
-        self._set_property("color", arg, color)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("hoverformat", arg, hoverformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("linecolor", arg, linecolor)
-        self._set_property("linewidth", arg, linewidth)
-        self._set_property("maxallowed", arg, maxallowed)
-        self._set_property("minallowed", arg, minallowed)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("mirror", arg, mirror)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("range", arg, range)
-        self._set_property("rangemode", arg, rangemode)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showaxeslabels", arg, showaxeslabels)
-        self._set_property("showbackground", arg, showbackground)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("showline", arg, showline)
-        self._set_property("showspikes", arg, showspikes)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("spikecolor", arg, spikecolor)
-        self._set_property("spikesides", arg, spikesides)
-        self._set_property("spikethickness", arg, spikethickness)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("type", arg, type)
-        self._set_property("visible", arg, visible)
-        self._set_property("zeroline", arg, zeroline)
-        self._set_property("zerolinecolor", arg, zerolinecolor)
-        self._set_property("zerolinewidth", arg, zerolinewidth)
+an instance of :class:`plotly.graph_objs.layout.scene.YAxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autorange', arg, autorange)
+        self._set_property('autorangeoptions', arg, autorangeoptions)
+        self._set_property('autotypenumbers', arg, autotypenumbers)
+        self._set_property('backgroundcolor', arg, backgroundcolor)
+        self._set_property('calendar', arg, calendar)
+        self._set_property('categoryarray', arg, categoryarray)
+        self._set_property('categoryarraysrc', arg, categoryarraysrc)
+        self._set_property('categoryorder', arg, categoryorder)
+        self._set_property('color', arg, color)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('hoverformat', arg, hoverformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('linecolor', arg, linecolor)
+        self._set_property('linewidth', arg, linewidth)
+        self._set_property('maxallowed', arg, maxallowed)
+        self._set_property('minallowed', arg, minallowed)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('mirror', arg, mirror)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('range', arg, range)
+        self._set_property('rangemode', arg, rangemode)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showaxeslabels', arg, showaxeslabels)
+        self._set_property('showbackground', arg, showbackground)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('showline', arg, showline)
+        self._set_property('showspikes', arg, showspikes)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('spikecolor', arg, spikecolor)
+        self._set_property('spikesides', arg, spikesides)
+        self._set_property('spikethickness', arg, spikethickness)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('type', arg, type)
+        self._set_property('visible', arg, visible)
+        self._set_property('zeroline', arg, zeroline)
+        self._set_property('zerolinecolor', arg, zerolinecolor)
+        self._set_property('zerolinewidth', arg, zerolinewidth)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/_zaxis.py b/plotly/graph_objs/layout/scene/_zaxis.py
index 28d334e88be..6729231c653 100644
--- a/plotly/graph_objs/layout/scene/_zaxis.py
+++ b/plotly/graph_objs/layout/scene/_zaxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,70 +11,9 @@
 
 class ZAxis(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene"
-    _path_str = "layout.scene.zaxis"
-    _valid_props = {
-        "autorange",
-        "autorangeoptions",
-        "autotypenumbers",
-        "backgroundcolor",
-        "calendar",
-        "categoryarray",
-        "categoryarraysrc",
-        "categoryorder",
-        "color",
-        "dtick",
-        "exponentformat",
-        "gridcolor",
-        "gridwidth",
-        "hoverformat",
-        "labelalias",
-        "linecolor",
-        "linewidth",
-        "maxallowed",
-        "minallowed",
-        "minexponent",
-        "mirror",
-        "nticks",
-        "range",
-        "rangemode",
-        "separatethousands",
-        "showaxeslabels",
-        "showbackground",
-        "showexponent",
-        "showgrid",
-        "showline",
-        "showspikes",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "spikecolor",
-        "spikesides",
-        "spikethickness",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "type",
-        "visible",
-        "zeroline",
-        "zerolinecolor",
-        "zerolinewidth",
-    }
+    _parent_path_str = 'layout.scene'
+    _path_str = 'layout.scene.zaxis'
+    _valid_props = {"autorange", "autorangeoptions", "autotypenumbers", "backgroundcolor", "calendar", "categoryarray", "categoryarraysrc", "categoryorder", "color", "dtick", "exponentformat", "gridcolor", "gridwidth", "hoverformat", "labelalias", "linecolor", "linewidth", "maxallowed", "minallowed", "minexponent", "mirror", "nticks", "range", "rangemode", "separatethousands", "showaxeslabels", "showbackground", "showexponent", "showgrid", "showline", "showspikes", "showticklabels", "showtickprefix", "showticksuffix", "spikecolor", "spikesides", "spikethickness", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "type", "visible", "zeroline", "zerolinecolor", "zerolinewidth"}
 
     @property
     def autorange(self):
@@ -95,11 +38,11 @@ def autorange(self):
         -------
         Any
         """
-        return self["autorange"]
+        return self['autorange']
 
     @autorange.setter
     def autorange(self, val):
-        self["autorange"] = val
+        self['autorange'] = val
 
     @property
     def autorangeoptions(self):
@@ -114,11 +57,11 @@ def autorangeoptions(self):
         -------
         plotly.graph_objs.layout.scene.zaxis.Autorangeoptions
         """
-        return self["autorangeoptions"]
+        return self['autorangeoptions']
 
     @autorangeoptions.setter
     def autorangeoptions(self, val):
-        self["autorangeoptions"] = val
+        self['autorangeoptions'] = val
 
     @property
     def autotypenumbers(self):
@@ -136,11 +79,11 @@ def autotypenumbers(self):
         -------
         Any
         """
-        return self["autotypenumbers"]
+        return self['autotypenumbers']
 
     @autotypenumbers.setter
     def autotypenumbers(self, val):
-        self["autotypenumbers"] = val
+        self['autotypenumbers'] = val
 
     @property
     def backgroundcolor(self):
@@ -158,11 +101,11 @@ def backgroundcolor(self):
         -------
         str
         """
-        return self["backgroundcolor"]
+        return self['backgroundcolor']
 
     @backgroundcolor.setter
     def backgroundcolor(self, val):
-        self["backgroundcolor"] = val
+        self['backgroundcolor'] = val
 
     @property
     def calendar(self):
@@ -183,11 +126,11 @@ def calendar(self):
         -------
         Any
         """
-        return self["calendar"]
+        return self['calendar']
 
     @calendar.setter
     def calendar(self, val):
-        self["calendar"] = val
+        self['calendar'] = val
 
     @property
     def categoryarray(self):
@@ -203,11 +146,11 @@ def categoryarray(self):
         -------
         numpy.ndarray
         """
-        return self["categoryarray"]
+        return self['categoryarray']
 
     @categoryarray.setter
     def categoryarray(self, val):
-        self["categoryarray"] = val
+        self['categoryarray'] = val
 
     @property
     def categoryarraysrc(self):
@@ -222,11 +165,11 @@ def categoryarraysrc(self):
         -------
         str
         """
-        return self["categoryarraysrc"]
+        return self['categoryarraysrc']
 
     @categoryarraysrc.setter
     def categoryarraysrc(self, val):
-        self["categoryarraysrc"] = val
+        self['categoryarraysrc'] = val
 
     @property
     def categoryorder(self):
@@ -261,11 +204,11 @@ def categoryorder(self):
         -------
         Any
         """
-        return self["categoryorder"]
+        return self['categoryorder']
 
     @categoryorder.setter
     def categoryorder(self, val):
-        self["categoryorder"] = val
+        self['categoryorder'] = val
 
     @property
     def color(self):
@@ -286,11 +229,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dtick(self):
@@ -322,11 +265,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -345,11 +288,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def gridcolor(self):
@@ -367,11 +310,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def gridwidth(self):
@@ -385,11 +328,11 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def hoverformat(self):
@@ -413,11 +356,11 @@ def hoverformat(self):
         -------
         str
         """
-        return self["hoverformat"]
+        return self['hoverformat']
 
     @hoverformat.setter
     def hoverformat(self, val):
-        self["hoverformat"] = val
+        self['hoverformat'] = val
 
     @property
     def labelalias(self):
@@ -438,11 +381,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def linecolor(self):
@@ -460,11 +403,11 @@ def linecolor(self):
         -------
         str
         """
-        return self["linecolor"]
+        return self['linecolor']
 
     @linecolor.setter
     def linecolor(self, val):
-        self["linecolor"] = val
+        self['linecolor'] = val
 
     @property
     def linewidth(self):
@@ -478,11 +421,11 @@ def linewidth(self):
         -------
         int|float
         """
-        return self["linewidth"]
+        return self['linewidth']
 
     @linewidth.setter
     def linewidth(self, val):
-        self["linewidth"] = val
+        self['linewidth'] = val
 
     @property
     def maxallowed(self):
@@ -495,11 +438,11 @@ def maxallowed(self):
         -------
         Any
         """
-        return self["maxallowed"]
+        return self['maxallowed']
 
     @maxallowed.setter
     def maxallowed(self, val):
-        self["maxallowed"] = val
+        self['maxallowed'] = val
 
     @property
     def minallowed(self):
@@ -512,11 +455,11 @@ def minallowed(self):
         -------
         Any
         """
-        return self["minallowed"]
+        return self['minallowed']
 
     @minallowed.setter
     def minallowed(self, val):
-        self["minallowed"] = val
+        self['minallowed'] = val
 
     @property
     def minexponent(self):
@@ -531,11 +474,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def mirror(self):
@@ -555,11 +498,11 @@ def mirror(self):
         -------
         Any
         """
-        return self["mirror"]
+        return self['mirror']
 
     @mirror.setter
     def mirror(self, val):
-        self["mirror"] = val
+        self['mirror'] = val
 
     @property
     def nticks(self):
@@ -577,41 +520,41 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def range(self):
         """
-            Sets the range of this axis. If the axis `type` is "log", then
-            you must take the log of your desired range (e.g. to set the
-            range from 1 to 100, set the range from 0 to 2). If the axis
-            `type` is "date", it should be date strings, like date data,
-            though Date objects and unix milliseconds will be accepted and
-            converted to strings. If the axis `type` is "category", it
-            should be numbers, using the scale where each category is
-            assigned a serial number from zero in the order it appears.
-            Leaving either or both elements `null` impacts the default
-            `autorange`.
-
-            The 'range' property is an info array that may be specified as:
+        Sets the range of this axis. If the axis `type` is "log", then
+        you must take the log of your desired range (e.g. to set the
+        range from 1 to 100, set the range from 0 to 2). If the axis
+        `type` is "date", it should be date strings, like date data,
+        though Date objects and unix milliseconds will be accepted and
+        converted to strings. If the axis `type` is "category", it
+        should be numbers, using the scale where each category is
+        assigned a serial number from zero in the order it appears.
+        Leaving either or both elements `null` impacts the default
+        `autorange`.
+
+        The 'range' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'range[0]' property accepts values of any type
+    (1) The 'range[1]' property accepts values of any type
 
-            * a list or tuple of 2 elements where:
-        (0) The 'range[0]' property accepts values of any type
-        (1) The 'range[1]' property accepts values of any type
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["range"]
+        return self['range']
 
     @range.setter
     def range(self, val):
-        self["range"] = val
+        self['range'] = val
 
     @property
     def rangemode(self):
@@ -630,11 +573,11 @@ def rangemode(self):
         -------
         Any
         """
-        return self["rangemode"]
+        return self['rangemode']
 
     @rangemode.setter
     def rangemode(self, val):
-        self["rangemode"] = val
+        self['rangemode'] = val
 
     @property
     def separatethousands(self):
@@ -648,11 +591,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showaxeslabels(self):
@@ -666,11 +609,11 @@ def showaxeslabels(self):
         -------
         bool
         """
-        return self["showaxeslabels"]
+        return self['showaxeslabels']
 
     @showaxeslabels.setter
     def showaxeslabels(self, val):
-        self["showaxeslabels"] = val
+        self['showaxeslabels'] = val
 
     @property
     def showbackground(self):
@@ -684,11 +627,11 @@ def showbackground(self):
         -------
         bool
         """
-        return self["showbackground"]
+        return self['showbackground']
 
     @showbackground.setter
     def showbackground(self, val):
-        self["showbackground"] = val
+        self['showbackground'] = val
 
     @property
     def showexponent(self):
@@ -706,11 +649,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showgrid(self):
@@ -725,11 +668,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def showline(self):
@@ -743,11 +686,11 @@ def showline(self):
         -------
         bool
         """
-        return self["showline"]
+        return self['showline']
 
     @showline.setter
     def showline(self, val):
-        self["showline"] = val
+        self['showline'] = val
 
     @property
     def showspikes(self):
@@ -762,11 +705,11 @@ def showspikes(self):
         -------
         bool
         """
-        return self["showspikes"]
+        return self['showspikes']
 
     @showspikes.setter
     def showspikes(self, val):
-        self["showspikes"] = val
+        self['showspikes'] = val
 
     @property
     def showticklabels(self):
@@ -780,11 +723,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -802,11 +745,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -821,11 +764,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def spikecolor(self):
@@ -843,11 +786,11 @@ def spikecolor(self):
         -------
         str
         """
-        return self["spikecolor"]
+        return self['spikecolor']
 
     @spikecolor.setter
     def spikecolor(self, val):
-        self["spikecolor"] = val
+        self['spikecolor'] = val
 
     @property
     def spikesides(self):
@@ -862,11 +805,11 @@ def spikesides(self):
         -------
         bool
         """
-        return self["spikesides"]
+        return self['spikesides']
 
     @spikesides.setter
     def spikesides(self, val):
-        self["spikesides"] = val
+        self['spikesides'] = val
 
     @property
     def spikethickness(self):
@@ -880,11 +823,11 @@ def spikethickness(self):
         -------
         int|float
         """
-        return self["spikethickness"]
+        return self['spikethickness']
 
     @spikethickness.setter
     def spikethickness(self, val):
-        self["spikethickness"] = val
+        self['spikethickness'] = val
 
     @property
     def tick0(self):
@@ -905,11 +848,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -927,11 +870,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -949,11 +892,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -970,11 +913,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.layout.scene.zaxis.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -998,11 +941,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -1017,11 +960,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.layout.scene.zaxis.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -1041,11 +984,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.layout.scene.zaxis.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklen(self):
@@ -1059,11 +1002,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -1084,11 +1027,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -1103,11 +1046,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -1124,11 +1067,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -1143,11 +1086,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -1163,11 +1106,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -1181,11 +1124,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -1200,11 +1143,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -1218,11 +1161,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -1236,11 +1179,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -1255,11 +1198,11 @@ def title(self):
         -------
         plotly.graph_objs.layout.scene.zaxis.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def type(self):
@@ -1276,11 +1219,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def visible(self):
@@ -1296,11 +1239,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def zeroline(self):
@@ -1316,11 +1259,11 @@ def zeroline(self):
         -------
         bool
         """
-        return self["zeroline"]
+        return self['zeroline']
 
     @zeroline.setter
     def zeroline(self, val):
-        self["zeroline"] = val
+        self['zeroline'] = val
 
     @property
     def zerolinecolor(self):
@@ -1338,11 +1281,11 @@ def zerolinecolor(self):
         -------
         str
         """
-        return self["zerolinecolor"]
+        return self['zerolinecolor']
 
     @zerolinecolor.setter
     def zerolinecolor(self, val):
-        self["zerolinecolor"] = val
+        self['zerolinecolor'] = val
 
     @property
     def zerolinewidth(self):
@@ -1356,11 +1299,11 @@ def zerolinewidth(self):
         -------
         int|float
         """
-        return self["zerolinewidth"]
+        return self['zerolinewidth']
 
     @zerolinewidth.setter
     def zerolinewidth(self, val):
-        self["zerolinewidth"] = val
+        self['zerolinewidth'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1657,72 +1600,70 @@ def _prop_descriptions(self):
         zerolinewidth
             Sets the width (in px) of the zero line.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autorange=None,
-        autorangeoptions=None,
-        autotypenumbers=None,
-        backgroundcolor=None,
-        calendar=None,
-        categoryarray=None,
-        categoryarraysrc=None,
-        categoryorder=None,
-        color=None,
-        dtick=None,
-        exponentformat=None,
-        gridcolor=None,
-        gridwidth=None,
-        hoverformat=None,
-        labelalias=None,
-        linecolor=None,
-        linewidth=None,
-        maxallowed=None,
-        minallowed=None,
-        minexponent=None,
-        mirror=None,
-        nticks=None,
-        range=None,
-        rangemode=None,
-        separatethousands=None,
-        showaxeslabels=None,
-        showbackground=None,
-        showexponent=None,
-        showgrid=None,
-        showline=None,
-        showspikes=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        spikecolor=None,
-        spikesides=None,
-        spikethickness=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        type=None,
-        visible=None,
-        zeroline=None,
-        zerolinecolor=None,
-        zerolinewidth=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autorange=None,
+            autorangeoptions=None,
+            autotypenumbers=None,
+            backgroundcolor=None,
+            calendar=None,
+            categoryarray=None,
+            categoryarraysrc=None,
+            categoryorder=None,
+            color=None,
+            dtick=None,
+            exponentformat=None,
+            gridcolor=None,
+            gridwidth=None,
+            hoverformat=None,
+            labelalias=None,
+            linecolor=None,
+            linewidth=None,
+            maxallowed=None,
+            minallowed=None,
+            minexponent=None,
+            mirror=None,
+            nticks=None,
+            range=None,
+            rangemode=None,
+            separatethousands=None,
+            showaxeslabels=None,
+            showbackground=None,
+            showexponent=None,
+            showgrid=None,
+            showline=None,
+            showspikes=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            spikecolor=None,
+            spikesides=None,
+            spikethickness=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            type=None,
+            visible=None,
+            zeroline=None,
+            zerolinecolor=None,
+            zerolinewidth=None,
+            **kwargs
+        ):
         """
         Construct a new ZAxis object
 
@@ -2028,9 +1969,9 @@ def __init__(
         -------
         ZAxis
         """
-        super().__init__("zaxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('zaxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -2040,75 +1981,75 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.ZAxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.ZAxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autorange", arg, autorange)
-        self._set_property("autorangeoptions", arg, autorangeoptions)
-        self._set_property("autotypenumbers", arg, autotypenumbers)
-        self._set_property("backgroundcolor", arg, backgroundcolor)
-        self._set_property("calendar", arg, calendar)
-        self._set_property("categoryarray", arg, categoryarray)
-        self._set_property("categoryarraysrc", arg, categoryarraysrc)
-        self._set_property("categoryorder", arg, categoryorder)
-        self._set_property("color", arg, color)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("hoverformat", arg, hoverformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("linecolor", arg, linecolor)
-        self._set_property("linewidth", arg, linewidth)
-        self._set_property("maxallowed", arg, maxallowed)
-        self._set_property("minallowed", arg, minallowed)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("mirror", arg, mirror)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("range", arg, range)
-        self._set_property("rangemode", arg, rangemode)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showaxeslabels", arg, showaxeslabels)
-        self._set_property("showbackground", arg, showbackground)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("showline", arg, showline)
-        self._set_property("showspikes", arg, showspikes)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("spikecolor", arg, spikecolor)
-        self._set_property("spikesides", arg, spikesides)
-        self._set_property("spikethickness", arg, spikethickness)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("type", arg, type)
-        self._set_property("visible", arg, visible)
-        self._set_property("zeroline", arg, zeroline)
-        self._set_property("zerolinecolor", arg, zerolinecolor)
-        self._set_property("zerolinewidth", arg, zerolinewidth)
+an instance of :class:`plotly.graph_objs.layout.scene.ZAxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autorange', arg, autorange)
+        self._set_property('autorangeoptions', arg, autorangeoptions)
+        self._set_property('autotypenumbers', arg, autotypenumbers)
+        self._set_property('backgroundcolor', arg, backgroundcolor)
+        self._set_property('calendar', arg, calendar)
+        self._set_property('categoryarray', arg, categoryarray)
+        self._set_property('categoryarraysrc', arg, categoryarraysrc)
+        self._set_property('categoryorder', arg, categoryorder)
+        self._set_property('color', arg, color)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('hoverformat', arg, hoverformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('linecolor', arg, linecolor)
+        self._set_property('linewidth', arg, linewidth)
+        self._set_property('maxallowed', arg, maxallowed)
+        self._set_property('minallowed', arg, minallowed)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('mirror', arg, mirror)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('range', arg, range)
+        self._set_property('rangemode', arg, rangemode)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showaxeslabels', arg, showaxeslabels)
+        self._set_property('showbackground', arg, showbackground)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('showline', arg, showline)
+        self._set_property('showspikes', arg, showspikes)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('spikecolor', arg, spikecolor)
+        self._set_property('spikesides', arg, spikesides)
+        self._set_property('spikethickness', arg, spikethickness)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('type', arg, type)
+        self._set_property('visible', arg, visible)
+        self._set_property('zeroline', arg, zeroline)
+        self._set_property('zerolinecolor', arg, zerolinecolor)
+        self._set_property('zerolinewidth', arg, zerolinewidth)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/annotation/__init__.py b/plotly/graph_objs/layout/scene/annotation/__init__.py
index a9cb1938bc8..a10fc8d3857 100644
--- a/plotly/graph_objs/layout/scene/annotation/__init__.py
+++ b/plotly/graph_objs/layout/scene/annotation/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+    from ._hoverlabel import Hoverlabel
+    from . import hoverlabel
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel'],
+        ['._font.Font', '._hoverlabel.Hoverlabel']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".hoverlabel"], ["._font.Font", "._hoverlabel.Hoverlabel"]
-)
diff --git a/plotly/graph_objs/layout/scene/annotation/_font.py b/plotly/graph_objs/layout/scene/annotation/_font.py
index 5b7bf8d7eb6..90bde2ae6a9 100644
--- a/plotly/graph_objs/layout/scene/annotation/_font.py
+++ b/plotly/graph_objs/layout/scene/annotation/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.annotation"
-    _path_str = "layout.scene.annotation.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.scene.annotation'
+    _path_str = 'layout.scene.annotation.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.annotation.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.annotation.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.scene.annotation.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/annotation/_hoverlabel.py b/plotly/graph_objs/layout/scene/annotation/_hoverlabel.py
index f5a09cbb3c7..a03d8071def 100644
--- a/plotly/graph_objs/layout/scene/annotation/_hoverlabel.py
+++ b/plotly/graph_objs/layout/scene/annotation/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Hoverlabel(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.annotation"
-    _path_str = "layout.scene.annotation.hoverlabel"
+    _parent_path_str = 'layout.scene.annotation'
+    _path_str = 'layout.scene.annotation.hoverlabel'
     _valid_props = {"bgcolor", "bordercolor", "font"}
 
     @property
@@ -29,11 +33,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -53,11 +57,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def font(self):
@@ -75,11 +79,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.scene.annotation.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def _prop_descriptions(self):
@@ -97,8 +101,13 @@ def _prop_descriptions(self):
             global hover font and size, with color from
             `hoverlabel.bordercolor`.
         """
-
-    def __init__(self, arg=None, bgcolor=None, bordercolor=None, font=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            font=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -125,9 +134,9 @@ def __init__(self, arg=None, bgcolor=None, bordercolor=None, font=None, **kwargs
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -137,18 +146,18 @@ def __init__(self, arg=None, bgcolor=None, bordercolor=None, font=None, **kwargs
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.annotation.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.annotation.Hoverlabel`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.scene.annotation.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("font", arg, font)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('font', arg, font)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/annotation/hoverlabel/__init__.py b/plotly/graph_objs/layout/scene/annotation/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/scene/annotation/hoverlabel/__init__.py
+++ b/plotly/graph_objs/layout/scene/annotation/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/scene/annotation/hoverlabel/_font.py b/plotly/graph_objs/layout/scene/annotation/hoverlabel/_font.py
index 2a31b18fbef..834c7a0e2e7 100644
--- a/plotly/graph_objs/layout/scene/annotation/hoverlabel/_font.py
+++ b/plotly/graph_objs/layout/scene/annotation/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.annotation.hoverlabel"
-    _path_str = "layout.scene.annotation.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.scene.annotation.hoverlabel'
+    _path_str = 'layout.scene.annotation.hoverlabel.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -303,9 +295,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -315,24 +307,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.annotation.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.annotation.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.scene.annotation.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/camera/__init__.py b/plotly/graph_objs/layout/scene/camera/__init__.py
index ddffeb54e42..165cf423251 100644
--- a/plotly/graph_objs/layout/scene/camera/__init__.py
+++ b/plotly/graph_objs/layout/scene/camera/__init__.py
@@ -1,6 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._center import Center
+    from ._eye import Eye
+    from ._projection import Projection
+    from ._up import Up
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._center.Center', '._eye.Eye', '._projection.Projection', '._up.Up']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._center.Center", "._eye.Eye", "._projection.Projection", "._up.Up"]
-)
diff --git a/plotly/graph_objs/layout/scene/camera/_center.py b/plotly/graph_objs/layout/scene/camera/_center.py
index 9f5ca655ebc..74ca2e7ac1c 100644
--- a/plotly/graph_objs/layout/scene/camera/_center.py
+++ b/plotly/graph_objs/layout/scene/camera/_center.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Center(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.camera"
-    _path_str = "layout.scene.camera.center"
+    _parent_path_str = 'layout.scene.camera'
+    _path_str = 'layout.scene.camera.center'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -21,11 +25,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -37,11 +41,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -53,11 +57,11 @@ def z(self):
         -------
         int|float
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -69,8 +73,13 @@ def _prop_descriptions(self):
         z
 
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Center object
 
@@ -95,9 +104,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Center
         """
-        super().__init__("center")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('center')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -107,18 +116,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.camera.Center
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.camera.Center`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.scene.camera.Center`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/camera/_eye.py b/plotly/graph_objs/layout/scene/camera/_eye.py
index 08c108629b3..a5ca8fa67cc 100644
--- a/plotly/graph_objs/layout/scene/camera/_eye.py
+++ b/plotly/graph_objs/layout/scene/camera/_eye.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Eye(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.camera"
-    _path_str = "layout.scene.camera.eye"
+    _parent_path_str = 'layout.scene.camera'
+    _path_str = 'layout.scene.camera.eye'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -21,11 +25,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -37,11 +41,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -53,11 +57,11 @@ def z(self):
         -------
         int|float
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -69,8 +73,13 @@ def _prop_descriptions(self):
         z
 
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Eye object
 
@@ -95,9 +104,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Eye
         """
-        super().__init__("eye")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('eye')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -107,18 +116,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.camera.Eye
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.camera.Eye`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.scene.camera.Eye`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/camera/_projection.py b/plotly/graph_objs/layout/scene/camera/_projection.py
index db376ad9f8b..c52785489b1 100644
--- a/plotly/graph_objs/layout/scene/camera/_projection.py
+++ b/plotly/graph_objs/layout/scene/camera/_projection.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Projection(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.camera"
-    _path_str = "layout.scene.camera.projection"
+    _parent_path_str = 'layout.scene.camera'
+    _path_str = 'layout.scene.camera.projection'
     _valid_props = {"type"}
 
     @property
@@ -25,11 +29,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def _prop_descriptions(self):
@@ -39,8 +43,11 @@ def _prop_descriptions(self):
             either "perspective" or "orthographic". The default is
             "perspective".
         """
-
-    def __init__(self, arg=None, type=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            type=None,
+            **kwargs
+        ):
         """
         Construct a new Projection object
 
@@ -59,9 +66,9 @@ def __init__(self, arg=None, type=None, **kwargs):
         -------
         Projection
         """
-        super().__init__("projection")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('projection')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -71,16 +78,16 @@ def __init__(self, arg=None, type=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.camera.Projection
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.camera.Projection`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.scene.camera.Projection`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("type", arg, type)
+        self._set_property('type', arg, type)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/camera/_up.py b/plotly/graph_objs/layout/scene/camera/_up.py
index 0ea56815c78..a0a8e3f45e7 100644
--- a/plotly/graph_objs/layout/scene/camera/_up.py
+++ b/plotly/graph_objs/layout/scene/camera/_up.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Up(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.camera"
-    _path_str = "layout.scene.camera.up"
+    _parent_path_str = 'layout.scene.camera'
+    _path_str = 'layout.scene.camera.up'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -21,11 +25,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -37,11 +41,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -53,11 +57,11 @@ def z(self):
         -------
         int|float
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -69,8 +73,13 @@ def _prop_descriptions(self):
         z
 
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Up object
 
@@ -96,9 +105,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Up
         """
-        super().__init__("up")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('up')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -108,18 +117,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.camera.Up
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.camera.Up`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.scene.camera.Up`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/xaxis/__init__.py b/plotly/graph_objs/layout/scene/xaxis/__init__.py
index 72774d8afaa..9608419f0db 100644
--- a/plotly/graph_objs/layout/scene/xaxis/__init__.py
+++ b/plotly/graph_objs/layout/scene/xaxis/__init__.py
@@ -1,13 +1,17 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._autorangeoptions import Autorangeoptions
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._autorangeoptions.Autorangeoptions', '._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    [
-        "._autorangeoptions.Autorangeoptions",
-        "._tickfont.Tickfont",
-        "._tickformatstop.Tickformatstop",
-        "._title.Title",
-    ],
-)
diff --git a/plotly/graph_objs/layout/scene/xaxis/_autorangeoptions.py b/plotly/graph_objs/layout/scene/xaxis/_autorangeoptions.py
index e97114801e7..e921e6c390d 100644
--- a/plotly/graph_objs/layout/scene/xaxis/_autorangeoptions.py
+++ b/plotly/graph_objs/layout/scene/xaxis/_autorangeoptions.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,16 +11,9 @@
 
 class Autorangeoptions(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.xaxis"
-    _path_str = "layout.scene.xaxis.autorangeoptions"
-    _valid_props = {
-        "clipmax",
-        "clipmin",
-        "include",
-        "includesrc",
-        "maxallowed",
-        "minallowed",
-    }
+    _parent_path_str = 'layout.scene.xaxis'
+    _path_str = 'layout.scene.xaxis.autorangeoptions'
+    _valid_props = {"clipmax", "clipmin", "include", "includesrc", "maxallowed", "minallowed"}
 
     @property
     def clipmax(self):
@@ -30,11 +27,11 @@ def clipmax(self):
         -------
         Any
         """
-        return self["clipmax"]
+        return self['clipmax']
 
     @clipmax.setter
     def clipmax(self, val):
-        self["clipmax"] = val
+        self['clipmax'] = val
 
     @property
     def clipmin(self):
@@ -48,11 +45,11 @@ def clipmin(self):
         -------
         Any
         """
-        return self["clipmin"]
+        return self['clipmin']
 
     @clipmin.setter
     def clipmin(self, val):
-        self["clipmin"] = val
+        self['clipmin'] = val
 
     @property
     def include(self):
@@ -65,11 +62,11 @@ def include(self):
         -------
         Any|numpy.ndarray
         """
-        return self["include"]
+        return self['include']
 
     @include.setter
     def include(self, val):
-        self["include"] = val
+        self['include'] = val
 
     @property
     def includesrc(self):
@@ -83,11 +80,11 @@ def includesrc(self):
         -------
         str
         """
-        return self["includesrc"]
+        return self['includesrc']
 
     @includesrc.setter
     def includesrc(self, val):
-        self["includesrc"] = val
+        self['includesrc'] = val
 
     @property
     def maxallowed(self):
@@ -100,11 +97,11 @@ def maxallowed(self):
         -------
         Any
         """
-        return self["maxallowed"]
+        return self['maxallowed']
 
     @maxallowed.setter
     def maxallowed(self, val):
-        self["maxallowed"] = val
+        self['maxallowed'] = val
 
     @property
     def minallowed(self):
@@ -117,11 +114,11 @@ def minallowed(self):
         -------
         Any
         """
-        return self["minallowed"]
+        return self['minallowed']
 
     @minallowed.setter
     def minallowed(self, val):
-        self["minallowed"] = val
+        self['minallowed'] = val
 
     @property
     def _prop_descriptions(self):
@@ -144,18 +141,16 @@ def _prop_descriptions(self):
         minallowed
             Use this value exactly as autorange minimum.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        clipmax=None,
-        clipmin=None,
-        include=None,
-        includesrc=None,
-        maxallowed=None,
-        minallowed=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            clipmax=None,
+            clipmin=None,
+            include=None,
+            includesrc=None,
+            maxallowed=None,
+            minallowed=None,
+            **kwargs
+        ):
         """
         Construct a new Autorangeoptions object
 
@@ -187,9 +182,9 @@ def __init__(
         -------
         Autorangeoptions
         """
-        super().__init__("autorangeoptions")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('autorangeoptions')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -199,21 +194,21 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.xaxis.Autorangeoptions
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.xaxis.Autorangeoptions`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("clipmax", arg, clipmax)
-        self._set_property("clipmin", arg, clipmin)
-        self._set_property("include", arg, include)
-        self._set_property("includesrc", arg, includesrc)
-        self._set_property("maxallowed", arg, maxallowed)
-        self._set_property("minallowed", arg, minallowed)
+an instance of :class:`plotly.graph_objs.layout.scene.xaxis.Autorangeoptions`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('clipmax', arg, clipmax)
+        self._set_property('clipmin', arg, clipmin)
+        self._set_property('include', arg, include)
+        self._set_property('includesrc', arg, includesrc)
+        self._set_property('maxallowed', arg, maxallowed)
+        self._set_property('minallowed', arg, minallowed)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/xaxis/_tickfont.py b/plotly/graph_objs/layout/scene/xaxis/_tickfont.py
index 9e18542e747..aec954ebf69 100644
--- a/plotly/graph_objs/layout/scene/xaxis/_tickfont.py
+++ b/plotly/graph_objs/layout/scene/xaxis/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.xaxis"
-    _path_str = "layout.scene.xaxis.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.scene.xaxis'
+    _path_str = 'layout.scene.xaxis.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.xaxis.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.xaxis.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.scene.xaxis.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/xaxis/_tickformatstop.py b/plotly/graph_objs/layout/scene/xaxis/_tickformatstop.py
index b618d31c32b..b6b9a8c88ee 100644
--- a/plotly/graph_objs/layout/scene/xaxis/_tickformatstop.py
+++ b/plotly/graph_objs/layout/scene/xaxis/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.xaxis"
-    _path_str = "layout.scene.xaxis.tickformatstop"
+    _parent_path_str = 'layout.scene.xaxis'
+    _path_str = 'layout.scene.xaxis.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.xaxis.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.xaxis.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.scene.xaxis.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/xaxis/_title.py b/plotly/graph_objs/layout/scene/xaxis/_title.py
index a3009506cb5..79e1f2f14fb 100644
--- a/plotly/graph_objs/layout/scene/xaxis/_title.py
+++ b/plotly/graph_objs/layout/scene/xaxis/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.xaxis"
-    _path_str = "layout.scene.xaxis.title"
+    _parent_path_str = 'layout.scene.xaxis'
+    _path_str = 'layout.scene.xaxis.title'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.scene.xaxis.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of this axis.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.xaxis.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.xaxis.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.scene.xaxis.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/xaxis/title/__init__.py b/plotly/graph_objs/layout/scene/xaxis/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/scene/xaxis/title/__init__.py
+++ b/plotly/graph_objs/layout/scene/xaxis/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/scene/xaxis/title/_font.py b/plotly/graph_objs/layout/scene/xaxis/title/_font.py
index 555198e1330..90b6be6ddc6 100644
--- a/plotly/graph_objs/layout/scene/xaxis/title/_font.py
+++ b/plotly/graph_objs/layout/scene/xaxis/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.xaxis.title"
-    _path_str = "layout.scene.xaxis.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.scene.xaxis.title'
+    _path_str = 'layout.scene.xaxis.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.xaxis.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.xaxis.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.scene.xaxis.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/yaxis/__init__.py b/plotly/graph_objs/layout/scene/yaxis/__init__.py
index 72774d8afaa..9608419f0db 100644
--- a/plotly/graph_objs/layout/scene/yaxis/__init__.py
+++ b/plotly/graph_objs/layout/scene/yaxis/__init__.py
@@ -1,13 +1,17 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._autorangeoptions import Autorangeoptions
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._autorangeoptions.Autorangeoptions', '._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    [
-        "._autorangeoptions.Autorangeoptions",
-        "._tickfont.Tickfont",
-        "._tickformatstop.Tickformatstop",
-        "._title.Title",
-    ],
-)
diff --git a/plotly/graph_objs/layout/scene/yaxis/_autorangeoptions.py b/plotly/graph_objs/layout/scene/yaxis/_autorangeoptions.py
index 7c0bbf152cb..14d804bb950 100644
--- a/plotly/graph_objs/layout/scene/yaxis/_autorangeoptions.py
+++ b/plotly/graph_objs/layout/scene/yaxis/_autorangeoptions.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,16 +11,9 @@
 
 class Autorangeoptions(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.yaxis"
-    _path_str = "layout.scene.yaxis.autorangeoptions"
-    _valid_props = {
-        "clipmax",
-        "clipmin",
-        "include",
-        "includesrc",
-        "maxallowed",
-        "minallowed",
-    }
+    _parent_path_str = 'layout.scene.yaxis'
+    _path_str = 'layout.scene.yaxis.autorangeoptions'
+    _valid_props = {"clipmax", "clipmin", "include", "includesrc", "maxallowed", "minallowed"}
 
     @property
     def clipmax(self):
@@ -30,11 +27,11 @@ def clipmax(self):
         -------
         Any
         """
-        return self["clipmax"]
+        return self['clipmax']
 
     @clipmax.setter
     def clipmax(self, val):
-        self["clipmax"] = val
+        self['clipmax'] = val
 
     @property
     def clipmin(self):
@@ -48,11 +45,11 @@ def clipmin(self):
         -------
         Any
         """
-        return self["clipmin"]
+        return self['clipmin']
 
     @clipmin.setter
     def clipmin(self, val):
-        self["clipmin"] = val
+        self['clipmin'] = val
 
     @property
     def include(self):
@@ -65,11 +62,11 @@ def include(self):
         -------
         Any|numpy.ndarray
         """
-        return self["include"]
+        return self['include']
 
     @include.setter
     def include(self, val):
-        self["include"] = val
+        self['include'] = val
 
     @property
     def includesrc(self):
@@ -83,11 +80,11 @@ def includesrc(self):
         -------
         str
         """
-        return self["includesrc"]
+        return self['includesrc']
 
     @includesrc.setter
     def includesrc(self, val):
-        self["includesrc"] = val
+        self['includesrc'] = val
 
     @property
     def maxallowed(self):
@@ -100,11 +97,11 @@ def maxallowed(self):
         -------
         Any
         """
-        return self["maxallowed"]
+        return self['maxallowed']
 
     @maxallowed.setter
     def maxallowed(self, val):
-        self["maxallowed"] = val
+        self['maxallowed'] = val
 
     @property
     def minallowed(self):
@@ -117,11 +114,11 @@ def minallowed(self):
         -------
         Any
         """
-        return self["minallowed"]
+        return self['minallowed']
 
     @minallowed.setter
     def minallowed(self, val):
-        self["minallowed"] = val
+        self['minallowed'] = val
 
     @property
     def _prop_descriptions(self):
@@ -144,18 +141,16 @@ def _prop_descriptions(self):
         minallowed
             Use this value exactly as autorange minimum.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        clipmax=None,
-        clipmin=None,
-        include=None,
-        includesrc=None,
-        maxallowed=None,
-        minallowed=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            clipmax=None,
+            clipmin=None,
+            include=None,
+            includesrc=None,
+            maxallowed=None,
+            minallowed=None,
+            **kwargs
+        ):
         """
         Construct a new Autorangeoptions object
 
@@ -187,9 +182,9 @@ def __init__(
         -------
         Autorangeoptions
         """
-        super().__init__("autorangeoptions")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('autorangeoptions')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -199,21 +194,21 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.yaxis.Autorangeoptions
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.yaxis.Autorangeoptions`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("clipmax", arg, clipmax)
-        self._set_property("clipmin", arg, clipmin)
-        self._set_property("include", arg, include)
-        self._set_property("includesrc", arg, includesrc)
-        self._set_property("maxallowed", arg, maxallowed)
-        self._set_property("minallowed", arg, minallowed)
+an instance of :class:`plotly.graph_objs.layout.scene.yaxis.Autorangeoptions`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('clipmax', arg, clipmax)
+        self._set_property('clipmin', arg, clipmin)
+        self._set_property('include', arg, include)
+        self._set_property('includesrc', arg, includesrc)
+        self._set_property('maxallowed', arg, maxallowed)
+        self._set_property('minallowed', arg, minallowed)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/yaxis/_tickfont.py b/plotly/graph_objs/layout/scene/yaxis/_tickfont.py
index 321f0dd0f4e..a2863d0b5bb 100644
--- a/plotly/graph_objs/layout/scene/yaxis/_tickfont.py
+++ b/plotly/graph_objs/layout/scene/yaxis/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.yaxis"
-    _path_str = "layout.scene.yaxis.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.scene.yaxis'
+    _path_str = 'layout.scene.yaxis.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.yaxis.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.yaxis.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.scene.yaxis.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/yaxis/_tickformatstop.py b/plotly/graph_objs/layout/scene/yaxis/_tickformatstop.py
index 9fd0c1592f7..41644638831 100644
--- a/plotly/graph_objs/layout/scene/yaxis/_tickformatstop.py
+++ b/plotly/graph_objs/layout/scene/yaxis/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.yaxis"
-    _path_str = "layout.scene.yaxis.tickformatstop"
+    _parent_path_str = 'layout.scene.yaxis'
+    _path_str = 'layout.scene.yaxis.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.yaxis.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.yaxis.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.scene.yaxis.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/yaxis/_title.py b/plotly/graph_objs/layout/scene/yaxis/_title.py
index e6fe15e2ffd..781d4399f52 100644
--- a/plotly/graph_objs/layout/scene/yaxis/_title.py
+++ b/plotly/graph_objs/layout/scene/yaxis/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.yaxis"
-    _path_str = "layout.scene.yaxis.title"
+    _parent_path_str = 'layout.scene.yaxis'
+    _path_str = 'layout.scene.yaxis.title'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.scene.yaxis.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of this axis.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.yaxis.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.yaxis.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.scene.yaxis.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/yaxis/title/__init__.py b/plotly/graph_objs/layout/scene/yaxis/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/scene/yaxis/title/__init__.py
+++ b/plotly/graph_objs/layout/scene/yaxis/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/scene/yaxis/title/_font.py b/plotly/graph_objs/layout/scene/yaxis/title/_font.py
index c2087f2bb34..683961c660e 100644
--- a/plotly/graph_objs/layout/scene/yaxis/title/_font.py
+++ b/plotly/graph_objs/layout/scene/yaxis/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.yaxis.title"
-    _path_str = "layout.scene.yaxis.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.scene.yaxis.title'
+    _path_str = 'layout.scene.yaxis.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.yaxis.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.yaxis.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.scene.yaxis.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/zaxis/__init__.py b/plotly/graph_objs/layout/scene/zaxis/__init__.py
index 72774d8afaa..9608419f0db 100644
--- a/plotly/graph_objs/layout/scene/zaxis/__init__.py
+++ b/plotly/graph_objs/layout/scene/zaxis/__init__.py
@@ -1,13 +1,17 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._autorangeoptions import Autorangeoptions
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._autorangeoptions.Autorangeoptions', '._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    [
-        "._autorangeoptions.Autorangeoptions",
-        "._tickfont.Tickfont",
-        "._tickformatstop.Tickformatstop",
-        "._title.Title",
-    ],
-)
diff --git a/plotly/graph_objs/layout/scene/zaxis/_autorangeoptions.py b/plotly/graph_objs/layout/scene/zaxis/_autorangeoptions.py
index 2ae17dd85be..21c5e4cf813 100644
--- a/plotly/graph_objs/layout/scene/zaxis/_autorangeoptions.py
+++ b/plotly/graph_objs/layout/scene/zaxis/_autorangeoptions.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,16 +11,9 @@
 
 class Autorangeoptions(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.zaxis"
-    _path_str = "layout.scene.zaxis.autorangeoptions"
-    _valid_props = {
-        "clipmax",
-        "clipmin",
-        "include",
-        "includesrc",
-        "maxallowed",
-        "minallowed",
-    }
+    _parent_path_str = 'layout.scene.zaxis'
+    _path_str = 'layout.scene.zaxis.autorangeoptions'
+    _valid_props = {"clipmax", "clipmin", "include", "includesrc", "maxallowed", "minallowed"}
 
     @property
     def clipmax(self):
@@ -30,11 +27,11 @@ def clipmax(self):
         -------
         Any
         """
-        return self["clipmax"]
+        return self['clipmax']
 
     @clipmax.setter
     def clipmax(self, val):
-        self["clipmax"] = val
+        self['clipmax'] = val
 
     @property
     def clipmin(self):
@@ -48,11 +45,11 @@ def clipmin(self):
         -------
         Any
         """
-        return self["clipmin"]
+        return self['clipmin']
 
     @clipmin.setter
     def clipmin(self, val):
-        self["clipmin"] = val
+        self['clipmin'] = val
 
     @property
     def include(self):
@@ -65,11 +62,11 @@ def include(self):
         -------
         Any|numpy.ndarray
         """
-        return self["include"]
+        return self['include']
 
     @include.setter
     def include(self, val):
-        self["include"] = val
+        self['include'] = val
 
     @property
     def includesrc(self):
@@ -83,11 +80,11 @@ def includesrc(self):
         -------
         str
         """
-        return self["includesrc"]
+        return self['includesrc']
 
     @includesrc.setter
     def includesrc(self, val):
-        self["includesrc"] = val
+        self['includesrc'] = val
 
     @property
     def maxallowed(self):
@@ -100,11 +97,11 @@ def maxallowed(self):
         -------
         Any
         """
-        return self["maxallowed"]
+        return self['maxallowed']
 
     @maxallowed.setter
     def maxallowed(self, val):
-        self["maxallowed"] = val
+        self['maxallowed'] = val
 
     @property
     def minallowed(self):
@@ -117,11 +114,11 @@ def minallowed(self):
         -------
         Any
         """
-        return self["minallowed"]
+        return self['minallowed']
 
     @minallowed.setter
     def minallowed(self, val):
-        self["minallowed"] = val
+        self['minallowed'] = val
 
     @property
     def _prop_descriptions(self):
@@ -144,18 +141,16 @@ def _prop_descriptions(self):
         minallowed
             Use this value exactly as autorange minimum.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        clipmax=None,
-        clipmin=None,
-        include=None,
-        includesrc=None,
-        maxallowed=None,
-        minallowed=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            clipmax=None,
+            clipmin=None,
+            include=None,
+            includesrc=None,
+            maxallowed=None,
+            minallowed=None,
+            **kwargs
+        ):
         """
         Construct a new Autorangeoptions object
 
@@ -187,9 +182,9 @@ def __init__(
         -------
         Autorangeoptions
         """
-        super().__init__("autorangeoptions")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('autorangeoptions')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -199,21 +194,21 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.zaxis.Autorangeoptions
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.zaxis.Autorangeoptions`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("clipmax", arg, clipmax)
-        self._set_property("clipmin", arg, clipmin)
-        self._set_property("include", arg, include)
-        self._set_property("includesrc", arg, includesrc)
-        self._set_property("maxallowed", arg, maxallowed)
-        self._set_property("minallowed", arg, minallowed)
+an instance of :class:`plotly.graph_objs.layout.scene.zaxis.Autorangeoptions`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('clipmax', arg, clipmax)
+        self._set_property('clipmin', arg, clipmin)
+        self._set_property('include', arg, include)
+        self._set_property('includesrc', arg, includesrc)
+        self._set_property('maxallowed', arg, maxallowed)
+        self._set_property('minallowed', arg, minallowed)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/zaxis/_tickfont.py b/plotly/graph_objs/layout/scene/zaxis/_tickfont.py
index bac266b477b..35c57a2098c 100644
--- a/plotly/graph_objs/layout/scene/zaxis/_tickfont.py
+++ b/plotly/graph_objs/layout/scene/zaxis/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.zaxis"
-    _path_str = "layout.scene.zaxis.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.scene.zaxis'
+    _path_str = 'layout.scene.zaxis.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.zaxis.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.zaxis.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.scene.zaxis.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/zaxis/_tickformatstop.py b/plotly/graph_objs/layout/scene/zaxis/_tickformatstop.py
index 15a35847437..bfba60562a7 100644
--- a/plotly/graph_objs/layout/scene/zaxis/_tickformatstop.py
+++ b/plotly/graph_objs/layout/scene/zaxis/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.zaxis"
-    _path_str = "layout.scene.zaxis.tickformatstop"
+    _parent_path_str = 'layout.scene.zaxis'
+    _path_str = 'layout.scene.zaxis.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.zaxis.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.zaxis.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.scene.zaxis.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/zaxis/_title.py b/plotly/graph_objs/layout/scene/zaxis/_title.py
index bd535a9b9ee..5086c5399e6 100644
--- a/plotly/graph_objs/layout/scene/zaxis/_title.py
+++ b/plotly/graph_objs/layout/scene/zaxis/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.zaxis"
-    _path_str = "layout.scene.zaxis.title"
+    _parent_path_str = 'layout.scene.zaxis'
+    _path_str = 'layout.scene.zaxis.title'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.scene.zaxis.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of this axis.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.zaxis.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.zaxis.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.scene.zaxis.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/scene/zaxis/title/__init__.py b/plotly/graph_objs/layout/scene/zaxis/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/scene/zaxis/title/__init__.py
+++ b/plotly/graph_objs/layout/scene/zaxis/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/scene/zaxis/title/_font.py b/plotly/graph_objs/layout/scene/zaxis/title/_font.py
index c4201cec005..9c4859a29cd 100644
--- a/plotly/graph_objs/layout/scene/zaxis/title/_font.py
+++ b/plotly/graph_objs/layout/scene/zaxis/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.scene.zaxis.title"
-    _path_str = "layout.scene.zaxis.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.scene.zaxis.title'
+    _path_str = 'layout.scene.zaxis.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.scene.zaxis.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.scene.zaxis.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.scene.zaxis.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/selection/__init__.py b/plotly/graph_objs/layout/selection/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/layout/selection/__init__.py
+++ b/plotly/graph_objs/layout/selection/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/layout/selection/_line.py b/plotly/graph_objs/layout/selection/_line.py
index 868f26c369d..bdf1bb6abf8 100644
--- a/plotly/graph_objs/layout/selection/_line.py
+++ b/plotly/graph_objs/layout/selection/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.selection"
-    _path_str = "layout.selection.line"
+    _parent_path_str = 'layout.selection'
+    _path_str = 'layout.selection.line'
     _valid_props = {"color", "dash", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -51,11 +55,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def width(self):
@@ -69,11 +73,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -88,8 +92,13 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dash=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -113,9 +122,9 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -125,18 +134,18 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.selection.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.selection.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.selection.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/shape/__init__.py b/plotly/graph_objs/layout/shape/__init__.py
index ac9079347de..d6a6449c75e 100644
--- a/plotly/graph_objs/layout/shape/__init__.py
+++ b/plotly/graph_objs/layout/shape/__init__.py
@@ -1,8 +1,17 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._label import Label
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from . import label
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.label', '.legendgrouptitle'],
+        ['._label.Label', '._legendgrouptitle.Legendgrouptitle', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".label", ".legendgrouptitle"],
-    ["._label.Label", "._legendgrouptitle.Legendgrouptitle", "._line.Line"],
-)
diff --git a/plotly/graph_objs/layout/shape/_label.py b/plotly/graph_objs/layout/shape/_label.py
index a1da664094a..1a68195bcf9 100644
--- a/plotly/graph_objs/layout/shape/_label.py
+++ b/plotly/graph_objs/layout/shape/_label.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,18 +11,9 @@
 
 class Label(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.shape"
-    _path_str = "layout.shape.label"
-    _valid_props = {
-        "font",
-        "padding",
-        "text",
-        "textangle",
-        "textposition",
-        "texttemplate",
-        "xanchor",
-        "yanchor",
-    }
+    _parent_path_str = 'layout.shape'
+    _path_str = 'layout.shape.label'
+    _valid_props = {"font", "padding", "text", "textangle", "textposition", "texttemplate", "xanchor", "yanchor"}
 
     @property
     def font(self):
@@ -35,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.shape.label.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def padding(self):
@@ -53,11 +48,11 @@ def padding(self):
         -------
         int|float
         """
-        return self["padding"]
+        return self['padding']
 
     @padding.setter
     def padding(self, val):
-        self["padding"] = val
+        self['padding'] = val
 
     @property
     def text(self):
@@ -73,11 +68,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def textangle(self):
@@ -95,11 +90,11 @@ def textangle(self):
         -------
         int|float
         """
-        return self["textangle"]
+        return self['textangle']
 
     @textangle.setter
     def textangle(self, val):
-        self["textangle"] = val
+        self['textangle'] = val
 
     @property
     def textposition(self):
@@ -122,11 +117,11 @@ def textposition(self):
         -------
         Any
         """
-        return self["textposition"]
+        return self['textposition']
 
     @textposition.setter
     def textposition(self, val):
-        self["textposition"] = val
+        self['textposition'] = val
 
     @property
     def texttemplate(self):
@@ -160,11 +155,11 @@ def texttemplate(self):
         -------
         str
         """
-        return self["texttemplate"]
+        return self['texttemplate']
 
     @texttemplate.setter
     def texttemplate(self, val):
-        self["texttemplate"] = val
+        self['texttemplate'] = val
 
     @property
     def xanchor(self):
@@ -184,11 +179,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def yanchor(self):
@@ -207,11 +202,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def _prop_descriptions(self):
@@ -277,20 +272,18 @@ def _prop_descriptions(self):
             "top" then the top-most portion of the label text lines
             up with the top-most edge of the shape.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        font=None,
-        padding=None,
-        text=None,
-        textangle=None,
-        textposition=None,
-        texttemplate=None,
-        xanchor=None,
-        yanchor=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            font=None,
+            padding=None,
+            text=None,
+            textangle=None,
+            textposition=None,
+            texttemplate=None,
+            xanchor=None,
+            yanchor=None,
+            **kwargs
+        ):
         """
         Construct a new Label object
 
@@ -365,9 +358,9 @@ def __init__(
         -------
         Label
         """
-        super().__init__("label")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('label')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -377,23 +370,23 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.shape.Label
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.shape.Label`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("font", arg, font)
-        self._set_property("padding", arg, padding)
-        self._set_property("text", arg, text)
-        self._set_property("textangle", arg, textangle)
-        self._set_property("textposition", arg, textposition)
-        self._set_property("texttemplate", arg, texttemplate)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("yanchor", arg, yanchor)
+an instance of :class:`plotly.graph_objs.layout.shape.Label`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('font', arg, font)
+        self._set_property('padding', arg, padding)
+        self._set_property('text', arg, text)
+        self._set_property('textangle', arg, textangle)
+        self._set_property('textposition', arg, textposition)
+        self._set_property('texttemplate', arg, texttemplate)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('yanchor', arg, yanchor)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/shape/_legendgrouptitle.py b/plotly/graph_objs/layout/shape/_legendgrouptitle.py
index 792e64b48b4..5f5d5faea33 100644
--- a/plotly/graph_objs/layout/shape/_legendgrouptitle.py
+++ b/plotly/graph_objs/layout/shape/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.shape"
-    _path_str = "layout.shape.legendgrouptitle"
+    _parent_path_str = 'layout.shape'
+    _path_str = 'layout.shape.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.shape.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.shape.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.shape.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.shape.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/shape/_line.py b/plotly/graph_objs/layout/shape/_line.py
index a49f8c233fb..3eb1788c3ad 100644
--- a/plotly/graph_objs/layout/shape/_line.py
+++ b/plotly/graph_objs/layout/shape/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.shape"
-    _path_str = "layout.shape.line"
+    _parent_path_str = 'layout.shape'
+    _path_str = 'layout.shape.line'
     _valid_props = {"color", "dash", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -51,11 +55,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def width(self):
@@ -69,11 +73,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -88,8 +92,13 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dash=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -113,9 +122,9 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -125,18 +134,18 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.shape.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.shape.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.shape.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/shape/label/__init__.py b/plotly/graph_objs/layout/shape/label/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/shape/label/__init__.py
+++ b/plotly/graph_objs/layout/shape/label/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/shape/label/_font.py b/plotly/graph_objs/layout/shape/label/_font.py
index 18bec928059..26c69034416 100644
--- a/plotly/graph_objs/layout/shape/label/_font.py
+++ b/plotly/graph_objs/layout/shape/label/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.shape.label"
-    _path_str = "layout.shape.label.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.shape.label'
+    _path_str = 'layout.shape.label.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.shape.label.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.shape.label.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.shape.label.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/shape/legendgrouptitle/__init__.py b/plotly/graph_objs/layout/shape/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/shape/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/layout/shape/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/shape/legendgrouptitle/_font.py b/plotly/graph_objs/layout/shape/legendgrouptitle/_font.py
index f3776ca2883..dabbbe84fc9 100644
--- a/plotly/graph_objs/layout/shape/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/layout/shape/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.shape.legendgrouptitle"
-    _path_str = "layout.shape.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.shape.legendgrouptitle'
+    _path_str = 'layout.shape.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.shape.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.shape.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.shape.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/slider/__init__.py b/plotly/graph_objs/layout/slider/__init__.py
index 8def8c550e5..c06159973df 100644
--- a/plotly/graph_objs/layout/slider/__init__.py
+++ b/plotly/graph_objs/layout/slider/__init__.py
@@ -1,14 +1,18 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._currentvalue import Currentvalue
+    from ._font import Font
+    from ._pad import Pad
+    from ._step import Step
+    from ._transition import Transition
+    from . import currentvalue
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.currentvalue'],
+        ['._currentvalue.Currentvalue', '._font.Font', '._pad.Pad', '._step.Step', '._transition.Transition']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".currentvalue"],
-    [
-        "._currentvalue.Currentvalue",
-        "._font.Font",
-        "._pad.Pad",
-        "._step.Step",
-        "._transition.Transition",
-    ],
-)
diff --git a/plotly/graph_objs/layout/slider/_currentvalue.py b/plotly/graph_objs/layout/slider/_currentvalue.py
index e9b47693dea..08c69f8e511 100644
--- a/plotly/graph_objs/layout/slider/_currentvalue.py
+++ b/plotly/graph_objs/layout/slider/_currentvalue.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Currentvalue(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.slider"
-    _path_str = "layout.slider.currentvalue"
+    _parent_path_str = 'layout.slider'
+    _path_str = 'layout.slider.currentvalue'
     _valid_props = {"font", "offset", "prefix", "suffix", "visible", "xanchor"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.slider.currentvalue.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def offset(self):
@@ -45,11 +49,11 @@ def offset(self):
         -------
         int|float
         """
-        return self["offset"]
+        return self['offset']
 
     @offset.setter
     def offset(self, val):
-        self["offset"] = val
+        self['offset'] = val
 
     @property
     def prefix(self):
@@ -65,11 +69,11 @@ def prefix(self):
         -------
         str
         """
-        return self["prefix"]
+        return self['prefix']
 
     @prefix.setter
     def prefix(self, val):
-        self["prefix"] = val
+        self['prefix'] = val
 
     @property
     def suffix(self):
@@ -85,11 +89,11 @@ def suffix(self):
         -------
         str
         """
-        return self["suffix"]
+        return self['suffix']
 
     @suffix.setter
     def suffix(self, val):
-        self["suffix"] = val
+        self['suffix'] = val
 
     @property
     def visible(self):
@@ -103,11 +107,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def xanchor(self):
@@ -123,11 +127,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def _prop_descriptions(self):
@@ -149,18 +153,16 @@ def _prop_descriptions(self):
             The alignment of the value readout relative to the
             length of the slider.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        font=None,
-        offset=None,
-        prefix=None,
-        suffix=None,
-        visible=None,
-        xanchor=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            font=None,
+            offset=None,
+            prefix=None,
+            suffix=None,
+            visible=None,
+            xanchor=None,
+            **kwargs
+        ):
         """
         Construct a new Currentvalue object
 
@@ -191,9 +193,9 @@ def __init__(
         -------
         Currentvalue
         """
-        super().__init__("currentvalue")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('currentvalue')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -203,21 +205,21 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.slider.Currentvalue
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.slider.Currentvalue`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("font", arg, font)
-        self._set_property("offset", arg, offset)
-        self._set_property("prefix", arg, prefix)
-        self._set_property("suffix", arg, suffix)
-        self._set_property("visible", arg, visible)
-        self._set_property("xanchor", arg, xanchor)
+an instance of :class:`plotly.graph_objs.layout.slider.Currentvalue`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('font', arg, font)
+        self._set_property('offset', arg, offset)
+        self._set_property('prefix', arg, prefix)
+        self._set_property('suffix', arg, suffix)
+        self._set_property('visible', arg, visible)
+        self._set_property('xanchor', arg, xanchor)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/slider/_font.py b/plotly/graph_objs/layout/slider/_font.py
index d45feb8c85a..ecc91e0df7f 100644
--- a/plotly/graph_objs/layout/slider/_font.py
+++ b/plotly/graph_objs/layout/slider/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.slider"
-    _path_str = "layout.slider.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.slider'
+    _path_str = 'layout.slider.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.slider.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.slider.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.slider.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/slider/_pad.py b/plotly/graph_objs/layout/slider/_pad.py
index a614ee41dd5..0306f3ce4b2 100644
--- a/plotly/graph_objs/layout/slider/_pad.py
+++ b/plotly/graph_objs/layout/slider/_pad.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Pad(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.slider"
-    _path_str = "layout.slider.pad"
+    _parent_path_str = 'layout.slider'
+    _path_str = 'layout.slider.pad'
     _valid_props = {"b", "l", "r", "t"}
 
     @property
@@ -24,11 +28,11 @@ def b(self):
         -------
         int|float
         """
-        return self["b"]
+        return self['b']
 
     @b.setter
     def b(self, val):
-        self["b"] = val
+        self['b'] = val
 
     @property
     def l(self):
@@ -43,11 +47,11 @@ def l(self):
         -------
         int|float
         """
-        return self["l"]
+        return self['l']
 
     @l.setter
     def l(self, val):
-        self["l"] = val
+        self['l'] = val
 
     @property
     def r(self):
@@ -62,11 +66,11 @@ def r(self):
         -------
         int|float
         """
-        return self["r"]
+        return self['r']
 
     @r.setter
     def r(self, val):
-        self["r"] = val
+        self['r'] = val
 
     @property
     def t(self):
@@ -80,11 +84,11 @@ def t(self):
         -------
         int|float
         """
-        return self["t"]
+        return self['t']
 
     @t.setter
     def t(self, val):
-        self["t"] = val
+        self['t'] = val
 
     @property
     def _prop_descriptions(self):
@@ -102,8 +106,14 @@ def _prop_descriptions(self):
             The amount of padding (in px) along the top of the
             component.
         """
-
-    def __init__(self, arg=None, b=None, l=None, r=None, t=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            b=None,
+            l=None,
+            r=None,
+            t=None,
+            **kwargs
+        ):
         """
         Construct a new Pad object
 
@@ -132,9 +142,9 @@ def __init__(self, arg=None, b=None, l=None, r=None, t=None, **kwargs):
         -------
         Pad
         """
-        super().__init__("pad")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('pad')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -144,19 +154,19 @@ def __init__(self, arg=None, b=None, l=None, r=None, t=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.slider.Pad
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.slider.Pad`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.slider.Pad`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("b", arg, b)
-        self._set_property("l", arg, l)
-        self._set_property("r", arg, r)
-        self._set_property("t", arg, t)
+        self._set_property('b', arg, b)
+        self._set_property('l', arg, l)
+        self._set_property('r', arg, r)
+        self._set_property('t', arg, t)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/slider/_step.py b/plotly/graph_objs/layout/slider/_step.py
index 714aee84581..b4b365f11f8 100644
--- a/plotly/graph_objs/layout/slider/_step.py
+++ b/plotly/graph_objs/layout/slider/_step.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,41 +11,32 @@
 
 class Step(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.slider"
-    _path_str = "layout.slider.step"
-    _valid_props = {
-        "args",
-        "execute",
-        "label",
-        "method",
-        "name",
-        "templateitemname",
-        "value",
-        "visible",
-    }
+    _parent_path_str = 'layout.slider'
+    _path_str = 'layout.slider.step'
+    _valid_props = {"args", "execute", "label", "method", "name", "templateitemname", "value", "visible"}
 
     @property
     def args(self):
         """
-            Sets the arguments values to be passed to the Plotly method set
-            in `method` on slide.
-
-            The 'args' property is an info array that may be specified as:
+        Sets the arguments values to be passed to the Plotly method set
+        in `method` on slide.
 
-            * a list or tuple of up to 3 elements where:
-        (0) The 'args[0]' property accepts values of any type
-        (1) The 'args[1]' property accepts values of any type
-        (2) The 'args[2]' property accepts values of any type
+        The 'args' property is an info array that may be specified as:
+    
+        * a list or tuple of up to 3 elements where:
+    (0) The 'args[0]' property accepts values of any type
+    (1) The 'args[1]' property accepts values of any type
+    (2) The 'args[2]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["args"]
+        return self['args']
 
     @args.setter
     def args(self, val):
-        self["args"] = val
+        self['args'] = val
 
     @property
     def execute(self):
@@ -61,11 +56,11 @@ def execute(self):
         -------
         bool
         """
-        return self["execute"]
+        return self['execute']
 
     @execute.setter
     def execute(self, val):
-        self["execute"] = val
+        self['execute'] = val
 
     @property
     def label(self):
@@ -80,11 +75,11 @@ def label(self):
         -------
         str
         """
-        return self["label"]
+        return self['label']
 
     @label.setter
     def label(self, val):
-        self["label"] = val
+        self['label'] = val
 
     @property
     def method(self):
@@ -104,11 +99,11 @@ def method(self):
         -------
         Any
         """
-        return self["method"]
+        return self['method']
 
     @method.setter
     def method(self, val):
-        self["method"] = val
+        self['method'] = val
 
     @property
     def name(self):
@@ -129,11 +124,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -155,11 +150,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -175,11 +170,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def visible(self):
@@ -193,11 +188,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -249,20 +244,18 @@ def _prop_descriptions(self):
             Determines whether or not this step is included in the
             slider.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        args=None,
-        execute=None,
-        label=None,
-        method=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            args=None,
+            execute=None,
+            label=None,
+            method=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Step object
 
@@ -323,9 +316,9 @@ def __init__(
         -------
         Step
         """
-        super().__init__("steps")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('steps')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -335,23 +328,23 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.slider.Step
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.slider.Step`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("args", arg, args)
-        self._set_property("execute", arg, execute)
-        self._set_property("label", arg, label)
-        self._set_property("method", arg, method)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
-        self._set_property("visible", arg, visible)
+an instance of :class:`plotly.graph_objs.layout.slider.Step`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('args', arg, args)
+        self._set_property('execute', arg, execute)
+        self._set_property('label', arg, label)
+        self._set_property('method', arg, method)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/slider/_transition.py b/plotly/graph_objs/layout/slider/_transition.py
index 1291ac5d5a9..c7cf97655cd 100644
--- a/plotly/graph_objs/layout/slider/_transition.py
+++ b/plotly/graph_objs/layout/slider/_transition.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Transition(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.slider"
-    _path_str = "layout.slider.transition"
+    _parent_path_str = 'layout.slider'
+    _path_str = 'layout.slider.transition'
     _valid_props = {"duration", "easing"}
 
     @property
@@ -23,11 +27,11 @@ def duration(self):
         -------
         int|float
         """
-        return self["duration"]
+        return self['duration']
 
     @duration.setter
     def duration(self, val):
-        self["duration"] = val
+        self['duration'] = val
 
     @property
     def easing(self):
@@ -50,11 +54,11 @@ def easing(self):
         -------
         Any
         """
-        return self["easing"]
+        return self['easing']
 
     @easing.setter
     def easing(self, val):
-        self["easing"] = val
+        self['easing'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
         easing
             Sets the easing function of the slider transition
         """
-
-    def __init__(self, arg=None, duration=None, easing=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            duration=None,
+            easing=None,
+            **kwargs
+        ):
         """
         Construct a new Transition object
 
@@ -84,9 +92,9 @@ def __init__(self, arg=None, duration=None, easing=None, **kwargs):
         -------
         Transition
         """
-        super().__init__("transition")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('transition')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -96,17 +104,17 @@ def __init__(self, arg=None, duration=None, easing=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.slider.Transition
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.slider.Transition`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.slider.Transition`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("duration", arg, duration)
-        self._set_property("easing", arg, easing)
+        self._set_property('duration', arg, duration)
+        self._set_property('easing', arg, easing)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/slider/currentvalue/__init__.py b/plotly/graph_objs/layout/slider/currentvalue/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/slider/currentvalue/__init__.py
+++ b/plotly/graph_objs/layout/slider/currentvalue/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/slider/currentvalue/_font.py b/plotly/graph_objs/layout/slider/currentvalue/_font.py
index 8ab76a0c9f7..a3b57d07b3f 100644
--- a/plotly/graph_objs/layout/slider/currentvalue/_font.py
+++ b/plotly/graph_objs/layout/slider/currentvalue/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.slider.currentvalue"
-    _path_str = "layout.slider.currentvalue.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.slider.currentvalue'
+    _path_str = 'layout.slider.currentvalue.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.slider.currentvalue.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.slider.currentvalue.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.slider.currentvalue.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/smith/__init__.py b/plotly/graph_objs/layout/smith/__init__.py
index 183925b5645..4dc0e936704 100644
--- a/plotly/graph_objs/layout/smith/__init__.py
+++ b/plotly/graph_objs/layout/smith/__init__.py
@@ -1,8 +1,17 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._domain import Domain
+    from ._imaginaryaxis import Imaginaryaxis
+    from ._realaxis import Realaxis
+    from . import imaginaryaxis
+    from . import realaxis
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.imaginaryaxis', '.realaxis'],
+        ['._domain.Domain', '._imaginaryaxis.Imaginaryaxis', '._realaxis.Realaxis']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".imaginaryaxis", ".realaxis"],
-    ["._domain.Domain", "._imaginaryaxis.Imaginaryaxis", "._realaxis.Realaxis"],
-)
diff --git a/plotly/graph_objs/layout/smith/_domain.py b/plotly/graph_objs/layout/smith/_domain.py
index ddb5ba9d5ab..fa004e525fd 100644
--- a/plotly/graph_objs/layout/smith/_domain.py
+++ b/plotly/graph_objs/layout/smith/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.smith"
-    _path_str = "layout.smith.domain"
+    _parent_path_str = 'layout.smith'
+    _path_str = 'layout.smith.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -25,11 +29,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -45,59 +49,59 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this smith subplot (in plot
-            fraction).
-
-            The 'x' property is an info array that may be specified as:
+        Sets the horizontal domain of this smith subplot (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this smith subplot (in plot
-            fraction).
+        Sets the vertical domain of this smith subplot (in plot
+        fraction).
 
-            The 'y' property is an info array that may be specified as:
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,8 +119,14 @@ def _prop_descriptions(self):
             Sets the vertical domain of this smith subplot (in plot
             fraction).
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -143,9 +153,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -155,19 +165,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.smith.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.smith.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.smith.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/smith/_imaginaryaxis.py b/plotly/graph_objs/layout/smith/_imaginaryaxis.py
index 175553fd242..f054d806a65 100644
--- a/plotly/graph_objs/layout/smith/_imaginaryaxis.py
+++ b/plotly/graph_objs/layout/smith/_imaginaryaxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,35 +11,9 @@
 
 class Imaginaryaxis(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.smith"
-    _path_str = "layout.smith.imaginaryaxis"
-    _valid_props = {
-        "color",
-        "gridcolor",
-        "griddash",
-        "gridwidth",
-        "hoverformat",
-        "labelalias",
-        "layer",
-        "linecolor",
-        "linewidth",
-        "showgrid",
-        "showline",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "ticklen",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "visible",
-    }
+    _parent_path_str = 'layout.smith'
+    _path_str = 'layout.smith.imaginaryaxis'
+    _valid_props = {"color", "gridcolor", "griddash", "gridwidth", "hoverformat", "labelalias", "layer", "linecolor", "linewidth", "showgrid", "showline", "showticklabels", "showtickprefix", "showticksuffix", "tickcolor", "tickfont", "tickformat", "ticklen", "tickprefix", "ticks", "ticksuffix", "tickvals", "tickvalssrc", "tickwidth", "visible"}
 
     @property
     def color(self):
@@ -56,11 +34,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def gridcolor(self):
@@ -78,11 +56,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def griddash(self):
@@ -102,11 +80,11 @@ def griddash(self):
         -------
         str
         """
-        return self["griddash"]
+        return self['griddash']
 
     @griddash.setter
     def griddash(self, val):
-        self["griddash"] = val
+        self['griddash'] = val
 
     @property
     def gridwidth(self):
@@ -120,11 +98,11 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def hoverformat(self):
@@ -148,11 +126,11 @@ def hoverformat(self):
         -------
         str
         """
-        return self["hoverformat"]
+        return self['hoverformat']
 
     @hoverformat.setter
     def hoverformat(self, val):
-        self["hoverformat"] = val
+        self['hoverformat'] = val
 
     @property
     def labelalias(self):
@@ -173,11 +151,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def layer(self):
@@ -197,11 +175,11 @@ def layer(self):
         -------
         Any
         """
-        return self["layer"]
+        return self['layer']
 
     @layer.setter
     def layer(self, val):
-        self["layer"] = val
+        self['layer'] = val
 
     @property
     def linecolor(self):
@@ -219,11 +197,11 @@ def linecolor(self):
         -------
         str
         """
-        return self["linecolor"]
+        return self['linecolor']
 
     @linecolor.setter
     def linecolor(self, val):
-        self["linecolor"] = val
+        self['linecolor'] = val
 
     @property
     def linewidth(self):
@@ -237,11 +215,11 @@ def linewidth(self):
         -------
         int|float
         """
-        return self["linewidth"]
+        return self['linewidth']
 
     @linewidth.setter
     def linewidth(self, val):
-        self["linewidth"] = val
+        self['linewidth'] = val
 
     @property
     def showgrid(self):
@@ -256,11 +234,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def showline(self):
@@ -274,11 +252,11 @@ def showline(self):
         -------
         bool
         """
-        return self["showline"]
+        return self['showline']
 
     @showline.setter
     def showline(self, val):
-        self["showline"] = val
+        self['showline'] = val
 
     @property
     def showticklabels(self):
@@ -292,11 +270,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -314,11 +292,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -333,11 +311,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def tickcolor(self):
@@ -355,11 +333,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -376,11 +354,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.layout.smith.imaginaryaxis.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -404,11 +382,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def ticklen(self):
@@ -422,11 +400,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickprefix(self):
@@ -441,11 +419,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -462,11 +440,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -481,11 +459,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def tickvals(self):
@@ -500,11 +478,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -518,11 +496,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -536,11 +514,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def visible(self):
@@ -556,11 +534,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -669,37 +647,35 @@ def _prop_descriptions(self):
             interaction like dragging. Default is true when a
             cheater plot is present on the axis, otherwise false
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        gridcolor=None,
-        griddash=None,
-        gridwidth=None,
-        hoverformat=None,
-        labelalias=None,
-        layer=None,
-        linecolor=None,
-        linewidth=None,
-        showgrid=None,
-        showline=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        ticklen=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            gridcolor=None,
+            griddash=None,
+            gridwidth=None,
+            hoverformat=None,
+            labelalias=None,
+            layer=None,
+            linecolor=None,
+            linewidth=None,
+            showgrid=None,
+            showline=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            ticklen=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Imaginaryaxis object
 
@@ -817,9 +793,9 @@ def __init__(
         -------
         Imaginaryaxis
         """
-        super().__init__("imaginaryaxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('imaginaryaxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -829,40 +805,40 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.smith.Imaginaryaxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.smith.Imaginaryaxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("griddash", arg, griddash)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("hoverformat", arg, hoverformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("layer", arg, layer)
-        self._set_property("linecolor", arg, linecolor)
-        self._set_property("linewidth", arg, linewidth)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("showline", arg, showline)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("visible", arg, visible)
+an instance of :class:`plotly.graph_objs.layout.smith.Imaginaryaxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('griddash', arg, griddash)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('hoverformat', arg, hoverformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('layer', arg, layer)
+        self._set_property('linecolor', arg, linecolor)
+        self._set_property('linewidth', arg, linewidth)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('showline', arg, showline)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/smith/_realaxis.py b/plotly/graph_objs/layout/smith/_realaxis.py
index 883ed21151a..1dbddc736fe 100644
--- a/plotly/graph_objs/layout/smith/_realaxis.py
+++ b/plotly/graph_objs/layout/smith/_realaxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,37 +11,9 @@
 
 class Realaxis(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.smith"
-    _path_str = "layout.smith.realaxis"
-    _valid_props = {
-        "color",
-        "gridcolor",
-        "griddash",
-        "gridwidth",
-        "hoverformat",
-        "labelalias",
-        "layer",
-        "linecolor",
-        "linewidth",
-        "showgrid",
-        "showline",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "side",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "ticklen",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "visible",
-    }
+    _parent_path_str = 'layout.smith'
+    _path_str = 'layout.smith.realaxis'
+    _valid_props = {"color", "gridcolor", "griddash", "gridwidth", "hoverformat", "labelalias", "layer", "linecolor", "linewidth", "showgrid", "showline", "showticklabels", "showtickprefix", "showticksuffix", "side", "tickangle", "tickcolor", "tickfont", "tickformat", "ticklen", "tickprefix", "ticks", "ticksuffix", "tickvals", "tickvalssrc", "tickwidth", "visible"}
 
     @property
     def color(self):
@@ -58,11 +34,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def gridcolor(self):
@@ -80,11 +56,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def griddash(self):
@@ -104,11 +80,11 @@ def griddash(self):
         -------
         str
         """
-        return self["griddash"]
+        return self['griddash']
 
     @griddash.setter
     def griddash(self, val):
-        self["griddash"] = val
+        self['griddash'] = val
 
     @property
     def gridwidth(self):
@@ -122,11 +98,11 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def hoverformat(self):
@@ -150,11 +126,11 @@ def hoverformat(self):
         -------
         str
         """
-        return self["hoverformat"]
+        return self['hoverformat']
 
     @hoverformat.setter
     def hoverformat(self, val):
-        self["hoverformat"] = val
+        self['hoverformat'] = val
 
     @property
     def labelalias(self):
@@ -175,11 +151,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def layer(self):
@@ -199,11 +175,11 @@ def layer(self):
         -------
         Any
         """
-        return self["layer"]
+        return self['layer']
 
     @layer.setter
     def layer(self, val):
-        self["layer"] = val
+        self['layer'] = val
 
     @property
     def linecolor(self):
@@ -221,11 +197,11 @@ def linecolor(self):
         -------
         str
         """
-        return self["linecolor"]
+        return self['linecolor']
 
     @linecolor.setter
     def linecolor(self, val):
-        self["linecolor"] = val
+        self['linecolor'] = val
 
     @property
     def linewidth(self):
@@ -239,11 +215,11 @@ def linewidth(self):
         -------
         int|float
         """
-        return self["linewidth"]
+        return self['linewidth']
 
     @linewidth.setter
     def linewidth(self, val):
-        self["linewidth"] = val
+        self['linewidth'] = val
 
     @property
     def showgrid(self):
@@ -258,11 +234,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def showline(self):
@@ -276,11 +252,11 @@ def showline(self):
         -------
         bool
         """
-        return self["showline"]
+        return self['showline']
 
     @showline.setter
     def showline(self, val):
-        self["showline"] = val
+        self['showline'] = val
 
     @property
     def showticklabels(self):
@@ -294,11 +270,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -316,11 +292,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -335,11 +311,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def side(self):
@@ -355,11 +331,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def tickangle(self):
@@ -377,11 +353,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -399,11 +375,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -420,11 +396,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.layout.smith.realaxis.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -448,11 +424,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def ticklen(self):
@@ -466,11 +442,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickprefix(self):
@@ -485,11 +461,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -506,11 +482,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -525,11 +501,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def tickvals(self):
@@ -543,11 +519,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -561,11 +537,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -579,11 +555,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def visible(self):
@@ -599,11 +575,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -717,39 +693,37 @@ def _prop_descriptions(self):
             interaction like dragging. Default is true when a
             cheater plot is present on the axis, otherwise false
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        gridcolor=None,
-        griddash=None,
-        gridwidth=None,
-        hoverformat=None,
-        labelalias=None,
-        layer=None,
-        linecolor=None,
-        linewidth=None,
-        showgrid=None,
-        showline=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        side=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        ticklen=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            gridcolor=None,
+            griddash=None,
+            gridwidth=None,
+            hoverformat=None,
+            labelalias=None,
+            layer=None,
+            linecolor=None,
+            linewidth=None,
+            showgrid=None,
+            showline=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            side=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            ticklen=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Realaxis object
 
@@ -872,9 +846,9 @@ def __init__(
         -------
         Realaxis
         """
-        super().__init__("realaxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('realaxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -884,42 +858,42 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.smith.Realaxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.smith.Realaxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("griddash", arg, griddash)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("hoverformat", arg, hoverformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("layer", arg, layer)
-        self._set_property("linecolor", arg, linecolor)
-        self._set_property("linewidth", arg, linewidth)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("showline", arg, showline)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("side", arg, side)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("visible", arg, visible)
+an instance of :class:`plotly.graph_objs.layout.smith.Realaxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('griddash', arg, griddash)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('hoverformat', arg, hoverformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('layer', arg, layer)
+        self._set_property('linecolor', arg, linecolor)
+        self._set_property('linewidth', arg, linewidth)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('showline', arg, showline)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('side', arg, side)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/smith/imaginaryaxis/__init__.py b/plotly/graph_objs/layout/smith/imaginaryaxis/__init__.py
index 95d4572a8d9..0bc34fedf7c 100644
--- a/plotly/graph_objs/layout/smith/imaginaryaxis/__init__.py
+++ b/plotly/graph_objs/layout/smith/imaginaryaxis/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._tickfont.Tickfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._tickfont.Tickfont"])
diff --git a/plotly/graph_objs/layout/smith/imaginaryaxis/_tickfont.py b/plotly/graph_objs/layout/smith/imaginaryaxis/_tickfont.py
index 756bce8eea2..0215de5bbe2 100644
--- a/plotly/graph_objs/layout/smith/imaginaryaxis/_tickfont.py
+++ b/plotly/graph_objs/layout/smith/imaginaryaxis/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.smith.imaginaryaxis"
-    _path_str = "layout.smith.imaginaryaxis.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.smith.imaginaryaxis'
+    _path_str = 'layout.smith.imaginaryaxis.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.smith.imaginaryaxis.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.smith.imaginaryaxis.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.smith.imaginaryaxis.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/smith/realaxis/__init__.py b/plotly/graph_objs/layout/smith/realaxis/__init__.py
index 95d4572a8d9..0bc34fedf7c 100644
--- a/plotly/graph_objs/layout/smith/realaxis/__init__.py
+++ b/plotly/graph_objs/layout/smith/realaxis/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._tickfont.Tickfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._tickfont.Tickfont"])
diff --git a/plotly/graph_objs/layout/smith/realaxis/_tickfont.py b/plotly/graph_objs/layout/smith/realaxis/_tickfont.py
index 3ad1c81ec86..22eb2847eda 100644
--- a/plotly/graph_objs/layout/smith/realaxis/_tickfont.py
+++ b/plotly/graph_objs/layout/smith/realaxis/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.smith.realaxis"
-    _path_str = "layout.smith.realaxis.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.smith.realaxis'
+    _path_str = 'layout.smith.realaxis.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.smith.realaxis.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.smith.realaxis.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.smith.realaxis.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/template/__init__.py b/plotly/graph_objs/layout/template/__init__.py
index cee6e647202..62889e1f94f 100644
--- a/plotly/graph_objs/layout/template/__init__.py
+++ b/plotly/graph_objs/layout/template/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._data import Data
+    from ._layout import Layout
+    from . import data
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.data'],
+        ['._data.Data', '._layout.Layout']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".data"], ["._data.Data", "._layout.Layout"]
-)
diff --git a/plotly/graph_objs/layout/template/_data.py b/plotly/graph_objs/layout/template/_data.py
index 024a996eef1..10801a7105c 100644
--- a/plotly/graph_objs/layout/template/_data.py
+++ b/plotly/graph_objs/layout/template/_data.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class Data(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.template"
-    _path_str = "layout.template.data"
-    _valid_props = {
-        "bar",
-        "barpolar",
-        "box",
-        "candlestick",
-        "carpet",
-        "choropleth",
-        "choroplethmap",
-        "choroplethmapbox",
-        "cone",
-        "contour",
-        "contourcarpet",
-        "densitymap",
-        "densitymapbox",
-        "funnel",
-        "funnelarea",
-        "heatmap",
-        "histogram",
-        "histogram2d",
-        "histogram2dcontour",
-        "icicle",
-        "image",
-        "indicator",
-        "isosurface",
-        "mesh3d",
-        "ohlc",
-        "parcats",
-        "parcoords",
-        "pie",
-        "sankey",
-        "scatter",
-        "scatter3d",
-        "scattercarpet",
-        "scattergeo",
-        "scattergl",
-        "scattermap",
-        "scattermapbox",
-        "scatterpolar",
-        "scatterpolargl",
-        "scattersmith",
-        "scatterternary",
-        "splom",
-        "streamtube",
-        "sunburst",
-        "surface",
-        "table",
-        "treemap",
-        "violin",
-        "volume",
-        "waterfall",
-    }
+    _parent_path_str = 'layout.template'
+    _path_str = 'layout.template.data'
+    _valid_props = {"bar", "barpolar", "box", "candlestick", "carpet", "choropleth", "choroplethmap", "choroplethmapbox", "cone", "contour", "contourcarpet", "densitymap", "densitymapbox", "funnel", "funnelarea", "heatmap", "histogram", "histogram2d", "histogram2dcontour", "icicle", "image", "indicator", "isosurface", "mesh3d", "ohlc", "parcats", "parcoords", "pie", "sankey", "scatter", "scatter3d", "scattercarpet", "scattergeo", "scattergl", "scattermap", "scattermapbox", "scatterpolar", "scatterpolargl", "scattersmith", "scatterternary", "splom", "streamtube", "sunburst", "surface", "table", "treemap", "violin", "volume", "waterfall"}
 
     @property
     def barpolar(self):
@@ -74,11 +28,11 @@ def barpolar(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Barpolar]
         """
-        return self["barpolar"]
+        return self['barpolar']
 
     @barpolar.setter
     def barpolar(self, val):
-        self["barpolar"] = val
+        self['barpolar'] = val
 
     @property
     def bar(self):
@@ -93,11 +47,11 @@ def bar(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Bar]
         """
-        return self["bar"]
+        return self['bar']
 
     @bar.setter
     def bar(self, val):
-        self["bar"] = val
+        self['bar'] = val
 
     @property
     def box(self):
@@ -112,11 +66,11 @@ def box(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Box]
         """
-        return self["box"]
+        return self['box']
 
     @box.setter
     def box(self, val):
-        self["box"] = val
+        self['box'] = val
 
     @property
     def candlestick(self):
@@ -131,11 +85,11 @@ def candlestick(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Candlestick]
         """
-        return self["candlestick"]
+        return self['candlestick']
 
     @candlestick.setter
     def candlestick(self, val):
-        self["candlestick"] = val
+        self['candlestick'] = val
 
     @property
     def carpet(self):
@@ -150,11 +104,11 @@ def carpet(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Carpet]
         """
-        return self["carpet"]
+        return self['carpet']
 
     @carpet.setter
     def carpet(self, val):
-        self["carpet"] = val
+        self['carpet'] = val
 
     @property
     def choroplethmapbox(self):
@@ -169,11 +123,11 @@ def choroplethmapbox(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Choroplethmapbox]
         """
-        return self["choroplethmapbox"]
+        return self['choroplethmapbox']
 
     @choroplethmapbox.setter
     def choroplethmapbox(self, val):
-        self["choroplethmapbox"] = val
+        self['choroplethmapbox'] = val
 
     @property
     def choroplethmap(self):
@@ -188,11 +142,11 @@ def choroplethmap(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Choroplethmap]
         """
-        return self["choroplethmap"]
+        return self['choroplethmap']
 
     @choroplethmap.setter
     def choroplethmap(self, val):
-        self["choroplethmap"] = val
+        self['choroplethmap'] = val
 
     @property
     def choropleth(self):
@@ -207,11 +161,11 @@ def choropleth(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Choropleth]
         """
-        return self["choropleth"]
+        return self['choropleth']
 
     @choropleth.setter
     def choropleth(self, val):
-        self["choropleth"] = val
+        self['choropleth'] = val
 
     @property
     def cone(self):
@@ -226,11 +180,11 @@ def cone(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Cone]
         """
-        return self["cone"]
+        return self['cone']
 
     @cone.setter
     def cone(self, val):
-        self["cone"] = val
+        self['cone'] = val
 
     @property
     def contourcarpet(self):
@@ -245,11 +199,11 @@ def contourcarpet(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Contourcarpet]
         """
-        return self["contourcarpet"]
+        return self['contourcarpet']
 
     @contourcarpet.setter
     def contourcarpet(self, val):
-        self["contourcarpet"] = val
+        self['contourcarpet'] = val
 
     @property
     def contour(self):
@@ -264,11 +218,11 @@ def contour(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Contour]
         """
-        return self["contour"]
+        return self['contour']
 
     @contour.setter
     def contour(self, val):
-        self["contour"] = val
+        self['contour'] = val
 
     @property
     def densitymapbox(self):
@@ -283,11 +237,11 @@ def densitymapbox(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Densitymapbox]
         """
-        return self["densitymapbox"]
+        return self['densitymapbox']
 
     @densitymapbox.setter
     def densitymapbox(self, val):
-        self["densitymapbox"] = val
+        self['densitymapbox'] = val
 
     @property
     def densitymap(self):
@@ -302,11 +256,11 @@ def densitymap(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Densitymap]
         """
-        return self["densitymap"]
+        return self['densitymap']
 
     @densitymap.setter
     def densitymap(self, val):
-        self["densitymap"] = val
+        self['densitymap'] = val
 
     @property
     def funnelarea(self):
@@ -321,11 +275,11 @@ def funnelarea(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Funnelarea]
         """
-        return self["funnelarea"]
+        return self['funnelarea']
 
     @funnelarea.setter
     def funnelarea(self, val):
-        self["funnelarea"] = val
+        self['funnelarea'] = val
 
     @property
     def funnel(self):
@@ -340,11 +294,11 @@ def funnel(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Funnel]
         """
-        return self["funnel"]
+        return self['funnel']
 
     @funnel.setter
     def funnel(self, val):
-        self["funnel"] = val
+        self['funnel'] = val
 
     @property
     def heatmap(self):
@@ -359,11 +313,11 @@ def heatmap(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Heatmap]
         """
-        return self["heatmap"]
+        return self['heatmap']
 
     @heatmap.setter
     def heatmap(self, val):
-        self["heatmap"] = val
+        self['heatmap'] = val
 
     @property
     def histogram2dcontour(self):
@@ -378,11 +332,11 @@ def histogram2dcontour(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Histogram2dContour]
         """
-        return self["histogram2dcontour"]
+        return self['histogram2dcontour']
 
     @histogram2dcontour.setter
     def histogram2dcontour(self, val):
-        self["histogram2dcontour"] = val
+        self['histogram2dcontour'] = val
 
     @property
     def histogram2d(self):
@@ -397,11 +351,11 @@ def histogram2d(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Histogram2d]
         """
-        return self["histogram2d"]
+        return self['histogram2d']
 
     @histogram2d.setter
     def histogram2d(self, val):
-        self["histogram2d"] = val
+        self['histogram2d'] = val
 
     @property
     def histogram(self):
@@ -416,11 +370,11 @@ def histogram(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Histogram]
         """
-        return self["histogram"]
+        return self['histogram']
 
     @histogram.setter
     def histogram(self, val):
-        self["histogram"] = val
+        self['histogram'] = val
 
     @property
     def icicle(self):
@@ -435,11 +389,11 @@ def icicle(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Icicle]
         """
-        return self["icicle"]
+        return self['icicle']
 
     @icicle.setter
     def icicle(self, val):
-        self["icicle"] = val
+        self['icicle'] = val
 
     @property
     def image(self):
@@ -454,11 +408,11 @@ def image(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Image]
         """
-        return self["image"]
+        return self['image']
 
     @image.setter
     def image(self, val):
-        self["image"] = val
+        self['image'] = val
 
     @property
     def indicator(self):
@@ -473,11 +427,11 @@ def indicator(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Indicator]
         """
-        return self["indicator"]
+        return self['indicator']
 
     @indicator.setter
     def indicator(self, val):
-        self["indicator"] = val
+        self['indicator'] = val
 
     @property
     def isosurface(self):
@@ -492,11 +446,11 @@ def isosurface(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Isosurface]
         """
-        return self["isosurface"]
+        return self['isosurface']
 
     @isosurface.setter
     def isosurface(self, val):
-        self["isosurface"] = val
+        self['isosurface'] = val
 
     @property
     def mesh3d(self):
@@ -511,11 +465,11 @@ def mesh3d(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Mesh3d]
         """
-        return self["mesh3d"]
+        return self['mesh3d']
 
     @mesh3d.setter
     def mesh3d(self, val):
-        self["mesh3d"] = val
+        self['mesh3d'] = val
 
     @property
     def ohlc(self):
@@ -530,11 +484,11 @@ def ohlc(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Ohlc]
         """
-        return self["ohlc"]
+        return self['ohlc']
 
     @ohlc.setter
     def ohlc(self, val):
-        self["ohlc"] = val
+        self['ohlc'] = val
 
     @property
     def parcats(self):
@@ -549,11 +503,11 @@ def parcats(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Parcats]
         """
-        return self["parcats"]
+        return self['parcats']
 
     @parcats.setter
     def parcats(self, val):
-        self["parcats"] = val
+        self['parcats'] = val
 
     @property
     def parcoords(self):
@@ -568,11 +522,11 @@ def parcoords(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Parcoords]
         """
-        return self["parcoords"]
+        return self['parcoords']
 
     @parcoords.setter
     def parcoords(self, val):
-        self["parcoords"] = val
+        self['parcoords'] = val
 
     @property
     def pie(self):
@@ -587,11 +541,11 @@ def pie(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Pie]
         """
-        return self["pie"]
+        return self['pie']
 
     @pie.setter
     def pie(self, val):
-        self["pie"] = val
+        self['pie'] = val
 
     @property
     def sankey(self):
@@ -606,11 +560,11 @@ def sankey(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Sankey]
         """
-        return self["sankey"]
+        return self['sankey']
 
     @sankey.setter
     def sankey(self, val):
-        self["sankey"] = val
+        self['sankey'] = val
 
     @property
     def scatter3d(self):
@@ -625,11 +579,11 @@ def scatter3d(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Scatter3d]
         """
-        return self["scatter3d"]
+        return self['scatter3d']
 
     @scatter3d.setter
     def scatter3d(self, val):
-        self["scatter3d"] = val
+        self['scatter3d'] = val
 
     @property
     def scattercarpet(self):
@@ -644,11 +598,11 @@ def scattercarpet(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Scattercarpet]
         """
-        return self["scattercarpet"]
+        return self['scattercarpet']
 
     @scattercarpet.setter
     def scattercarpet(self, val):
-        self["scattercarpet"] = val
+        self['scattercarpet'] = val
 
     @property
     def scattergeo(self):
@@ -663,11 +617,11 @@ def scattergeo(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Scattergeo]
         """
-        return self["scattergeo"]
+        return self['scattergeo']
 
     @scattergeo.setter
     def scattergeo(self, val):
-        self["scattergeo"] = val
+        self['scattergeo'] = val
 
     @property
     def scattergl(self):
@@ -682,11 +636,11 @@ def scattergl(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Scattergl]
         """
-        return self["scattergl"]
+        return self['scattergl']
 
     @scattergl.setter
     def scattergl(self, val):
-        self["scattergl"] = val
+        self['scattergl'] = val
 
     @property
     def scattermapbox(self):
@@ -701,11 +655,11 @@ def scattermapbox(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Scattermapbox]
         """
-        return self["scattermapbox"]
+        return self['scattermapbox']
 
     @scattermapbox.setter
     def scattermapbox(self, val):
-        self["scattermapbox"] = val
+        self['scattermapbox'] = val
 
     @property
     def scattermap(self):
@@ -720,11 +674,11 @@ def scattermap(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Scattermap]
         """
-        return self["scattermap"]
+        return self['scattermap']
 
     @scattermap.setter
     def scattermap(self, val):
-        self["scattermap"] = val
+        self['scattermap'] = val
 
     @property
     def scatterpolargl(self):
@@ -739,11 +693,11 @@ def scatterpolargl(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Scatterpolargl]
         """
-        return self["scatterpolargl"]
+        return self['scatterpolargl']
 
     @scatterpolargl.setter
     def scatterpolargl(self, val):
-        self["scatterpolargl"] = val
+        self['scatterpolargl'] = val
 
     @property
     def scatterpolar(self):
@@ -758,11 +712,11 @@ def scatterpolar(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Scatterpolar]
         """
-        return self["scatterpolar"]
+        return self['scatterpolar']
 
     @scatterpolar.setter
     def scatterpolar(self, val):
-        self["scatterpolar"] = val
+        self['scatterpolar'] = val
 
     @property
     def scatter(self):
@@ -777,11 +731,11 @@ def scatter(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Scatter]
         """
-        return self["scatter"]
+        return self['scatter']
 
     @scatter.setter
     def scatter(self, val):
-        self["scatter"] = val
+        self['scatter'] = val
 
     @property
     def scattersmith(self):
@@ -796,11 +750,11 @@ def scattersmith(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Scattersmith]
         """
-        return self["scattersmith"]
+        return self['scattersmith']
 
     @scattersmith.setter
     def scattersmith(self, val):
-        self["scattersmith"] = val
+        self['scattersmith'] = val
 
     @property
     def scatterternary(self):
@@ -815,11 +769,11 @@ def scatterternary(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Scatterternary]
         """
-        return self["scatterternary"]
+        return self['scatterternary']
 
     @scatterternary.setter
     def scatterternary(self, val):
-        self["scatterternary"] = val
+        self['scatterternary'] = val
 
     @property
     def splom(self):
@@ -834,11 +788,11 @@ def splom(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Splom]
         """
-        return self["splom"]
+        return self['splom']
 
     @splom.setter
     def splom(self, val):
-        self["splom"] = val
+        self['splom'] = val
 
     @property
     def streamtube(self):
@@ -853,11 +807,11 @@ def streamtube(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Streamtube]
         """
-        return self["streamtube"]
+        return self['streamtube']
 
     @streamtube.setter
     def streamtube(self, val):
-        self["streamtube"] = val
+        self['streamtube'] = val
 
     @property
     def sunburst(self):
@@ -872,11 +826,11 @@ def sunburst(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Sunburst]
         """
-        return self["sunburst"]
+        return self['sunburst']
 
     @sunburst.setter
     def sunburst(self, val):
-        self["sunburst"] = val
+        self['sunburst'] = val
 
     @property
     def surface(self):
@@ -891,11 +845,11 @@ def surface(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Surface]
         """
-        return self["surface"]
+        return self['surface']
 
     @surface.setter
     def surface(self, val):
-        self["surface"] = val
+        self['surface'] = val
 
     @property
     def table(self):
@@ -910,11 +864,11 @@ def table(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Table]
         """
-        return self["table"]
+        return self['table']
 
     @table.setter
     def table(self, val):
-        self["table"] = val
+        self['table'] = val
 
     @property
     def treemap(self):
@@ -929,11 +883,11 @@ def treemap(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Treemap]
         """
-        return self["treemap"]
+        return self['treemap']
 
     @treemap.setter
     def treemap(self, val):
-        self["treemap"] = val
+        self['treemap'] = val
 
     @property
     def violin(self):
@@ -948,11 +902,11 @@ def violin(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Violin]
         """
-        return self["violin"]
+        return self['violin']
 
     @violin.setter
     def violin(self, val):
-        self["violin"] = val
+        self['violin'] = val
 
     @property
     def volume(self):
@@ -967,11 +921,11 @@ def volume(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Volume]
         """
-        return self["volume"]
+        return self['volume']
 
     @volume.setter
     def volume(self, val):
-        self["volume"] = val
+        self['volume'] = val
 
     @property
     def waterfall(self):
@@ -986,11 +940,11 @@ def waterfall(self):
         -------
         tuple[plotly.graph_objs.layout.template.data.Waterfall]
         """
-        return self["waterfall"]
+        return self['waterfall']
 
     @waterfall.setter
     def waterfall(self, val):
-        self["waterfall"] = val
+        self['waterfall'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1145,61 +1099,59 @@ def _prop_descriptions(self):
             A tuple of :class:`plotly.graph_objects.Waterfall`
             instances or dicts with compatible properties
         """
-
-    def __init__(
-        self,
-        arg=None,
-        barpolar=None,
-        bar=None,
-        box=None,
-        candlestick=None,
-        carpet=None,
-        choroplethmapbox=None,
-        choroplethmap=None,
-        choropleth=None,
-        cone=None,
-        contourcarpet=None,
-        contour=None,
-        densitymapbox=None,
-        densitymap=None,
-        funnelarea=None,
-        funnel=None,
-        heatmap=None,
-        histogram2dcontour=None,
-        histogram2d=None,
-        histogram=None,
-        icicle=None,
-        image=None,
-        indicator=None,
-        isosurface=None,
-        mesh3d=None,
-        ohlc=None,
-        parcats=None,
-        parcoords=None,
-        pie=None,
-        sankey=None,
-        scatter3d=None,
-        scattercarpet=None,
-        scattergeo=None,
-        scattergl=None,
-        scattermapbox=None,
-        scattermap=None,
-        scatterpolargl=None,
-        scatterpolar=None,
-        scatter=None,
-        scattersmith=None,
-        scatterternary=None,
-        splom=None,
-        streamtube=None,
-        sunburst=None,
-        surface=None,
-        table=None,
-        treemap=None,
-        violin=None,
-        volume=None,
-        waterfall=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            barpolar=None,
+            bar=None,
+            box=None,
+            candlestick=None,
+            carpet=None,
+            choroplethmapbox=None,
+            choroplethmap=None,
+            choropleth=None,
+            cone=None,
+            contourcarpet=None,
+            contour=None,
+            densitymapbox=None,
+            densitymap=None,
+            funnelarea=None,
+            funnel=None,
+            heatmap=None,
+            histogram2dcontour=None,
+            histogram2d=None,
+            histogram=None,
+            icicle=None,
+            image=None,
+            indicator=None,
+            isosurface=None,
+            mesh3d=None,
+            ohlc=None,
+            parcats=None,
+            parcoords=None,
+            pie=None,
+            sankey=None,
+            scatter3d=None,
+            scattercarpet=None,
+            scattergeo=None,
+            scattergl=None,
+            scattermapbox=None,
+            scattermap=None,
+            scatterpolargl=None,
+            scatterpolar=None,
+            scatter=None,
+            scattersmith=None,
+            scatterternary=None,
+            splom=None,
+            streamtube=None,
+            sunburst=None,
+            surface=None,
+            table=None,
+            treemap=None,
+            violin=None,
+            volume=None,
+            waterfall=None,
+            **kwargs
+        ):
         """
         Construct a new Data object
 
@@ -1363,9 +1315,9 @@ def __init__(
         -------
         Data
         """
-        super().__init__("data")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('data')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1375,64 +1327,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.template.Data
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.template.Data`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("barpolar", arg, barpolar)
-        self._set_property("bar", arg, bar)
-        self._set_property("box", arg, box)
-        self._set_property("candlestick", arg, candlestick)
-        self._set_property("carpet", arg, carpet)
-        self._set_property("choroplethmapbox", arg, choroplethmapbox)
-        self._set_property("choroplethmap", arg, choroplethmap)
-        self._set_property("choropleth", arg, choropleth)
-        self._set_property("cone", arg, cone)
-        self._set_property("contourcarpet", arg, contourcarpet)
-        self._set_property("contour", arg, contour)
-        self._set_property("densitymapbox", arg, densitymapbox)
-        self._set_property("densitymap", arg, densitymap)
-        self._set_property("funnelarea", arg, funnelarea)
-        self._set_property("funnel", arg, funnel)
-        self._set_property("heatmap", arg, heatmap)
-        self._set_property("histogram2dcontour", arg, histogram2dcontour)
-        self._set_property("histogram2d", arg, histogram2d)
-        self._set_property("histogram", arg, histogram)
-        self._set_property("icicle", arg, icicle)
-        self._set_property("image", arg, image)
-        self._set_property("indicator", arg, indicator)
-        self._set_property("isosurface", arg, isosurface)
-        self._set_property("mesh3d", arg, mesh3d)
-        self._set_property("ohlc", arg, ohlc)
-        self._set_property("parcats", arg, parcats)
-        self._set_property("parcoords", arg, parcoords)
-        self._set_property("pie", arg, pie)
-        self._set_property("sankey", arg, sankey)
-        self._set_property("scatter3d", arg, scatter3d)
-        self._set_property("scattercarpet", arg, scattercarpet)
-        self._set_property("scattergeo", arg, scattergeo)
-        self._set_property("scattergl", arg, scattergl)
-        self._set_property("scattermapbox", arg, scattermapbox)
-        self._set_property("scattermap", arg, scattermap)
-        self._set_property("scatterpolargl", arg, scatterpolargl)
-        self._set_property("scatterpolar", arg, scatterpolar)
-        self._set_property("scatter", arg, scatter)
-        self._set_property("scattersmith", arg, scattersmith)
-        self._set_property("scatterternary", arg, scatterternary)
-        self._set_property("splom", arg, splom)
-        self._set_property("streamtube", arg, streamtube)
-        self._set_property("sunburst", arg, sunburst)
-        self._set_property("surface", arg, surface)
-        self._set_property("table", arg, table)
-        self._set_property("treemap", arg, treemap)
-        self._set_property("violin", arg, violin)
-        self._set_property("volume", arg, volume)
-        self._set_property("waterfall", arg, waterfall)
+an instance of :class:`plotly.graph_objs.layout.template.Data`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('barpolar', arg, barpolar)
+        self._set_property('bar', arg, bar)
+        self._set_property('box', arg, box)
+        self._set_property('candlestick', arg, candlestick)
+        self._set_property('carpet', arg, carpet)
+        self._set_property('choroplethmapbox', arg, choroplethmapbox)
+        self._set_property('choroplethmap', arg, choroplethmap)
+        self._set_property('choropleth', arg, choropleth)
+        self._set_property('cone', arg, cone)
+        self._set_property('contourcarpet', arg, contourcarpet)
+        self._set_property('contour', arg, contour)
+        self._set_property('densitymapbox', arg, densitymapbox)
+        self._set_property('densitymap', arg, densitymap)
+        self._set_property('funnelarea', arg, funnelarea)
+        self._set_property('funnel', arg, funnel)
+        self._set_property('heatmap', arg, heatmap)
+        self._set_property('histogram2dcontour', arg, histogram2dcontour)
+        self._set_property('histogram2d', arg, histogram2d)
+        self._set_property('histogram', arg, histogram)
+        self._set_property('icicle', arg, icicle)
+        self._set_property('image', arg, image)
+        self._set_property('indicator', arg, indicator)
+        self._set_property('isosurface', arg, isosurface)
+        self._set_property('mesh3d', arg, mesh3d)
+        self._set_property('ohlc', arg, ohlc)
+        self._set_property('parcats', arg, parcats)
+        self._set_property('parcoords', arg, parcoords)
+        self._set_property('pie', arg, pie)
+        self._set_property('sankey', arg, sankey)
+        self._set_property('scatter3d', arg, scatter3d)
+        self._set_property('scattercarpet', arg, scattercarpet)
+        self._set_property('scattergeo', arg, scattergeo)
+        self._set_property('scattergl', arg, scattergl)
+        self._set_property('scattermapbox', arg, scattermapbox)
+        self._set_property('scattermap', arg, scattermap)
+        self._set_property('scatterpolargl', arg, scatterpolargl)
+        self._set_property('scatterpolar', arg, scatterpolar)
+        self._set_property('scatter', arg, scatter)
+        self._set_property('scattersmith', arg, scattersmith)
+        self._set_property('scatterternary', arg, scatterternary)
+        self._set_property('splom', arg, splom)
+        self._set_property('streamtube', arg, streamtube)
+        self._set_property('sunburst', arg, sunburst)
+        self._set_property('surface', arg, surface)
+        self._set_property('table', arg, table)
+        self._set_property('treemap', arg, treemap)
+        self._set_property('violin', arg, violin)
+        self._set_property('volume', arg, volume)
+        self._set_property('waterfall', arg, waterfall)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/template/_layout.py b/plotly/graph_objs/layout/template/_layout.py
index 058b60b807d..ffa8e3b4f71 100644
--- a/plotly/graph_objs/layout/template/_layout.py
+++ b/plotly/graph_objs/layout/template/_layout.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Layout
+
+
+from plotly.graph_objs import Layout
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/__init__.py b/plotly/graph_objs/layout/template/data/__init__.py
index ef2921907ee..2e798391f0f 100644
--- a/plotly/graph_objs/layout/template/data/__init__.py
+++ b/plotly/graph_objs/layout/template/data/__init__.py
@@ -1,58 +1,61 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._bar import Bar
+    from ._barpolar import Barpolar
+    from ._box import Box
+    from ._candlestick import Candlestick
+    from ._carpet import Carpet
+    from ._choropleth import Choropleth
+    from ._choroplethmap import Choroplethmap
+    from ._choroplethmapbox import Choroplethmapbox
+    from ._cone import Cone
+    from ._contour import Contour
+    from ._contourcarpet import Contourcarpet
+    from ._densitymap import Densitymap
+    from ._densitymapbox import Densitymapbox
+    from ._funnel import Funnel
+    from ._funnelarea import Funnelarea
+    from ._heatmap import Heatmap
+    from ._histogram import Histogram
+    from ._histogram2d import Histogram2d
+    from ._histogram2dcontour import Histogram2dContour
+    from ._icicle import Icicle
+    from ._image import Image
+    from ._indicator import Indicator
+    from ._isosurface import Isosurface
+    from ._mesh3d import Mesh3d
+    from ._ohlc import Ohlc
+    from ._parcats import Parcats
+    from ._parcoords import Parcoords
+    from ._pie import Pie
+    from ._sankey import Sankey
+    from ._scatter import Scatter
+    from ._scatter3d import Scatter3d
+    from ._scattercarpet import Scattercarpet
+    from ._scattergeo import Scattergeo
+    from ._scattergl import Scattergl
+    from ._scattermap import Scattermap
+    from ._scattermapbox import Scattermapbox
+    from ._scatterpolar import Scatterpolar
+    from ._scatterpolargl import Scatterpolargl
+    from ._scattersmith import Scattersmith
+    from ._scatterternary import Scatterternary
+    from ._splom import Splom
+    from ._streamtube import Streamtube
+    from ._sunburst import Sunburst
+    from ._surface import Surface
+    from ._table import Table
+    from ._treemap import Treemap
+    from ._violin import Violin
+    from ._volume import Volume
+    from ._waterfall import Waterfall
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._bar.Bar', '._barpolar.Barpolar', '._box.Box', '._candlestick.Candlestick', '._carpet.Carpet', '._choropleth.Choropleth', '._choroplethmap.Choroplethmap', '._choroplethmapbox.Choroplethmapbox', '._cone.Cone', '._contour.Contour', '._contourcarpet.Contourcarpet', '._densitymap.Densitymap', '._densitymapbox.Densitymapbox', '._funnel.Funnel', '._funnelarea.Funnelarea', '._heatmap.Heatmap', '._histogram.Histogram', '._histogram2d.Histogram2d', '._histogram2dcontour.Histogram2dContour', '._icicle.Icicle', '._image.Image', '._indicator.Indicator', '._isosurface.Isosurface', '._mesh3d.Mesh3d', '._ohlc.Ohlc', '._parcats.Parcats', '._parcoords.Parcoords', '._pie.Pie', '._sankey.Sankey', '._scatter.Scatter', '._scatter3d.Scatter3d', '._scattercarpet.Scattercarpet', '._scattergeo.Scattergeo', '._scattergl.Scattergl', '._scattermap.Scattermap', '._scattermapbox.Scattermapbox', '._scatterpolar.Scatterpolar', '._scatterpolargl.Scatterpolargl', '._scattersmith.Scattersmith', '._scatterternary.Scatterternary', '._splom.Splom', '._streamtube.Streamtube', '._sunburst.Sunburst', '._surface.Surface', '._table.Table', '._treemap.Treemap', '._violin.Violin', '._volume.Volume', '._waterfall.Waterfall']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._bar.Bar",
-        "._barpolar.Barpolar",
-        "._box.Box",
-        "._candlestick.Candlestick",
-        "._carpet.Carpet",
-        "._choropleth.Choropleth",
-        "._choroplethmap.Choroplethmap",
-        "._choroplethmapbox.Choroplethmapbox",
-        "._cone.Cone",
-        "._contour.Contour",
-        "._contourcarpet.Contourcarpet",
-        "._densitymap.Densitymap",
-        "._densitymapbox.Densitymapbox",
-        "._funnel.Funnel",
-        "._funnelarea.Funnelarea",
-        "._heatmap.Heatmap",
-        "._histogram.Histogram",
-        "._histogram2d.Histogram2d",
-        "._histogram2dcontour.Histogram2dContour",
-        "._icicle.Icicle",
-        "._image.Image",
-        "._indicator.Indicator",
-        "._isosurface.Isosurface",
-        "._mesh3d.Mesh3d",
-        "._ohlc.Ohlc",
-        "._parcats.Parcats",
-        "._parcoords.Parcoords",
-        "._pie.Pie",
-        "._sankey.Sankey",
-        "._scatter.Scatter",
-        "._scatter3d.Scatter3d",
-        "._scattercarpet.Scattercarpet",
-        "._scattergeo.Scattergeo",
-        "._scattergl.Scattergl",
-        "._scattermap.Scattermap",
-        "._scattermapbox.Scattermapbox",
-        "._scatterpolar.Scatterpolar",
-        "._scatterpolargl.Scatterpolargl",
-        "._scattersmith.Scattersmith",
-        "._scatterternary.Scatterternary",
-        "._splom.Splom",
-        "._streamtube.Streamtube",
-        "._sunburst.Sunburst",
-        "._surface.Surface",
-        "._table.Table",
-        "._treemap.Treemap",
-        "._violin.Violin",
-        "._volume.Volume",
-        "._waterfall.Waterfall",
-    ],
-)
diff --git a/plotly/graph_objs/layout/template/data/_bar.py b/plotly/graph_objs/layout/template/data/_bar.py
index 5a800e64085..943a96e3591 100644
--- a/plotly/graph_objs/layout/template/data/_bar.py
+++ b/plotly/graph_objs/layout/template/data/_bar.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Bar
+
+
+from plotly.graph_objs import Bar
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_barpolar.py b/plotly/graph_objs/layout/template/data/_barpolar.py
index 18abed8bbb6..7fbf124b3d9 100644
--- a/plotly/graph_objs/layout/template/data/_barpolar.py
+++ b/plotly/graph_objs/layout/template/data/_barpolar.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Barpolar
+
+
+from plotly.graph_objs import Barpolar
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_box.py b/plotly/graph_objs/layout/template/data/_box.py
index ffdd1d92139..f322aff8495 100644
--- a/plotly/graph_objs/layout/template/data/_box.py
+++ b/plotly/graph_objs/layout/template/data/_box.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Box
+
+
+from plotly.graph_objs import Box
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_candlestick.py b/plotly/graph_objs/layout/template/data/_candlestick.py
index 5d11b448593..5aa709f383a 100644
--- a/plotly/graph_objs/layout/template/data/_candlestick.py
+++ b/plotly/graph_objs/layout/template/data/_candlestick.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Candlestick
+
+
+from plotly.graph_objs import Candlestick
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_carpet.py b/plotly/graph_objs/layout/template/data/_carpet.py
index b923d73904d..bddc6ffa3f3 100644
--- a/plotly/graph_objs/layout/template/data/_carpet.py
+++ b/plotly/graph_objs/layout/template/data/_carpet.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Carpet
+
+
+from plotly.graph_objs import Carpet
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_choropleth.py b/plotly/graph_objs/layout/template/data/_choropleth.py
index 733e12709cc..9bc87e67901 100644
--- a/plotly/graph_objs/layout/template/data/_choropleth.py
+++ b/plotly/graph_objs/layout/template/data/_choropleth.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Choropleth
+
+
+from plotly.graph_objs import Choropleth
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_choroplethmap.py b/plotly/graph_objs/layout/template/data/_choroplethmap.py
index 855102a43f2..c3eae799b67 100644
--- a/plotly/graph_objs/layout/template/data/_choroplethmap.py
+++ b/plotly/graph_objs/layout/template/data/_choroplethmap.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Choroplethmap
+
+
+from plotly.graph_objs import Choroplethmap
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_choroplethmapbox.py b/plotly/graph_objs/layout/template/data/_choroplethmapbox.py
index 220b93564e7..70273c10af0 100644
--- a/plotly/graph_objs/layout/template/data/_choroplethmapbox.py
+++ b/plotly/graph_objs/layout/template/data/_choroplethmapbox.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Choroplethmapbox
+
+
+from plotly.graph_objs import Choroplethmapbox
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_cone.py b/plotly/graph_objs/layout/template/data/_cone.py
index 7a284527a8d..428306a94c8 100644
--- a/plotly/graph_objs/layout/template/data/_cone.py
+++ b/plotly/graph_objs/layout/template/data/_cone.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Cone
+
+
+from plotly.graph_objs import Cone
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_contour.py b/plotly/graph_objs/layout/template/data/_contour.py
index e474909a4d2..690b8b0ab87 100644
--- a/plotly/graph_objs/layout/template/data/_contour.py
+++ b/plotly/graph_objs/layout/template/data/_contour.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Contour
+
+
+from plotly.graph_objs import Contour
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_contourcarpet.py b/plotly/graph_objs/layout/template/data/_contourcarpet.py
index 6240faf5100..00a1985d017 100644
--- a/plotly/graph_objs/layout/template/data/_contourcarpet.py
+++ b/plotly/graph_objs/layout/template/data/_contourcarpet.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Contourcarpet
+
+
+from plotly.graph_objs import Contourcarpet
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_densitymap.py b/plotly/graph_objs/layout/template/data/_densitymap.py
index c73e108c7cf..b00dfa41fe6 100644
--- a/plotly/graph_objs/layout/template/data/_densitymap.py
+++ b/plotly/graph_objs/layout/template/data/_densitymap.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Densitymap
+
+
+from plotly.graph_objs import Densitymap
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_densitymapbox.py b/plotly/graph_objs/layout/template/data/_densitymapbox.py
index d655b21ab3f..ac527bdcff5 100644
--- a/plotly/graph_objs/layout/template/data/_densitymapbox.py
+++ b/plotly/graph_objs/layout/template/data/_densitymapbox.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Densitymapbox
+
+
+from plotly.graph_objs import Densitymapbox
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_funnel.py b/plotly/graph_objs/layout/template/data/_funnel.py
index 70e2ba74d48..bc8bdc29374 100644
--- a/plotly/graph_objs/layout/template/data/_funnel.py
+++ b/plotly/graph_objs/layout/template/data/_funnel.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Funnel
+
+
+from plotly.graph_objs import Funnel
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_funnelarea.py b/plotly/graph_objs/layout/template/data/_funnelarea.py
index 242d0fcc962..51fcca01d6c 100644
--- a/plotly/graph_objs/layout/template/data/_funnelarea.py
+++ b/plotly/graph_objs/layout/template/data/_funnelarea.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Funnelarea
+
+
+from plotly.graph_objs import Funnelarea
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_heatmap.py b/plotly/graph_objs/layout/template/data/_heatmap.py
index 6098ee83e70..54e1a235ba1 100644
--- a/plotly/graph_objs/layout/template/data/_heatmap.py
+++ b/plotly/graph_objs/layout/template/data/_heatmap.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Heatmap
+
+
+from plotly.graph_objs import Heatmap
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_histogram.py b/plotly/graph_objs/layout/template/data/_histogram.py
index 7ba4c6df2fe..03e7bf05b25 100644
--- a/plotly/graph_objs/layout/template/data/_histogram.py
+++ b/plotly/graph_objs/layout/template/data/_histogram.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Histogram
+
+
+from plotly.graph_objs import Histogram
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_histogram2d.py b/plotly/graph_objs/layout/template/data/_histogram2d.py
index 710f7f99296..8cf2929c7b9 100644
--- a/plotly/graph_objs/layout/template/data/_histogram2d.py
+++ b/plotly/graph_objs/layout/template/data/_histogram2d.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Histogram2d
+
+
+from plotly.graph_objs import Histogram2d
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_histogram2dcontour.py b/plotly/graph_objs/layout/template/data/_histogram2dcontour.py
index 94af41aa922..b949ed98818 100644
--- a/plotly/graph_objs/layout/template/data/_histogram2dcontour.py
+++ b/plotly/graph_objs/layout/template/data/_histogram2dcontour.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Histogram2dContour
+
+
+from plotly.graph_objs import Histogram2dContour
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_icicle.py b/plotly/graph_objs/layout/template/data/_icicle.py
index 6749cbe60ab..d11c61aa155 100644
--- a/plotly/graph_objs/layout/template/data/_icicle.py
+++ b/plotly/graph_objs/layout/template/data/_icicle.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Icicle
+
+
+from plotly.graph_objs import Icicle
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_image.py b/plotly/graph_objs/layout/template/data/_image.py
index 828920ac697..9ebb0d113be 100644
--- a/plotly/graph_objs/layout/template/data/_image.py
+++ b/plotly/graph_objs/layout/template/data/_image.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Image
+
+
+from plotly.graph_objs import Image
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_indicator.py b/plotly/graph_objs/layout/template/data/_indicator.py
index a5a488f8bbe..6e6e3cb1ec8 100644
--- a/plotly/graph_objs/layout/template/data/_indicator.py
+++ b/plotly/graph_objs/layout/template/data/_indicator.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Indicator
+
+
+from plotly.graph_objs import Indicator
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_isosurface.py b/plotly/graph_objs/layout/template/data/_isosurface.py
index 5a7885ab64b..f30c6b726f4 100644
--- a/plotly/graph_objs/layout/template/data/_isosurface.py
+++ b/plotly/graph_objs/layout/template/data/_isosurface.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Isosurface
+
+
+from plotly.graph_objs import Isosurface
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_mesh3d.py b/plotly/graph_objs/layout/template/data/_mesh3d.py
index 2172a23bd4b..25b9c35852f 100644
--- a/plotly/graph_objs/layout/template/data/_mesh3d.py
+++ b/plotly/graph_objs/layout/template/data/_mesh3d.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Mesh3d
+
+
+from plotly.graph_objs import Mesh3d
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_ohlc.py b/plotly/graph_objs/layout/template/data/_ohlc.py
index d3f857428cc..e463c728236 100644
--- a/plotly/graph_objs/layout/template/data/_ohlc.py
+++ b/plotly/graph_objs/layout/template/data/_ohlc.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Ohlc
+
+
+from plotly.graph_objs import Ohlc
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_parcats.py b/plotly/graph_objs/layout/template/data/_parcats.py
index 9b0290bcce8..27ece8bc1ec 100644
--- a/plotly/graph_objs/layout/template/data/_parcats.py
+++ b/plotly/graph_objs/layout/template/data/_parcats.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Parcats
+
+
+from plotly.graph_objs import Parcats
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_parcoords.py b/plotly/graph_objs/layout/template/data/_parcoords.py
index ccf5629c54f..5b9c3e1a5ed 100644
--- a/plotly/graph_objs/layout/template/data/_parcoords.py
+++ b/plotly/graph_objs/layout/template/data/_parcoords.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Parcoords
+
+
+from plotly.graph_objs import Parcoords
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_pie.py b/plotly/graph_objs/layout/template/data/_pie.py
index 0625fd28881..6a78e2c63b0 100644
--- a/plotly/graph_objs/layout/template/data/_pie.py
+++ b/plotly/graph_objs/layout/template/data/_pie.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Pie
+
+
+from plotly.graph_objs import Pie
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_sankey.py b/plotly/graph_objs/layout/template/data/_sankey.py
index b572f657ce9..c538eda0135 100644
--- a/plotly/graph_objs/layout/template/data/_sankey.py
+++ b/plotly/graph_objs/layout/template/data/_sankey.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Sankey
+
+
+from plotly.graph_objs import Sankey
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_scatter.py b/plotly/graph_objs/layout/template/data/_scatter.py
index afcfab30afa..39f6ca073fe 100644
--- a/plotly/graph_objs/layout/template/data/_scatter.py
+++ b/plotly/graph_objs/layout/template/data/_scatter.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Scatter
+
+
+from plotly.graph_objs import Scatter
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_scatter3d.py b/plotly/graph_objs/layout/template/data/_scatter3d.py
index 93146220e39..ea881b93c1a 100644
--- a/plotly/graph_objs/layout/template/data/_scatter3d.py
+++ b/plotly/graph_objs/layout/template/data/_scatter3d.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Scatter3d
+
+
+from plotly.graph_objs import Scatter3d
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_scattercarpet.py b/plotly/graph_objs/layout/template/data/_scattercarpet.py
index 26d87ca7c1c..c582b699056 100644
--- a/plotly/graph_objs/layout/template/data/_scattercarpet.py
+++ b/plotly/graph_objs/layout/template/data/_scattercarpet.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Scattercarpet
+
+
+from plotly.graph_objs import Scattercarpet
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_scattergeo.py b/plotly/graph_objs/layout/template/data/_scattergeo.py
index 34308e1a081..dcdfa774135 100644
--- a/plotly/graph_objs/layout/template/data/_scattergeo.py
+++ b/plotly/graph_objs/layout/template/data/_scattergeo.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Scattergeo
+
+
+from plotly.graph_objs import Scattergeo
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_scattergl.py b/plotly/graph_objs/layout/template/data/_scattergl.py
index 30bd3712b80..df1e5c9a3ee 100644
--- a/plotly/graph_objs/layout/template/data/_scattergl.py
+++ b/plotly/graph_objs/layout/template/data/_scattergl.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Scattergl
+
+
+from plotly.graph_objs import Scattergl
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_scattermap.py b/plotly/graph_objs/layout/template/data/_scattermap.py
index 5a494e23208..8323f4b4e69 100644
--- a/plotly/graph_objs/layout/template/data/_scattermap.py
+++ b/plotly/graph_objs/layout/template/data/_scattermap.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Scattermap
+
+
+from plotly.graph_objs import Scattermap
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_scattermapbox.py b/plotly/graph_objs/layout/template/data/_scattermapbox.py
index 6c3333aa945..00ff37e719a 100644
--- a/plotly/graph_objs/layout/template/data/_scattermapbox.py
+++ b/plotly/graph_objs/layout/template/data/_scattermapbox.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Scattermapbox
+
+
+from plotly.graph_objs import Scattermapbox
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_scatterpolar.py b/plotly/graph_objs/layout/template/data/_scatterpolar.py
index e1417b23810..656c5442eff 100644
--- a/plotly/graph_objs/layout/template/data/_scatterpolar.py
+++ b/plotly/graph_objs/layout/template/data/_scatterpolar.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Scatterpolar
+
+
+from plotly.graph_objs import Scatterpolar
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_scatterpolargl.py b/plotly/graph_objs/layout/template/data/_scatterpolargl.py
index 60b023a581b..01624697693 100644
--- a/plotly/graph_objs/layout/template/data/_scatterpolargl.py
+++ b/plotly/graph_objs/layout/template/data/_scatterpolargl.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Scatterpolargl
+
+
+from plotly.graph_objs import Scatterpolargl
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_scattersmith.py b/plotly/graph_objs/layout/template/data/_scattersmith.py
index e2dcf41bd0c..1aab38fe63b 100644
--- a/plotly/graph_objs/layout/template/data/_scattersmith.py
+++ b/plotly/graph_objs/layout/template/data/_scattersmith.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Scattersmith
+
+
+from plotly.graph_objs import Scattersmith
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_scatterternary.py b/plotly/graph_objs/layout/template/data/_scatterternary.py
index 2221eadd54d..06a2c8dfb0e 100644
--- a/plotly/graph_objs/layout/template/data/_scatterternary.py
+++ b/plotly/graph_objs/layout/template/data/_scatterternary.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Scatterternary
+
+
+from plotly.graph_objs import Scatterternary
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_splom.py b/plotly/graph_objs/layout/template/data/_splom.py
index 0909cdfd9dd..3297dbe91e2 100644
--- a/plotly/graph_objs/layout/template/data/_splom.py
+++ b/plotly/graph_objs/layout/template/data/_splom.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Splom
+
+
+from plotly.graph_objs import Splom
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_streamtube.py b/plotly/graph_objs/layout/template/data/_streamtube.py
index 8b23c3161cb..fbfccad346e 100644
--- a/plotly/graph_objs/layout/template/data/_streamtube.py
+++ b/plotly/graph_objs/layout/template/data/_streamtube.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Streamtube
+
+
+from plotly.graph_objs import Streamtube
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_sunburst.py b/plotly/graph_objs/layout/template/data/_sunburst.py
index 1b9511c7d5b..a256f9b1bf7 100644
--- a/plotly/graph_objs/layout/template/data/_sunburst.py
+++ b/plotly/graph_objs/layout/template/data/_sunburst.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Sunburst
+
+
+from plotly.graph_objs import Sunburst
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_surface.py b/plotly/graph_objs/layout/template/data/_surface.py
index cfaa55d7385..6dd4afd6776 100644
--- a/plotly/graph_objs/layout/template/data/_surface.py
+++ b/plotly/graph_objs/layout/template/data/_surface.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Surface
+
+
+from plotly.graph_objs import Surface
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_table.py b/plotly/graph_objs/layout/template/data/_table.py
index 2b6d4ad1e57..a49f52cf71e 100644
--- a/plotly/graph_objs/layout/template/data/_table.py
+++ b/plotly/graph_objs/layout/template/data/_table.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Table
+
+
+from plotly.graph_objs import Table
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_treemap.py b/plotly/graph_objs/layout/template/data/_treemap.py
index 5c648e7108e..680ff7ac6b9 100644
--- a/plotly/graph_objs/layout/template/data/_treemap.py
+++ b/plotly/graph_objs/layout/template/data/_treemap.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Treemap
+
+
+from plotly.graph_objs import Treemap
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_violin.py b/plotly/graph_objs/layout/template/data/_violin.py
index 23221b66776..6838828ed74 100644
--- a/plotly/graph_objs/layout/template/data/_violin.py
+++ b/plotly/graph_objs/layout/template/data/_violin.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Violin
+
+
+from plotly.graph_objs import Violin
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_volume.py b/plotly/graph_objs/layout/template/data/_volume.py
index 1128580ca0f..04b26214bd7 100644
--- a/plotly/graph_objs/layout/template/data/_volume.py
+++ b/plotly/graph_objs/layout/template/data/_volume.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Volume
+
+
+from plotly.graph_objs import Volume
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/template/data/_waterfall.py b/plotly/graph_objs/layout/template/data/_waterfall.py
index c45e7852a2c..bc1f8f12c86 100644
--- a/plotly/graph_objs/layout/template/data/_waterfall.py
+++ b/plotly/graph_objs/layout/template/data/_waterfall.py
@@ -1 +1,3 @@
-from plotly.graph_objs import Waterfall
+
+
+from plotly.graph_objs import Waterfall
\ No newline at end of file
diff --git a/plotly/graph_objs/layout/ternary/__init__.py b/plotly/graph_objs/layout/ternary/__init__.py
index d64a0f9f5d3..4b9644a0a53 100644
--- a/plotly/graph_objs/layout/ternary/__init__.py
+++ b/plotly/graph_objs/layout/ternary/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._aaxis import Aaxis
+    from ._baxis import Baxis
+    from ._caxis import Caxis
+    from ._domain import Domain
+    from . import aaxis
+    from . import baxis
+    from . import caxis
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.aaxis', '.baxis', '.caxis'],
+        ['._aaxis.Aaxis', '._baxis.Baxis', '._caxis.Caxis', '._domain.Domain']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".aaxis", ".baxis", ".caxis"],
-    ["._aaxis.Aaxis", "._baxis.Baxis", "._caxis.Caxis", "._domain.Domain"],
-)
diff --git a/plotly/graph_objs/layout/ternary/_aaxis.py b/plotly/graph_objs/layout/ternary/_aaxis.py
index 5e178e303e2..c0bfb4bf0dc 100644
--- a/plotly/graph_objs/layout/ternary/_aaxis.py
+++ b/plotly/graph_objs/layout/ternary/_aaxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,51 +11,9 @@
 
 class Aaxis(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.ternary"
-    _path_str = "layout.ternary.aaxis"
-    _valid_props = {
-        "color",
-        "dtick",
-        "exponentformat",
-        "gridcolor",
-        "griddash",
-        "gridwidth",
-        "hoverformat",
-        "labelalias",
-        "layer",
-        "linecolor",
-        "linewidth",
-        "min",
-        "minexponent",
-        "nticks",
-        "separatethousands",
-        "showexponent",
-        "showgrid",
-        "showline",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "uirevision",
-    }
+    _parent_path_str = 'layout.ternary'
+    _path_str = 'layout.ternary.aaxis'
+    _valid_props = {"color", "dtick", "exponentformat", "gridcolor", "griddash", "gridwidth", "hoverformat", "labelalias", "layer", "linecolor", "linewidth", "min", "minexponent", "nticks", "separatethousands", "showexponent", "showgrid", "showline", "showticklabels", "showtickprefix", "showticksuffix", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "uirevision"}
 
     @property
     def color(self):
@@ -72,11 +34,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dtick(self):
@@ -108,11 +70,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -131,11 +93,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def gridcolor(self):
@@ -153,11 +115,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def griddash(self):
@@ -177,11 +139,11 @@ def griddash(self):
         -------
         str
         """
-        return self["griddash"]
+        return self['griddash']
 
     @griddash.setter
     def griddash(self, val):
-        self["griddash"] = val
+        self['griddash'] = val
 
     @property
     def gridwidth(self):
@@ -195,11 +157,11 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def hoverformat(self):
@@ -223,11 +185,11 @@ def hoverformat(self):
         -------
         str
         """
-        return self["hoverformat"]
+        return self['hoverformat']
 
     @hoverformat.setter
     def hoverformat(self, val):
-        self["hoverformat"] = val
+        self['hoverformat'] = val
 
     @property
     def labelalias(self):
@@ -248,11 +210,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def layer(self):
@@ -272,11 +234,11 @@ def layer(self):
         -------
         Any
         """
-        return self["layer"]
+        return self['layer']
 
     @layer.setter
     def layer(self, val):
-        self["layer"] = val
+        self['layer'] = val
 
     @property
     def linecolor(self):
@@ -294,11 +256,11 @@ def linecolor(self):
         -------
         str
         """
-        return self["linecolor"]
+        return self['linecolor']
 
     @linecolor.setter
     def linecolor(self, val):
-        self["linecolor"] = val
+        self['linecolor'] = val
 
     @property
     def linewidth(self):
@@ -312,11 +274,11 @@ def linewidth(self):
         -------
         int|float
         """
-        return self["linewidth"]
+        return self['linewidth']
 
     @linewidth.setter
     def linewidth(self, val):
-        self["linewidth"] = val
+        self['linewidth'] = val
 
     @property
     def min(self):
@@ -332,11 +294,11 @@ def min(self):
         -------
         int|float
         """
-        return self["min"]
+        return self['min']
 
     @min.setter
     def min(self, val):
-        self["min"] = val
+        self['min'] = val
 
     @property
     def minexponent(self):
@@ -351,11 +313,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -373,11 +335,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def separatethousands(self):
@@ -391,11 +353,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -413,11 +375,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showgrid(self):
@@ -432,11 +394,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def showline(self):
@@ -450,11 +412,11 @@ def showline(self):
         -------
         bool
         """
-        return self["showline"]
+        return self['showline']
 
     @showline.setter
     def showline(self, val):
-        self["showline"] = val
+        self['showline'] = val
 
     @property
     def showticklabels(self):
@@ -468,11 +430,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -490,11 +452,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -509,11 +471,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def tick0(self):
@@ -534,11 +496,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -556,11 +518,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -578,11 +540,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -599,11 +561,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.layout.ternary.aaxis.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -627,11 +589,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -646,11 +608,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.layout.ternary.aaxis.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -670,11 +632,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.layout.ternary.aaxis.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabelstep(self):
@@ -694,11 +656,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -712,11 +674,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -737,11 +699,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -756,11 +718,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -777,11 +739,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -796,11 +758,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -816,11 +778,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -834,11 +796,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -853,11 +815,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -871,11 +833,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -889,11 +851,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -908,11 +870,11 @@ def title(self):
         -------
         plotly.graph_objs.layout.ternary.aaxis.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def uirevision(self):
@@ -927,11 +889,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1143,53 +1105,51 @@ def _prop_descriptions(self):
             `min`, and `title` if in `editable: true`
             configuration. Defaults to `ternary<N>.uirevision`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        dtick=None,
-        exponentformat=None,
-        gridcolor=None,
-        griddash=None,
-        gridwidth=None,
-        hoverformat=None,
-        labelalias=None,
-        layer=None,
-        linecolor=None,
-        linewidth=None,
-        min=None,
-        minexponent=None,
-        nticks=None,
-        separatethousands=None,
-        showexponent=None,
-        showgrid=None,
-        showline=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        uirevision=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dtick=None,
+            exponentformat=None,
+            gridcolor=None,
+            griddash=None,
+            gridwidth=None,
+            hoverformat=None,
+            labelalias=None,
+            layer=None,
+            linecolor=None,
+            linewidth=None,
+            min=None,
+            minexponent=None,
+            nticks=None,
+            separatethousands=None,
+            showexponent=None,
+            showgrid=None,
+            showline=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            uirevision=None,
+            **kwargs
+        ):
         """
         Construct a new Aaxis object
 
@@ -1410,9 +1370,9 @@ def __init__(
         -------
         Aaxis
         """
-        super().__init__("aaxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('aaxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1422,56 +1382,56 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.ternary.Aaxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.ternary.Aaxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("griddash", arg, griddash)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("hoverformat", arg, hoverformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("layer", arg, layer)
-        self._set_property("linecolor", arg, linecolor)
-        self._set_property("linewidth", arg, linewidth)
-        self._set_property("min", arg, min)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("showline", arg, showline)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("uirevision", arg, uirevision)
+an instance of :class:`plotly.graph_objs.layout.ternary.Aaxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('griddash', arg, griddash)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('hoverformat', arg, hoverformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('layer', arg, layer)
+        self._set_property('linecolor', arg, linecolor)
+        self._set_property('linewidth', arg, linewidth)
+        self._set_property('min', arg, min)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('showline', arg, showline)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('uirevision', arg, uirevision)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/ternary/_baxis.py b/plotly/graph_objs/layout/ternary/_baxis.py
index f08cf168885..1275d2a2235 100644
--- a/plotly/graph_objs/layout/ternary/_baxis.py
+++ b/plotly/graph_objs/layout/ternary/_baxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,51 +11,9 @@
 
 class Baxis(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.ternary"
-    _path_str = "layout.ternary.baxis"
-    _valid_props = {
-        "color",
-        "dtick",
-        "exponentformat",
-        "gridcolor",
-        "griddash",
-        "gridwidth",
-        "hoverformat",
-        "labelalias",
-        "layer",
-        "linecolor",
-        "linewidth",
-        "min",
-        "minexponent",
-        "nticks",
-        "separatethousands",
-        "showexponent",
-        "showgrid",
-        "showline",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "uirevision",
-    }
+    _parent_path_str = 'layout.ternary'
+    _path_str = 'layout.ternary.baxis'
+    _valid_props = {"color", "dtick", "exponentformat", "gridcolor", "griddash", "gridwidth", "hoverformat", "labelalias", "layer", "linecolor", "linewidth", "min", "minexponent", "nticks", "separatethousands", "showexponent", "showgrid", "showline", "showticklabels", "showtickprefix", "showticksuffix", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "uirevision"}
 
     @property
     def color(self):
@@ -72,11 +34,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dtick(self):
@@ -108,11 +70,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -131,11 +93,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def gridcolor(self):
@@ -153,11 +115,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def griddash(self):
@@ -177,11 +139,11 @@ def griddash(self):
         -------
         str
         """
-        return self["griddash"]
+        return self['griddash']
 
     @griddash.setter
     def griddash(self, val):
-        self["griddash"] = val
+        self['griddash'] = val
 
     @property
     def gridwidth(self):
@@ -195,11 +157,11 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def hoverformat(self):
@@ -223,11 +185,11 @@ def hoverformat(self):
         -------
         str
         """
-        return self["hoverformat"]
+        return self['hoverformat']
 
     @hoverformat.setter
     def hoverformat(self, val):
-        self["hoverformat"] = val
+        self['hoverformat'] = val
 
     @property
     def labelalias(self):
@@ -248,11 +210,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def layer(self):
@@ -272,11 +234,11 @@ def layer(self):
         -------
         Any
         """
-        return self["layer"]
+        return self['layer']
 
     @layer.setter
     def layer(self, val):
-        self["layer"] = val
+        self['layer'] = val
 
     @property
     def linecolor(self):
@@ -294,11 +256,11 @@ def linecolor(self):
         -------
         str
         """
-        return self["linecolor"]
+        return self['linecolor']
 
     @linecolor.setter
     def linecolor(self, val):
-        self["linecolor"] = val
+        self['linecolor'] = val
 
     @property
     def linewidth(self):
@@ -312,11 +274,11 @@ def linewidth(self):
         -------
         int|float
         """
-        return self["linewidth"]
+        return self['linewidth']
 
     @linewidth.setter
     def linewidth(self, val):
-        self["linewidth"] = val
+        self['linewidth'] = val
 
     @property
     def min(self):
@@ -332,11 +294,11 @@ def min(self):
         -------
         int|float
         """
-        return self["min"]
+        return self['min']
 
     @min.setter
     def min(self, val):
-        self["min"] = val
+        self['min'] = val
 
     @property
     def minexponent(self):
@@ -351,11 +313,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -373,11 +335,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def separatethousands(self):
@@ -391,11 +353,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -413,11 +375,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showgrid(self):
@@ -432,11 +394,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def showline(self):
@@ -450,11 +412,11 @@ def showline(self):
         -------
         bool
         """
-        return self["showline"]
+        return self['showline']
 
     @showline.setter
     def showline(self, val):
-        self["showline"] = val
+        self['showline'] = val
 
     @property
     def showticklabels(self):
@@ -468,11 +430,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -490,11 +452,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -509,11 +471,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def tick0(self):
@@ -534,11 +496,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -556,11 +518,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -578,11 +540,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -599,11 +561,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.layout.ternary.baxis.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -627,11 +589,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -646,11 +608,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.layout.ternary.baxis.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -670,11 +632,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.layout.ternary.baxis.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabelstep(self):
@@ -694,11 +656,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -712,11 +674,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -737,11 +699,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -756,11 +718,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -777,11 +739,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -796,11 +758,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -816,11 +778,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -834,11 +796,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -853,11 +815,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -871,11 +833,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -889,11 +851,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -908,11 +870,11 @@ def title(self):
         -------
         plotly.graph_objs.layout.ternary.baxis.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def uirevision(self):
@@ -927,11 +889,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1143,53 +1105,51 @@ def _prop_descriptions(self):
             `min`, and `title` if in `editable: true`
             configuration. Defaults to `ternary<N>.uirevision`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        dtick=None,
-        exponentformat=None,
-        gridcolor=None,
-        griddash=None,
-        gridwidth=None,
-        hoverformat=None,
-        labelalias=None,
-        layer=None,
-        linecolor=None,
-        linewidth=None,
-        min=None,
-        minexponent=None,
-        nticks=None,
-        separatethousands=None,
-        showexponent=None,
-        showgrid=None,
-        showline=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        uirevision=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dtick=None,
+            exponentformat=None,
+            gridcolor=None,
+            griddash=None,
+            gridwidth=None,
+            hoverformat=None,
+            labelalias=None,
+            layer=None,
+            linecolor=None,
+            linewidth=None,
+            min=None,
+            minexponent=None,
+            nticks=None,
+            separatethousands=None,
+            showexponent=None,
+            showgrid=None,
+            showline=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            uirevision=None,
+            **kwargs
+        ):
         """
         Construct a new Baxis object
 
@@ -1410,9 +1370,9 @@ def __init__(
         -------
         Baxis
         """
-        super().__init__("baxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('baxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1422,56 +1382,56 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.ternary.Baxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.ternary.Baxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("griddash", arg, griddash)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("hoverformat", arg, hoverformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("layer", arg, layer)
-        self._set_property("linecolor", arg, linecolor)
-        self._set_property("linewidth", arg, linewidth)
-        self._set_property("min", arg, min)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("showline", arg, showline)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("uirevision", arg, uirevision)
+an instance of :class:`plotly.graph_objs.layout.ternary.Baxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('griddash', arg, griddash)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('hoverformat', arg, hoverformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('layer', arg, layer)
+        self._set_property('linecolor', arg, linecolor)
+        self._set_property('linewidth', arg, linewidth)
+        self._set_property('min', arg, min)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('showline', arg, showline)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('uirevision', arg, uirevision)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/ternary/_caxis.py b/plotly/graph_objs/layout/ternary/_caxis.py
index 86ae5b62fd7..14e09476ac6 100644
--- a/plotly/graph_objs/layout/ternary/_caxis.py
+++ b/plotly/graph_objs/layout/ternary/_caxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,51 +11,9 @@
 
 class Caxis(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.ternary"
-    _path_str = "layout.ternary.caxis"
-    _valid_props = {
-        "color",
-        "dtick",
-        "exponentformat",
-        "gridcolor",
-        "griddash",
-        "gridwidth",
-        "hoverformat",
-        "labelalias",
-        "layer",
-        "linecolor",
-        "linewidth",
-        "min",
-        "minexponent",
-        "nticks",
-        "separatethousands",
-        "showexponent",
-        "showgrid",
-        "showline",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "uirevision",
-    }
+    _parent_path_str = 'layout.ternary'
+    _path_str = 'layout.ternary.caxis'
+    _valid_props = {"color", "dtick", "exponentformat", "gridcolor", "griddash", "gridwidth", "hoverformat", "labelalias", "layer", "linecolor", "linewidth", "min", "minexponent", "nticks", "separatethousands", "showexponent", "showgrid", "showline", "showticklabels", "showtickprefix", "showticksuffix", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "uirevision"}
 
     @property
     def color(self):
@@ -72,11 +34,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dtick(self):
@@ -108,11 +70,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -131,11 +93,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def gridcolor(self):
@@ -153,11 +115,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def griddash(self):
@@ -177,11 +139,11 @@ def griddash(self):
         -------
         str
         """
-        return self["griddash"]
+        return self['griddash']
 
     @griddash.setter
     def griddash(self, val):
-        self["griddash"] = val
+        self['griddash'] = val
 
     @property
     def gridwidth(self):
@@ -195,11 +157,11 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def hoverformat(self):
@@ -223,11 +185,11 @@ def hoverformat(self):
         -------
         str
         """
-        return self["hoverformat"]
+        return self['hoverformat']
 
     @hoverformat.setter
     def hoverformat(self, val):
-        self["hoverformat"] = val
+        self['hoverformat'] = val
 
     @property
     def labelalias(self):
@@ -248,11 +210,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def layer(self):
@@ -272,11 +234,11 @@ def layer(self):
         -------
         Any
         """
-        return self["layer"]
+        return self['layer']
 
     @layer.setter
     def layer(self, val):
-        self["layer"] = val
+        self['layer'] = val
 
     @property
     def linecolor(self):
@@ -294,11 +256,11 @@ def linecolor(self):
         -------
         str
         """
-        return self["linecolor"]
+        return self['linecolor']
 
     @linecolor.setter
     def linecolor(self, val):
-        self["linecolor"] = val
+        self['linecolor'] = val
 
     @property
     def linewidth(self):
@@ -312,11 +274,11 @@ def linewidth(self):
         -------
         int|float
         """
-        return self["linewidth"]
+        return self['linewidth']
 
     @linewidth.setter
     def linewidth(self, val):
-        self["linewidth"] = val
+        self['linewidth'] = val
 
     @property
     def min(self):
@@ -332,11 +294,11 @@ def min(self):
         -------
         int|float
         """
-        return self["min"]
+        return self['min']
 
     @min.setter
     def min(self, val):
-        self["min"] = val
+        self['min'] = val
 
     @property
     def minexponent(self):
@@ -351,11 +313,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -373,11 +335,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def separatethousands(self):
@@ -391,11 +353,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -413,11 +375,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showgrid(self):
@@ -432,11 +394,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def showline(self):
@@ -450,11 +412,11 @@ def showline(self):
         -------
         bool
         """
-        return self["showline"]
+        return self['showline']
 
     @showline.setter
     def showline(self, val):
-        self["showline"] = val
+        self['showline'] = val
 
     @property
     def showticklabels(self):
@@ -468,11 +430,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -490,11 +452,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -509,11 +471,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def tick0(self):
@@ -534,11 +496,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -556,11 +518,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -578,11 +540,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -599,11 +561,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.layout.ternary.caxis.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -627,11 +589,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -646,11 +608,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.layout.ternary.caxis.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -670,11 +632,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.layout.ternary.caxis.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabelstep(self):
@@ -694,11 +656,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -712,11 +674,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -737,11 +699,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -756,11 +718,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -777,11 +739,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -796,11 +758,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -816,11 +778,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -834,11 +796,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -853,11 +815,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -871,11 +833,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -889,11 +851,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -908,11 +870,11 @@ def title(self):
         -------
         plotly.graph_objs.layout.ternary.caxis.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def uirevision(self):
@@ -927,11 +889,11 @@ def uirevision(self):
         -------
         Any
         """
-        return self["uirevision"]
+        return self['uirevision']
 
     @uirevision.setter
     def uirevision(self, val):
-        self["uirevision"] = val
+        self['uirevision'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1143,53 +1105,51 @@ def _prop_descriptions(self):
             `min`, and `title` if in `editable: true`
             configuration. Defaults to `ternary<N>.uirevision`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        dtick=None,
-        exponentformat=None,
-        gridcolor=None,
-        griddash=None,
-        gridwidth=None,
-        hoverformat=None,
-        labelalias=None,
-        layer=None,
-        linecolor=None,
-        linewidth=None,
-        min=None,
-        minexponent=None,
-        nticks=None,
-        separatethousands=None,
-        showexponent=None,
-        showgrid=None,
-        showline=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        uirevision=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dtick=None,
+            exponentformat=None,
+            gridcolor=None,
+            griddash=None,
+            gridwidth=None,
+            hoverformat=None,
+            labelalias=None,
+            layer=None,
+            linecolor=None,
+            linewidth=None,
+            min=None,
+            minexponent=None,
+            nticks=None,
+            separatethousands=None,
+            showexponent=None,
+            showgrid=None,
+            showline=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            uirevision=None,
+            **kwargs
+        ):
         """
         Construct a new Caxis object
 
@@ -1410,9 +1370,9 @@ def __init__(
         -------
         Caxis
         """
-        super().__init__("caxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('caxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1422,56 +1382,56 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.ternary.Caxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.ternary.Caxis`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("griddash", arg, griddash)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("hoverformat", arg, hoverformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("layer", arg, layer)
-        self._set_property("linecolor", arg, linecolor)
-        self._set_property("linewidth", arg, linewidth)
-        self._set_property("min", arg, min)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("showline", arg, showline)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("uirevision", arg, uirevision)
+an instance of :class:`plotly.graph_objs.layout.ternary.Caxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('griddash', arg, griddash)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('hoverformat', arg, hoverformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('layer', arg, layer)
+        self._set_property('linecolor', arg, linecolor)
+        self._set_property('linewidth', arg, linewidth)
+        self._set_property('min', arg, min)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('showline', arg, showline)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('uirevision', arg, uirevision)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/ternary/_domain.py b/plotly/graph_objs/layout/ternary/_domain.py
index 6ac8742647d..40c70826811 100644
--- a/plotly/graph_objs/layout/ternary/_domain.py
+++ b/plotly/graph_objs/layout/ternary/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.ternary"
-    _path_str = "layout.ternary.domain"
+    _parent_path_str = 'layout.ternary'
+    _path_str = 'layout.ternary.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -25,11 +29,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -45,59 +49,59 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this ternary subplot (in plot
-            fraction).
-
-            The 'x' property is an info array that may be specified as:
+        Sets the horizontal domain of this ternary subplot (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this ternary subplot (in plot
-            fraction).
-
-            The 'y' property is an info array that may be specified as:
+        Sets the vertical domain of this ternary subplot (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,8 +119,14 @@ def _prop_descriptions(self):
             Sets the vertical domain of this ternary subplot (in
             plot fraction).
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -143,9 +153,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -155,19 +165,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.ternary.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.ternary.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.ternary.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/ternary/aaxis/__init__.py b/plotly/graph_objs/layout/ternary/aaxis/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/layout/ternary/aaxis/__init__.py
+++ b/plotly/graph_objs/layout/ternary/aaxis/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/layout/ternary/aaxis/_tickfont.py b/plotly/graph_objs/layout/ternary/aaxis/_tickfont.py
index 9247b8982cc..f02edaea75c 100644
--- a/plotly/graph_objs/layout/ternary/aaxis/_tickfont.py
+++ b/plotly/graph_objs/layout/ternary/aaxis/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.ternary.aaxis"
-    _path_str = "layout.ternary.aaxis.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.ternary.aaxis'
+    _path_str = 'layout.ternary.aaxis.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.ternary.aaxis.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.ternary.aaxis.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.ternary.aaxis.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/ternary/aaxis/_tickformatstop.py b/plotly/graph_objs/layout/ternary/aaxis/_tickformatstop.py
index 6991f65432d..2494945aa2f 100644
--- a/plotly/graph_objs/layout/ternary/aaxis/_tickformatstop.py
+++ b/plotly/graph_objs/layout/ternary/aaxis/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.ternary.aaxis"
-    _path_str = "layout.ternary.aaxis.tickformatstop"
+    _parent_path_str = 'layout.ternary.aaxis'
+    _path_str = 'layout.ternary.aaxis.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.ternary.aaxis.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.ternary.aaxis.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.ternary.aaxis.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/ternary/aaxis/_title.py b/plotly/graph_objs/layout/ternary/aaxis/_title.py
index 72d6a03ba2b..19f0915aa86 100644
--- a/plotly/graph_objs/layout/ternary/aaxis/_title.py
+++ b/plotly/graph_objs/layout/ternary/aaxis/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.ternary.aaxis"
-    _path_str = "layout.ternary.aaxis.title"
+    _parent_path_str = 'layout.ternary.aaxis'
+    _path_str = 'layout.ternary.aaxis.title'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.ternary.aaxis.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of this axis.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.ternary.aaxis.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.ternary.aaxis.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.ternary.aaxis.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/ternary/aaxis/title/__init__.py b/plotly/graph_objs/layout/ternary/aaxis/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/ternary/aaxis/title/__init__.py
+++ b/plotly/graph_objs/layout/ternary/aaxis/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/ternary/aaxis/title/_font.py b/plotly/graph_objs/layout/ternary/aaxis/title/_font.py
index 89c31aa83f3..0186d693f7f 100644
--- a/plotly/graph_objs/layout/ternary/aaxis/title/_font.py
+++ b/plotly/graph_objs/layout/ternary/aaxis/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.ternary.aaxis.title"
-    _path_str = "layout.ternary.aaxis.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.ternary.aaxis.title'
+    _path_str = 'layout.ternary.aaxis.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.ternary.aaxis.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.ternary.aaxis.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.ternary.aaxis.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/ternary/baxis/__init__.py b/plotly/graph_objs/layout/ternary/baxis/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/layout/ternary/baxis/__init__.py
+++ b/plotly/graph_objs/layout/ternary/baxis/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/layout/ternary/baxis/_tickfont.py b/plotly/graph_objs/layout/ternary/baxis/_tickfont.py
index 0f57e7fdea5..7f2f294bffe 100644
--- a/plotly/graph_objs/layout/ternary/baxis/_tickfont.py
+++ b/plotly/graph_objs/layout/ternary/baxis/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.ternary.baxis"
-    _path_str = "layout.ternary.baxis.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.ternary.baxis'
+    _path_str = 'layout.ternary.baxis.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.ternary.baxis.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.ternary.baxis.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.ternary.baxis.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/ternary/baxis/_tickformatstop.py b/plotly/graph_objs/layout/ternary/baxis/_tickformatstop.py
index f401787b9ae..7ed12b9e062 100644
--- a/plotly/graph_objs/layout/ternary/baxis/_tickformatstop.py
+++ b/plotly/graph_objs/layout/ternary/baxis/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.ternary.baxis"
-    _path_str = "layout.ternary.baxis.tickformatstop"
+    _parent_path_str = 'layout.ternary.baxis'
+    _path_str = 'layout.ternary.baxis.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.ternary.baxis.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.ternary.baxis.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.ternary.baxis.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/ternary/baxis/_title.py b/plotly/graph_objs/layout/ternary/baxis/_title.py
index 855b9f41395..de092819a78 100644
--- a/plotly/graph_objs/layout/ternary/baxis/_title.py
+++ b/plotly/graph_objs/layout/ternary/baxis/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.ternary.baxis"
-    _path_str = "layout.ternary.baxis.title"
+    _parent_path_str = 'layout.ternary.baxis'
+    _path_str = 'layout.ternary.baxis.title'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.ternary.baxis.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of this axis.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.ternary.baxis.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.ternary.baxis.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.ternary.baxis.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/ternary/baxis/title/__init__.py b/plotly/graph_objs/layout/ternary/baxis/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/ternary/baxis/title/__init__.py
+++ b/plotly/graph_objs/layout/ternary/baxis/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/ternary/baxis/title/_font.py b/plotly/graph_objs/layout/ternary/baxis/title/_font.py
index 254488fb731..15d993c742c 100644
--- a/plotly/graph_objs/layout/ternary/baxis/title/_font.py
+++ b/plotly/graph_objs/layout/ternary/baxis/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.ternary.baxis.title"
-    _path_str = "layout.ternary.baxis.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.ternary.baxis.title'
+    _path_str = 'layout.ternary.baxis.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.ternary.baxis.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.ternary.baxis.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.ternary.baxis.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/ternary/caxis/__init__.py b/plotly/graph_objs/layout/ternary/caxis/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/layout/ternary/caxis/__init__.py
+++ b/plotly/graph_objs/layout/ternary/caxis/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/layout/ternary/caxis/_tickfont.py b/plotly/graph_objs/layout/ternary/caxis/_tickfont.py
index dcc67cae213..bfe4d7a1e96 100644
--- a/plotly/graph_objs/layout/ternary/caxis/_tickfont.py
+++ b/plotly/graph_objs/layout/ternary/caxis/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.ternary.caxis"
-    _path_str = "layout.ternary.caxis.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.ternary.caxis'
+    _path_str = 'layout.ternary.caxis.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.ternary.caxis.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.ternary.caxis.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.ternary.caxis.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/ternary/caxis/_tickformatstop.py b/plotly/graph_objs/layout/ternary/caxis/_tickformatstop.py
index f922d464f38..e020d1e198e 100644
--- a/plotly/graph_objs/layout/ternary/caxis/_tickformatstop.py
+++ b/plotly/graph_objs/layout/ternary/caxis/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.ternary.caxis"
-    _path_str = "layout.ternary.caxis.tickformatstop"
+    _parent_path_str = 'layout.ternary.caxis'
+    _path_str = 'layout.ternary.caxis.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.ternary.caxis.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.ternary.caxis.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.ternary.caxis.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/ternary/caxis/_title.py b/plotly/graph_objs/layout/ternary/caxis/_title.py
index 86ddf17acf8..f884514fcf4 100644
--- a/plotly/graph_objs/layout/ternary/caxis/_title.py
+++ b/plotly/graph_objs/layout/ternary/caxis/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.ternary.caxis"
-    _path_str = "layout.ternary.caxis.title"
+    _parent_path_str = 'layout.ternary.caxis'
+    _path_str = 'layout.ternary.caxis.title'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.ternary.caxis.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of this axis.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.ternary.caxis.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.ternary.caxis.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.ternary.caxis.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/ternary/caxis/title/__init__.py b/plotly/graph_objs/layout/ternary/caxis/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/ternary/caxis/title/__init__.py
+++ b/plotly/graph_objs/layout/ternary/caxis/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/ternary/caxis/title/_font.py b/plotly/graph_objs/layout/ternary/caxis/title/_font.py
index d6c23fb458e..f4760ca0f0f 100644
--- a/plotly/graph_objs/layout/ternary/caxis/title/_font.py
+++ b/plotly/graph_objs/layout/ternary/caxis/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.ternary.caxis.title"
-    _path_str = "layout.ternary.caxis.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.ternary.caxis.title'
+    _path_str = 'layout.ternary.caxis.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.ternary.caxis.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.ternary.caxis.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.ternary.caxis.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/title/__init__.py b/plotly/graph_objs/layout/title/__init__.py
index 795705c62ed..3dee413ac74 100644
--- a/plotly/graph_objs/layout/title/__init__.py
+++ b/plotly/graph_objs/layout/title/__init__.py
@@ -1,6 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+    from ._pad import Pad
+    from ._subtitle import Subtitle
+    from . import subtitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.subtitle'],
+        ['._font.Font', '._pad.Pad', '._subtitle.Subtitle']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".subtitle"], ["._font.Font", "._pad.Pad", "._subtitle.Subtitle"]
-)
diff --git a/plotly/graph_objs/layout/title/_font.py b/plotly/graph_objs/layout/title/_font.py
index 188f056599e..990cbc18780 100644
--- a/plotly/graph_objs/layout/title/_font.py
+++ b/plotly/graph_objs/layout/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.title"
-    _path_str = "layout.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.title'
+    _path_str = 'layout.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/title/_pad.py b/plotly/graph_objs/layout/title/_pad.py
index 620b791ce80..f5e3fb6ce44 100644
--- a/plotly/graph_objs/layout/title/_pad.py
+++ b/plotly/graph_objs/layout/title/_pad.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Pad(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.title"
-    _path_str = "layout.title.pad"
+    _parent_path_str = 'layout.title'
+    _path_str = 'layout.title.pad'
     _valid_props = {"b", "l", "r", "t"}
 
     @property
@@ -24,11 +28,11 @@ def b(self):
         -------
         int|float
         """
-        return self["b"]
+        return self['b']
 
     @b.setter
     def b(self, val):
-        self["b"] = val
+        self['b'] = val
 
     @property
     def l(self):
@@ -43,11 +47,11 @@ def l(self):
         -------
         int|float
         """
-        return self["l"]
+        return self['l']
 
     @l.setter
     def l(self, val):
-        self["l"] = val
+        self['l'] = val
 
     @property
     def r(self):
@@ -62,11 +66,11 @@ def r(self):
         -------
         int|float
         """
-        return self["r"]
+        return self['r']
 
     @r.setter
     def r(self, val):
-        self["r"] = val
+        self['r'] = val
 
     @property
     def t(self):
@@ -80,11 +84,11 @@ def t(self):
         -------
         int|float
         """
-        return self["t"]
+        return self['t']
 
     @t.setter
     def t(self, val):
-        self["t"] = val
+        self['t'] = val
 
     @property
     def _prop_descriptions(self):
@@ -102,8 +106,14 @@ def _prop_descriptions(self):
             The amount of padding (in px) along the top of the
             component.
         """
-
-    def __init__(self, arg=None, b=None, l=None, r=None, t=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            b=None,
+            l=None,
+            r=None,
+            t=None,
+            **kwargs
+        ):
         """
         Construct a new Pad object
 
@@ -137,9 +147,9 @@ def __init__(self, arg=None, b=None, l=None, r=None, t=None, **kwargs):
         -------
         Pad
         """
-        super().__init__("pad")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('pad')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -149,19 +159,19 @@ def __init__(self, arg=None, b=None, l=None, r=None, t=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.title.Pad
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.title.Pad`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.title.Pad`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("b", arg, b)
-        self._set_property("l", arg, l)
-        self._set_property("r", arg, r)
-        self._set_property("t", arg, t)
+        self._set_property('b', arg, b)
+        self._set_property('l', arg, l)
+        self._set_property('r', arg, r)
+        self._set_property('t', arg, t)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/title/_subtitle.py b/plotly/graph_objs/layout/title/_subtitle.py
index 1f6bcc6f97e..cb986552fa7 100644
--- a/plotly/graph_objs/layout/title/_subtitle.py
+++ b/plotly/graph_objs/layout/title/_subtitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Subtitle(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.title"
-    _path_str = "layout.title.subtitle"
+    _parent_path_str = 'layout.title'
+    _path_str = 'layout.title.subtitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.title.subtitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the plot's subtitle.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Subtitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Subtitle
         """
-        super().__init__("subtitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('subtitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.title.Subtitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.title.Subtitle`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.title.Subtitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/title/subtitle/__init__.py b/plotly/graph_objs/layout/title/subtitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/title/subtitle/__init__.py
+++ b/plotly/graph_objs/layout/title/subtitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/title/subtitle/_font.py b/plotly/graph_objs/layout/title/subtitle/_font.py
index 44545cefc2b..9aacc50272b 100644
--- a/plotly/graph_objs/layout/title/subtitle/_font.py
+++ b/plotly/graph_objs/layout/title/subtitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.title.subtitle"
-    _path_str = "layout.title.subtitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.title.subtitle'
+    _path_str = 'layout.title.subtitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.title.subtitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.title.subtitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.title.subtitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/updatemenu/__init__.py b/plotly/graph_objs/layout/updatemenu/__init__.py
index e9cbc65129b..a4292e115cd 100644
--- a/plotly/graph_objs/layout/updatemenu/__init__.py
+++ b/plotly/graph_objs/layout/updatemenu/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._button import Button
+    from ._font import Font
+    from ._pad import Pad
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._button.Button', '._font.Font', '._pad.Pad']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._button.Button", "._font.Font", "._pad.Pad"]
-)
diff --git a/plotly/graph_objs/layout/updatemenu/_button.py b/plotly/graph_objs/layout/updatemenu/_button.py
index 5994d225fe8..b8aa287fcc6 100644
--- a/plotly/graph_objs/layout/updatemenu/_button.py
+++ b/plotly/graph_objs/layout/updatemenu/_button.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,65 +11,56 @@
 
 class Button(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.updatemenu"
-    _path_str = "layout.updatemenu.button"
-    _valid_props = {
-        "args",
-        "args2",
-        "execute",
-        "label",
-        "method",
-        "name",
-        "templateitemname",
-        "visible",
-    }
+    _parent_path_str = 'layout.updatemenu'
+    _path_str = 'layout.updatemenu.button'
+    _valid_props = {"args", "args2", "execute", "label", "method", "name", "templateitemname", "visible"}
 
     @property
     def args(self):
         """
-            Sets the arguments values to be passed to the Plotly method set
-            in `method` on click.
+        Sets the arguments values to be passed to the Plotly method set
+        in `method` on click.
 
-            The 'args' property is an info array that may be specified as:
+        The 'args' property is an info array that may be specified as:
+    
+        * a list or tuple of up to 3 elements where:
+    (0) The 'args[0]' property accepts values of any type
+    (1) The 'args[1]' property accepts values of any type
+    (2) The 'args[2]' property accepts values of any type
 
-            * a list or tuple of up to 3 elements where:
-        (0) The 'args[0]' property accepts values of any type
-        (1) The 'args[1]' property accepts values of any type
-        (2) The 'args[2]' property accepts values of any type
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["args"]
+        return self['args']
 
     @args.setter
     def args(self, val):
-        self["args"] = val
+        self['args'] = val
 
     @property
     def args2(self):
         """
-            Sets a 2nd set of `args`, these arguments values are passed to
-            the Plotly method set in `method` when clicking this button
-            while in the active state. Use this to create toggle buttons.
+        Sets a 2nd set of `args`, these arguments values are passed to
+        the Plotly method set in `method` when clicking this button
+        while in the active state. Use this to create toggle buttons.
 
-            The 'args2' property is an info array that may be specified as:
+        The 'args2' property is an info array that may be specified as:
+    
+        * a list or tuple of up to 3 elements where:
+    (0) The 'args2[0]' property accepts values of any type
+    (1) The 'args2[1]' property accepts values of any type
+    (2) The 'args2[2]' property accepts values of any type
 
-            * a list or tuple of up to 3 elements where:
-        (0) The 'args2[0]' property accepts values of any type
-        (1) The 'args2[1]' property accepts values of any type
-        (2) The 'args2[2]' property accepts values of any type
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["args2"]
+        return self['args2']
 
     @args2.setter
     def args2(self, val):
-        self["args2"] = val
+        self['args2'] = val
 
     @property
     def execute(self):
@@ -85,11 +80,11 @@ def execute(self):
         -------
         bool
         """
-        return self["execute"]
+        return self['execute']
 
     @execute.setter
     def execute(self, val):
-        self["execute"] = val
+        self['execute'] = val
 
     @property
     def label(self):
@@ -104,11 +99,11 @@ def label(self):
         -------
         str
         """
-        return self["label"]
+        return self['label']
 
     @label.setter
     def label(self, val):
-        self["label"] = val
+        self['label'] = val
 
     @property
     def method(self):
@@ -127,11 +122,11 @@ def method(self):
         -------
         Any
         """
-        return self["method"]
+        return self['method']
 
     @method.setter
     def method(self, val):
-        self["method"] = val
+        self['method'] = val
 
     @property
     def name(self):
@@ -152,11 +147,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -178,11 +173,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def visible(self):
@@ -196,11 +191,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -253,20 +248,18 @@ def _prop_descriptions(self):
         visible
             Determines whether or not this button is visible.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        args=None,
-        args2=None,
-        execute=None,
-        label=None,
-        method=None,
-        name=None,
-        templateitemname=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            args=None,
+            args2=None,
+            execute=None,
+            label=None,
+            method=None,
+            name=None,
+            templateitemname=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Button object
 
@@ -328,9 +321,9 @@ def __init__(
         -------
         Button
         """
-        super().__init__("buttons")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('buttons')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -340,23 +333,23 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.updatemenu.Button
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.updatemenu.Button`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("args", arg, args)
-        self._set_property("args2", arg, args2)
-        self._set_property("execute", arg, execute)
-        self._set_property("label", arg, label)
-        self._set_property("method", arg, method)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("visible", arg, visible)
+an instance of :class:`plotly.graph_objs.layout.updatemenu.Button`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('args', arg, args)
+        self._set_property('args2', arg, args2)
+        self._set_property('execute', arg, execute)
+        self._set_property('label', arg, label)
+        self._set_property('method', arg, method)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/updatemenu/_font.py b/plotly/graph_objs/layout/updatemenu/_font.py
index db4ddae0fab..d02554112f7 100644
--- a/plotly/graph_objs/layout/updatemenu/_font.py
+++ b/plotly/graph_objs/layout/updatemenu/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.updatemenu"
-    _path_str = "layout.updatemenu.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.updatemenu'
+    _path_str = 'layout.updatemenu.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.updatemenu.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.updatemenu.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.updatemenu.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/updatemenu/_pad.py b/plotly/graph_objs/layout/updatemenu/_pad.py
index 888590f6d4f..b70bbf12780 100644
--- a/plotly/graph_objs/layout/updatemenu/_pad.py
+++ b/plotly/graph_objs/layout/updatemenu/_pad.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Pad(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.updatemenu"
-    _path_str = "layout.updatemenu.pad"
+    _parent_path_str = 'layout.updatemenu'
+    _path_str = 'layout.updatemenu.pad'
     _valid_props = {"b", "l", "r", "t"}
 
     @property
@@ -24,11 +28,11 @@ def b(self):
         -------
         int|float
         """
-        return self["b"]
+        return self['b']
 
     @b.setter
     def b(self, val):
-        self["b"] = val
+        self['b'] = val
 
     @property
     def l(self):
@@ -43,11 +47,11 @@ def l(self):
         -------
         int|float
         """
-        return self["l"]
+        return self['l']
 
     @l.setter
     def l(self, val):
-        self["l"] = val
+        self['l'] = val
 
     @property
     def r(self):
@@ -62,11 +66,11 @@ def r(self):
         -------
         int|float
         """
-        return self["r"]
+        return self['r']
 
     @r.setter
     def r(self, val):
-        self["r"] = val
+        self['r'] = val
 
     @property
     def t(self):
@@ -80,11 +84,11 @@ def t(self):
         -------
         int|float
         """
-        return self["t"]
+        return self['t']
 
     @t.setter
     def t(self, val):
-        self["t"] = val
+        self['t'] = val
 
     @property
     def _prop_descriptions(self):
@@ -102,8 +106,14 @@ def _prop_descriptions(self):
             The amount of padding (in px) along the top of the
             component.
         """
-
-    def __init__(self, arg=None, b=None, l=None, r=None, t=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            b=None,
+            l=None,
+            r=None,
+            t=None,
+            **kwargs
+        ):
         """
         Construct a new Pad object
 
@@ -132,9 +142,9 @@ def __init__(self, arg=None, b=None, l=None, r=None, t=None, **kwargs):
         -------
         Pad
         """
-        super().__init__("pad")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('pad')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -144,19 +154,19 @@ def __init__(self, arg=None, b=None, l=None, r=None, t=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.updatemenu.Pad
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.updatemenu.Pad`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.updatemenu.Pad`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("b", arg, b)
-        self._set_property("l", arg, l)
-        self._set_property("r", arg, r)
-        self._set_property("t", arg, t)
+        self._set_property('b', arg, b)
+        self._set_property('l', arg, l)
+        self._set_property('r', arg, r)
+        self._set_property('t', arg, t)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/xaxis/__init__.py b/plotly/graph_objs/layout/xaxis/__init__.py
index d8ee189d9f3..d93679a430f 100644
--- a/plotly/graph_objs/layout/xaxis/__init__.py
+++ b/plotly/graph_objs/layout/xaxis/__init__.py
@@ -1,17 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._autorangeoptions import Autorangeoptions
+    from ._minor import Minor
+    from ._rangebreak import Rangebreak
+    from ._rangeselector import Rangeselector
+    from ._rangeslider import Rangeslider
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import rangeselector
+    from . import rangeslider
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.rangeselector', '.rangeslider', '.title'],
+        ['._autorangeoptions.Autorangeoptions', '._minor.Minor', '._rangebreak.Rangebreak', '._rangeselector.Rangeselector', '._rangeslider.Rangeslider', '._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".rangeselector", ".rangeslider", ".title"],
-    [
-        "._autorangeoptions.Autorangeoptions",
-        "._minor.Minor",
-        "._rangebreak.Rangebreak",
-        "._rangeselector.Rangeselector",
-        "._rangeslider.Rangeslider",
-        "._tickfont.Tickfont",
-        "._tickformatstop.Tickformatstop",
-        "._title.Title",
-    ],
-)
diff --git a/plotly/graph_objs/layout/xaxis/_autorangeoptions.py b/plotly/graph_objs/layout/xaxis/_autorangeoptions.py
index e21bc167b38..3c4ac89113c 100644
--- a/plotly/graph_objs/layout/xaxis/_autorangeoptions.py
+++ b/plotly/graph_objs/layout/xaxis/_autorangeoptions.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,16 +11,9 @@
 
 class Autorangeoptions(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.xaxis"
-    _path_str = "layout.xaxis.autorangeoptions"
-    _valid_props = {
-        "clipmax",
-        "clipmin",
-        "include",
-        "includesrc",
-        "maxallowed",
-        "minallowed",
-    }
+    _parent_path_str = 'layout.xaxis'
+    _path_str = 'layout.xaxis.autorangeoptions'
+    _valid_props = {"clipmax", "clipmin", "include", "includesrc", "maxallowed", "minallowed"}
 
     @property
     def clipmax(self):
@@ -30,11 +27,11 @@ def clipmax(self):
         -------
         Any
         """
-        return self["clipmax"]
+        return self['clipmax']
 
     @clipmax.setter
     def clipmax(self, val):
-        self["clipmax"] = val
+        self['clipmax'] = val
 
     @property
     def clipmin(self):
@@ -48,11 +45,11 @@ def clipmin(self):
         -------
         Any
         """
-        return self["clipmin"]
+        return self['clipmin']
 
     @clipmin.setter
     def clipmin(self, val):
-        self["clipmin"] = val
+        self['clipmin'] = val
 
     @property
     def include(self):
@@ -65,11 +62,11 @@ def include(self):
         -------
         Any|numpy.ndarray
         """
-        return self["include"]
+        return self['include']
 
     @include.setter
     def include(self, val):
-        self["include"] = val
+        self['include'] = val
 
     @property
     def includesrc(self):
@@ -83,11 +80,11 @@ def includesrc(self):
         -------
         str
         """
-        return self["includesrc"]
+        return self['includesrc']
 
     @includesrc.setter
     def includesrc(self, val):
-        self["includesrc"] = val
+        self['includesrc'] = val
 
     @property
     def maxallowed(self):
@@ -100,11 +97,11 @@ def maxallowed(self):
         -------
         Any
         """
-        return self["maxallowed"]
+        return self['maxallowed']
 
     @maxallowed.setter
     def maxallowed(self, val):
-        self["maxallowed"] = val
+        self['maxallowed'] = val
 
     @property
     def minallowed(self):
@@ -117,11 +114,11 @@ def minallowed(self):
         -------
         Any
         """
-        return self["minallowed"]
+        return self['minallowed']
 
     @minallowed.setter
     def minallowed(self, val):
-        self["minallowed"] = val
+        self['minallowed'] = val
 
     @property
     def _prop_descriptions(self):
@@ -144,18 +141,16 @@ def _prop_descriptions(self):
         minallowed
             Use this value exactly as autorange minimum.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        clipmax=None,
-        clipmin=None,
-        include=None,
-        includesrc=None,
-        maxallowed=None,
-        minallowed=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            clipmax=None,
+            clipmin=None,
+            include=None,
+            includesrc=None,
+            maxallowed=None,
+            minallowed=None,
+            **kwargs
+        ):
         """
         Construct a new Autorangeoptions object
 
@@ -187,9 +182,9 @@ def __init__(
         -------
         Autorangeoptions
         """
-        super().__init__("autorangeoptions")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('autorangeoptions')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -199,21 +194,21 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.xaxis.Autorangeoptions
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.xaxis.Autorangeoptions`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("clipmax", arg, clipmax)
-        self._set_property("clipmin", arg, clipmin)
-        self._set_property("include", arg, include)
-        self._set_property("includesrc", arg, includesrc)
-        self._set_property("maxallowed", arg, maxallowed)
-        self._set_property("minallowed", arg, minallowed)
+an instance of :class:`plotly.graph_objs.layout.xaxis.Autorangeoptions`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('clipmax', arg, clipmax)
+        self._set_property('clipmin', arg, clipmin)
+        self._set_property('include', arg, include)
+        self._set_property('includesrc', arg, includesrc)
+        self._set_property('maxallowed', arg, maxallowed)
+        self._set_property('minallowed', arg, minallowed)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/xaxis/_minor.py b/plotly/graph_objs/layout/xaxis/_minor.py
index b462c42eed4..eddcb276a80 100644
--- a/plotly/graph_objs/layout/xaxis/_minor.py
+++ b/plotly/graph_objs/layout/xaxis/_minor.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,24 +11,9 @@
 
 class Minor(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.xaxis"
-    _path_str = "layout.xaxis.minor"
-    _valid_props = {
-        "dtick",
-        "gridcolor",
-        "griddash",
-        "gridwidth",
-        "nticks",
-        "showgrid",
-        "tick0",
-        "tickcolor",
-        "ticklen",
-        "tickmode",
-        "ticks",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-    }
+    _parent_path_str = 'layout.xaxis'
+    _path_str = 'layout.xaxis.minor'
+    _valid_props = {"dtick", "gridcolor", "griddash", "gridwidth", "nticks", "showgrid", "tick0", "tickcolor", "ticklen", "tickmode", "ticks", "tickvals", "tickvalssrc", "tickwidth"}
 
     @property
     def dtick(self):
@@ -56,11 +45,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def gridcolor(self):
@@ -78,11 +67,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def griddash(self):
@@ -102,11 +91,11 @@ def griddash(self):
         -------
         str
         """
-        return self["griddash"]
+        return self['griddash']
 
     @griddash.setter
     def griddash(self, val):
-        self["griddash"] = val
+        self['griddash'] = val
 
     @property
     def gridwidth(self):
@@ -120,11 +109,11 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def nticks(self):
@@ -142,11 +131,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def showgrid(self):
@@ -161,11 +150,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def tick0(self):
@@ -186,11 +175,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickcolor(self):
@@ -208,11 +197,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def ticklen(self):
@@ -226,11 +215,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -251,11 +240,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def ticks(self):
@@ -272,11 +261,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def tickvals(self):
@@ -291,11 +280,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -309,11 +298,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -327,11 +316,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def _prop_descriptions(self):
@@ -416,26 +405,24 @@ def _prop_descriptions(self):
         tickwidth
             Sets the tick width (in px).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtick=None,
-        gridcolor=None,
-        griddash=None,
-        gridwidth=None,
-        nticks=None,
-        showgrid=None,
-        tick0=None,
-        tickcolor=None,
-        ticklen=None,
-        tickmode=None,
-        ticks=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtick=None,
+            gridcolor=None,
+            griddash=None,
+            gridwidth=None,
+            nticks=None,
+            showgrid=None,
+            tick0=None,
+            tickcolor=None,
+            ticklen=None,
+            tickmode=None,
+            ticks=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            **kwargs
+        ):
         """
         Construct a new Minor object
 
@@ -529,9 +516,9 @@ def __init__(
         -------
         Minor
         """
-        super().__init__("minor")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('minor')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -541,29 +528,29 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.xaxis.Minor
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.xaxis.Minor`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("dtick", arg, dtick)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("griddash", arg, griddash)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
+an instance of :class:`plotly.graph_objs.layout.xaxis.Minor`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('dtick', arg, dtick)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('griddash', arg, griddash)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/xaxis/_rangebreak.py b/plotly/graph_objs/layout/xaxis/_rangebreak.py
index 9bf3fc5c567..16c57b60858 100644
--- a/plotly/graph_objs/layout/xaxis/_rangebreak.py
+++ b/plotly/graph_objs/layout/xaxis/_rangebreak.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,39 +11,31 @@
 
 class Rangebreak(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.xaxis"
-    _path_str = "layout.xaxis.rangebreak"
-    _valid_props = {
-        "bounds",
-        "dvalue",
-        "enabled",
-        "name",
-        "pattern",
-        "templateitemname",
-        "values",
-    }
+    _parent_path_str = 'layout.xaxis'
+    _path_str = 'layout.xaxis.rangebreak'
+    _valid_props = {"bounds", "dvalue", "enabled", "name", "pattern", "templateitemname", "values"}
 
     @property
     def bounds(self):
         """
-            Sets the lower and upper bounds of this axis rangebreak. Can be
-            used with `pattern`.
-
-            The 'bounds' property is an info array that may be specified as:
+        Sets the lower and upper bounds of this axis rangebreak. Can be
+        used with `pattern`.
 
-            * a list or tuple of 2 elements where:
-        (0) The 'bounds[0]' property accepts values of any type
-        (1) The 'bounds[1]' property accepts values of any type
+        The 'bounds' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'bounds[0]' property accepts values of any type
+    (1) The 'bounds[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["bounds"]
+        return self['bounds']
 
     @bounds.setter
     def bounds(self, val):
-        self["bounds"] = val
+        self['bounds'] = val
 
     @property
     def dvalue(self):
@@ -54,11 +50,11 @@ def dvalue(self):
         -------
         int|float
         """
-        return self["dvalue"]
+        return self['dvalue']
 
     @dvalue.setter
     def dvalue(self, val):
-        self["dvalue"] = val
+        self['dvalue'] = val
 
     @property
     def enabled(self):
@@ -73,11 +69,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -98,11 +94,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def pattern(self):
@@ -126,11 +122,11 @@ def pattern(self):
         -------
         Any
         """
-        return self["pattern"]
+        return self['pattern']
 
     @pattern.setter
     def pattern(self, val):
-        self["pattern"] = val
+        self['pattern'] = val
 
     @property
     def templateitemname(self):
@@ -152,11 +148,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def values(self):
@@ -173,11 +169,11 @@ def values(self):
         -------
         list
         """
-        return self["values"]
+        return self['values']
 
     @values.setter
     def values(self, val):
-        self["values"] = val
+        self['values'] = val
 
     @property
     def _prop_descriptions(self):
@@ -228,19 +224,17 @@ def _prop_descriptions(self):
             rangebreaks. An alternative to `bounds`. Use `dvalue`
             to set the size of the values along the axis.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bounds=None,
-        dvalue=None,
-        enabled=None,
-        name=None,
-        pattern=None,
-        templateitemname=None,
-        values=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bounds=None,
+            dvalue=None,
+            enabled=None,
+            name=None,
+            pattern=None,
+            templateitemname=None,
+            values=None,
+            **kwargs
+        ):
         """
         Construct a new Rangebreak object
 
@@ -300,9 +294,9 @@ def __init__(
         -------
         Rangebreak
         """
-        super().__init__("rangebreaks")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('rangebreaks')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -312,22 +306,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.xaxis.Rangebreak
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.xaxis.Rangebreak`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bounds", arg, bounds)
-        self._set_property("dvalue", arg, dvalue)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("pattern", arg, pattern)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("values", arg, values)
+an instance of :class:`plotly.graph_objs.layout.xaxis.Rangebreak`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bounds', arg, bounds)
+        self._set_property('dvalue', arg, dvalue)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('pattern', arg, pattern)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('values', arg, values)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/xaxis/_rangeselector.py b/plotly/graph_objs/layout/xaxis/_rangeselector.py
index d97090d1396..63d370ba474 100644
--- a/plotly/graph_objs/layout/xaxis/_rangeselector.py
+++ b/plotly/graph_objs/layout/xaxis/_rangeselector.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Rangeselector(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.xaxis"
-    _path_str = "layout.xaxis.rangeselector"
-    _valid_props = {
-        "activecolor",
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "buttondefaults",
-        "buttons",
-        "font",
-        "visible",
-        "x",
-        "xanchor",
-        "y",
-        "yanchor",
-    }
+    _parent_path_str = 'layout.xaxis'
+    _path_str = 'layout.xaxis.rangeselector'
+    _valid_props = {"activecolor", "bgcolor", "bordercolor", "borderwidth", "buttondefaults", "buttons", "font", "visible", "x", "xanchor", "y", "yanchor"}
 
     @property
     def activecolor(self):
@@ -40,11 +31,11 @@ def activecolor(self):
         -------
         str
         """
-        return self["activecolor"]
+        return self['activecolor']
 
     @activecolor.setter
     def activecolor(self, val):
-        self["activecolor"] = val
+        self['activecolor'] = val
 
     @property
     def bgcolor(self):
@@ -62,11 +53,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -84,11 +75,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -103,11 +94,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def buttons(self):
@@ -125,11 +116,11 @@ def buttons(self):
         -------
         tuple[plotly.graph_objs.layout.xaxis.rangeselector.Button]
         """
-        return self["buttons"]
+        return self['buttons']
 
     @buttons.setter
     def buttons(self, val):
-        self["buttons"] = val
+        self['buttons'] = val
 
     @property
     def buttondefaults(self):
@@ -149,11 +140,11 @@ def buttondefaults(self):
         -------
         plotly.graph_objs.layout.xaxis.rangeselector.Button
         """
-        return self["buttondefaults"]
+        return self['buttondefaults']
 
     @buttondefaults.setter
     def buttondefaults(self, val):
-        self["buttondefaults"] = val
+        self['buttondefaults'] = val
 
     @property
     def font(self):
@@ -170,11 +161,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.xaxis.rangeselector.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def visible(self):
@@ -190,11 +181,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def x(self):
@@ -209,11 +200,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -230,11 +221,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def y(self):
@@ -249,11 +240,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -270,11 +261,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def _prop_descriptions(self):
@@ -320,24 +311,22 @@ def _prop_descriptions(self):
             anchor binds the `y` position to the "top", "middle" or
             "bottom" of the range selector.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        activecolor=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        buttons=None,
-        buttondefaults=None,
-        font=None,
-        visible=None,
-        x=None,
-        xanchor=None,
-        y=None,
-        yanchor=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            activecolor=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            buttons=None,
+            buttondefaults=None,
+            font=None,
+            visible=None,
+            x=None,
+            xanchor=None,
+            y=None,
+            yanchor=None,
+            **kwargs
+        ):
         """
         Construct a new Rangeselector object
 
@@ -392,9 +381,9 @@ def __init__(
         -------
         Rangeselector
         """
-        super().__init__("rangeselector")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('rangeselector')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -404,27 +393,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.xaxis.Rangeselector
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.xaxis.Rangeselector`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("activecolor", arg, activecolor)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("buttons", arg, buttons)
-        self._set_property("buttondefaults", arg, buttondefaults)
-        self._set_property("font", arg, font)
-        self._set_property("visible", arg, visible)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
+an instance of :class:`plotly.graph_objs.layout.xaxis.Rangeselector`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('activecolor', arg, activecolor)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('buttons', arg, buttons)
+        self._set_property('buttondefaults', arg, buttondefaults)
+        self._set_property('font', arg, font)
+        self._set_property('visible', arg, visible)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/xaxis/_rangeslider.py b/plotly/graph_objs/layout/xaxis/_rangeslider.py
index 6f374e39bf3..fa8d35279f9 100644
--- a/plotly/graph_objs/layout/xaxis/_rangeslider.py
+++ b/plotly/graph_objs/layout/xaxis/_rangeslider.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,18 +11,9 @@
 
 class Rangeslider(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.xaxis"
-    _path_str = "layout.xaxis.rangeslider"
-    _valid_props = {
-        "autorange",
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "range",
-        "thickness",
-        "visible",
-        "yaxis",
-    }
+    _parent_path_str = 'layout.xaxis'
+    _path_str = 'layout.xaxis.rangeslider'
+    _valid_props = {"autorange", "bgcolor", "bordercolor", "borderwidth", "range", "thickness", "visible", "yaxis"}
 
     @property
     def autorange(self):
@@ -34,11 +29,11 @@ def autorange(self):
         -------
         bool
         """
-        return self["autorange"]
+        return self['autorange']
 
     @autorange.setter
     def autorange(self, val):
-        self["autorange"] = val
+        self['autorange'] = val
 
     @property
     def bgcolor(self):
@@ -56,11 +51,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -78,11 +73,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -97,39 +92,39 @@ def borderwidth(self):
         -------
         int
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def range(self):
         """
-            Sets the range of the range slider. If not set, defaults to the
-            full xaxis range. If the axis `type` is "log", then you must
-            take the log of your desired range. If the axis `type` is
-            "date", it should be date strings, like date data, though Date
-            objects and unix milliseconds will be accepted and converted to
-            strings. If the axis `type` is "category", it should be
-            numbers, using the scale where each category is assigned a
-            serial number from zero in the order it appears.
-
-            The 'range' property is an info array that may be specified as:
-
-            * a list or tuple of 2 elements where:
-        (0) The 'range[0]' property accepts values of any type
-        (1) The 'range[1]' property accepts values of any type
+        Sets the range of the range slider. If not set, defaults to the
+        full xaxis range. If the axis `type` is "log", then you must
+        take the log of your desired range. If the axis `type` is
+        "date", it should be date strings, like date data, though Date
+        objects and unix milliseconds will be accepted and converted to
+        strings. If the axis `type` is "category", it should be
+        numbers, using the scale where each category is assigned a
+        serial number from zero in the order it appears.
+
+        The 'range' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'range[0]' property accepts values of any type
+    (1) The 'range[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["range"]
+        return self['range']
 
     @range.setter
     def range(self, val):
-        self["range"] = val
+        self['range'] = val
 
     @property
     def thickness(self):
@@ -144,11 +139,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def visible(self):
@@ -163,11 +158,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def yaxis(self):
@@ -182,11 +177,11 @@ def yaxis(self):
         -------
         plotly.graph_objs.layout.xaxis.rangeslider.YAxis
         """
-        return self["yaxis"]
+        return self['yaxis']
 
     @yaxis.setter
     def yaxis(self, val):
-        self["yaxis"] = val
+        self['yaxis'] = val
 
     @property
     def _prop_descriptions(self):
@@ -222,20 +217,18 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.layout.xaxis.rangeslider.Y
             Axis` instance or dict with compatible properties
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autorange=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        range=None,
-        thickness=None,
-        visible=None,
-        yaxis=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autorange=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            range=None,
+            thickness=None,
+            visible=None,
+            yaxis=None,
+            **kwargs
+        ):
         """
         Construct a new Rangeslider object
 
@@ -280,9 +273,9 @@ def __init__(
         -------
         Rangeslider
         """
-        super().__init__("rangeslider")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('rangeslider')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -292,23 +285,23 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.xaxis.Rangeslider
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.xaxis.Rangeslider`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autorange", arg, autorange)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("range", arg, range)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("visible", arg, visible)
-        self._set_property("yaxis", arg, yaxis)
+an instance of :class:`plotly.graph_objs.layout.xaxis.Rangeslider`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autorange', arg, autorange)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('range', arg, range)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('visible', arg, visible)
+        self._set_property('yaxis', arg, yaxis)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/xaxis/_tickfont.py b/plotly/graph_objs/layout/xaxis/_tickfont.py
index 5576d9de4ea..5c06a173c8b 100644
--- a/plotly/graph_objs/layout/xaxis/_tickfont.py
+++ b/plotly/graph_objs/layout/xaxis/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.xaxis"
-    _path_str = "layout.xaxis.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.xaxis'
+    _path_str = 'layout.xaxis.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.xaxis.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.xaxis.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.xaxis.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/xaxis/_tickformatstop.py b/plotly/graph_objs/layout/xaxis/_tickformatstop.py
index d575d0c9d83..30828760214 100644
--- a/plotly/graph_objs/layout/xaxis/_tickformatstop.py
+++ b/plotly/graph_objs/layout/xaxis/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.xaxis"
-    _path_str = "layout.xaxis.tickformatstop"
+    _parent_path_str = 'layout.xaxis'
+    _path_str = 'layout.xaxis.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.xaxis.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.xaxis.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.xaxis.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/xaxis/_title.py b/plotly/graph_objs/layout/xaxis/_title.py
index 0052eee8014..eff48958b3d 100644
--- a/plotly/graph_objs/layout/xaxis/_title.py
+++ b/plotly/graph_objs/layout/xaxis/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.xaxis"
-    _path_str = "layout.xaxis.title"
+    _parent_path_str = 'layout.xaxis'
+    _path_str = 'layout.xaxis.title'
     _valid_props = {"font", "standoff", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.xaxis.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def standoff(self):
@@ -51,11 +55,11 @@ def standoff(self):
         -------
         int|float
         """
-        return self["standoff"]
+        return self['standoff']
 
     @standoff.setter
     def standoff(self, val):
-        self["standoff"] = val
+        self['standoff'] = val
 
     @property
     def text(self):
@@ -70,11 +74,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -94,8 +98,13 @@ def _prop_descriptions(self):
         text
             Sets the title of this axis.
         """
-
-    def __init__(self, arg=None, font=None, standoff=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            standoff=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -124,9 +133,9 @@ def __init__(self, arg=None, font=None, standoff=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -136,18 +145,18 @@ def __init__(self, arg=None, font=None, standoff=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.xaxis.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.xaxis.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.xaxis.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("standoff", arg, standoff)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('standoff', arg, standoff)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/xaxis/rangeselector/__init__.py b/plotly/graph_objs/layout/xaxis/rangeselector/__init__.py
index 6c9372f1765..92f6b1860ad 100644
--- a/plotly/graph_objs/layout/xaxis/rangeselector/__init__.py
+++ b/plotly/graph_objs/layout/xaxis/rangeselector/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._button import Button
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._button.Button', '._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._button.Button", "._font.Font"]
-)
diff --git a/plotly/graph_objs/layout/xaxis/rangeselector/_button.py b/plotly/graph_objs/layout/xaxis/rangeselector/_button.py
index 524bb0adbe3..43c48152ca8 100644
--- a/plotly/graph_objs/layout/xaxis/rangeselector/_button.py
+++ b/plotly/graph_objs/layout/xaxis/rangeselector/_button.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,17 +11,9 @@
 
 class Button(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.xaxis.rangeselector"
-    _path_str = "layout.xaxis.rangeselector.button"
-    _valid_props = {
-        "count",
-        "label",
-        "name",
-        "step",
-        "stepmode",
-        "templateitemname",
-        "visible",
-    }
+    _parent_path_str = 'layout.xaxis.rangeselector'
+    _path_str = 'layout.xaxis.rangeselector.button'
+    _valid_props = {"count", "label", "name", "step", "stepmode", "templateitemname", "visible"}
 
     @property
     def count(self):
@@ -32,11 +28,11 @@ def count(self):
         -------
         int|float
         """
-        return self["count"]
+        return self['count']
 
     @count.setter
     def count(self, val):
-        self["count"] = val
+        self['count'] = val
 
     @property
     def label(self):
@@ -51,11 +47,11 @@ def label(self):
         -------
         str
         """
-        return self["label"]
+        return self['label']
 
     @label.setter
     def label(self, val):
-        self["label"] = val
+        self['label'] = val
 
     @property
     def name(self):
@@ -76,11 +72,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def step(self):
@@ -97,11 +93,11 @@ def step(self):
         -------
         Any
         """
-        return self["step"]
+        return self['step']
 
     @step.setter
     def step(self, val):
-        self["step"] = val
+        self['step'] = val
 
     @property
     def stepmode(self):
@@ -124,11 +120,11 @@ def stepmode(self):
         -------
         Any
         """
-        return self["stepmode"]
+        return self['stepmode']
 
     @stepmode.setter
     def stepmode(self, val):
-        self["stepmode"] = val
+        self['stepmode'] = val
 
     @property
     def templateitemname(self):
@@ -150,11 +146,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def visible(self):
@@ -168,11 +164,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -218,19 +214,17 @@ def _prop_descriptions(self):
         visible
             Determines whether or not this button is visible.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        count=None,
-        label=None,
-        name=None,
-        step=None,
-        stepmode=None,
-        templateitemname=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            count=None,
+            label=None,
+            name=None,
+            step=None,
+            stepmode=None,
+            templateitemname=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Button object
 
@@ -288,9 +282,9 @@ def __init__(
         -------
         Button
         """
-        super().__init__("buttons")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('buttons')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -300,22 +294,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.xaxis.rangeselector.Button
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.xaxis.rangeselector.Button`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("count", arg, count)
-        self._set_property("label", arg, label)
-        self._set_property("name", arg, name)
-        self._set_property("step", arg, step)
-        self._set_property("stepmode", arg, stepmode)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("visible", arg, visible)
+an instance of :class:`plotly.graph_objs.layout.xaxis.rangeselector.Button`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('count', arg, count)
+        self._set_property('label', arg, label)
+        self._set_property('name', arg, name)
+        self._set_property('step', arg, step)
+        self._set_property('stepmode', arg, stepmode)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/xaxis/rangeselector/_font.py b/plotly/graph_objs/layout/xaxis/rangeselector/_font.py
index 7b4a2c2cbd4..0c76a6057f7 100644
--- a/plotly/graph_objs/layout/xaxis/rangeselector/_font.py
+++ b/plotly/graph_objs/layout/xaxis/rangeselector/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.xaxis.rangeselector"
-    _path_str = "layout.xaxis.rangeselector.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.xaxis.rangeselector'
+    _path_str = 'layout.xaxis.rangeselector.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.xaxis.rangeselector.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.xaxis.rangeselector.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.xaxis.rangeselector.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/xaxis/rangeslider/__init__.py b/plotly/graph_objs/layout/xaxis/rangeslider/__init__.py
index 6218b2b7b56..8f177fe5ae8 100644
--- a/plotly/graph_objs/layout/xaxis/rangeslider/__init__.py
+++ b/plotly/graph_objs/layout/xaxis/rangeslider/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yaxis import YAxis
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._yaxis.YAxis']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._yaxis.YAxis"])
diff --git a/plotly/graph_objs/layout/xaxis/rangeslider/_yaxis.py b/plotly/graph_objs/layout/xaxis/rangeslider/_yaxis.py
index e35c040a1f3..eafaae9fd5f 100644
--- a/plotly/graph_objs/layout/xaxis/rangeslider/_yaxis.py
+++ b/plotly/graph_objs/layout/xaxis/rangeslider/_yaxis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,30 +11,30 @@
 
 class YAxis(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.xaxis.rangeslider"
-    _path_str = "layout.xaxis.rangeslider.yaxis"
+    _parent_path_str = 'layout.xaxis.rangeslider'
+    _path_str = 'layout.xaxis.rangeslider.yaxis'
     _valid_props = {"range", "rangemode"}
 
     @property
     def range(self):
         """
-            Sets the range of this axis for the rangeslider.
+        Sets the range of this axis for the rangeslider.
 
-            The 'range' property is an info array that may be specified as:
+        The 'range' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'range[0]' property accepts values of any type
+    (1) The 'range[1]' property accepts values of any type
 
-            * a list or tuple of 2 elements where:
-        (0) The 'range[0]' property accepts values of any type
-        (1) The 'range[1]' property accepts values of any type
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["range"]
+        return self['range']
 
     @range.setter
     def range(self, val):
-        self["range"] = val
+        self['range'] = val
 
     @property
     def rangemode(self):
@@ -49,11 +53,11 @@ def rangemode(self):
         -------
         Any
         """
-        return self["rangemode"]
+        return self['rangemode']
 
     @rangemode.setter
     def rangemode(self, val):
-        self["rangemode"] = val
+        self['rangemode'] = val
 
     @property
     def _prop_descriptions(self):
@@ -68,8 +72,12 @@ def _prop_descriptions(self):
             current range of the corresponding y-axis on the main
             subplot is used.
         """
-
-    def __init__(self, arg=None, range=None, rangemode=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            range=None,
+            rangemode=None,
+            **kwargs
+        ):
         """
         Construct a new YAxis object
 
@@ -93,9 +101,9 @@ def __init__(self, arg=None, range=None, rangemode=None, **kwargs):
         -------
         YAxis
         """
-        super().__init__("yaxis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('yaxis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -105,17 +113,17 @@ def __init__(self, arg=None, range=None, rangemode=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.xaxis.rangeslider.YAxis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.xaxis.rangeslider.YAxis`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.xaxis.rangeslider.YAxis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("range", arg, range)
-        self._set_property("rangemode", arg, rangemode)
+        self._set_property('range', arg, range)
+        self._set_property('rangemode', arg, rangemode)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/xaxis/title/__init__.py b/plotly/graph_objs/layout/xaxis/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/xaxis/title/__init__.py
+++ b/plotly/graph_objs/layout/xaxis/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/xaxis/title/_font.py b/plotly/graph_objs/layout/xaxis/title/_font.py
index 76322586cf2..84cf07481f2 100644
--- a/plotly/graph_objs/layout/xaxis/title/_font.py
+++ b/plotly/graph_objs/layout/xaxis/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.xaxis.title"
-    _path_str = "layout.xaxis.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.xaxis.title'
+    _path_str = 'layout.xaxis.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.xaxis.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.xaxis.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.xaxis.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/yaxis/__init__.py b/plotly/graph_objs/layout/yaxis/__init__.py
index 91bf9f612bb..7c927f49ab4 100644
--- a/plotly/graph_objs/layout/yaxis/__init__.py
+++ b/plotly/graph_objs/layout/yaxis/__init__.py
@@ -1,15 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._autorangeoptions import Autorangeoptions
+    from ._minor import Minor
+    from ._rangebreak import Rangebreak
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._autorangeoptions.Autorangeoptions', '._minor.Minor', '._rangebreak.Rangebreak', '._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    [
-        "._autorangeoptions.Autorangeoptions",
-        "._minor.Minor",
-        "._rangebreak.Rangebreak",
-        "._tickfont.Tickfont",
-        "._tickformatstop.Tickformatstop",
-        "._title.Title",
-    ],
-)
diff --git a/plotly/graph_objs/layout/yaxis/_autorangeoptions.py b/plotly/graph_objs/layout/yaxis/_autorangeoptions.py
index bbb50bdf806..2f37a75a767 100644
--- a/plotly/graph_objs/layout/yaxis/_autorangeoptions.py
+++ b/plotly/graph_objs/layout/yaxis/_autorangeoptions.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,16 +11,9 @@
 
 class Autorangeoptions(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.yaxis"
-    _path_str = "layout.yaxis.autorangeoptions"
-    _valid_props = {
-        "clipmax",
-        "clipmin",
-        "include",
-        "includesrc",
-        "maxallowed",
-        "minallowed",
-    }
+    _parent_path_str = 'layout.yaxis'
+    _path_str = 'layout.yaxis.autorangeoptions'
+    _valid_props = {"clipmax", "clipmin", "include", "includesrc", "maxallowed", "minallowed"}
 
     @property
     def clipmax(self):
@@ -30,11 +27,11 @@ def clipmax(self):
         -------
         Any
         """
-        return self["clipmax"]
+        return self['clipmax']
 
     @clipmax.setter
     def clipmax(self, val):
-        self["clipmax"] = val
+        self['clipmax'] = val
 
     @property
     def clipmin(self):
@@ -48,11 +45,11 @@ def clipmin(self):
         -------
         Any
         """
-        return self["clipmin"]
+        return self['clipmin']
 
     @clipmin.setter
     def clipmin(self, val):
-        self["clipmin"] = val
+        self['clipmin'] = val
 
     @property
     def include(self):
@@ -65,11 +62,11 @@ def include(self):
         -------
         Any|numpy.ndarray
         """
-        return self["include"]
+        return self['include']
 
     @include.setter
     def include(self, val):
-        self["include"] = val
+        self['include'] = val
 
     @property
     def includesrc(self):
@@ -83,11 +80,11 @@ def includesrc(self):
         -------
         str
         """
-        return self["includesrc"]
+        return self['includesrc']
 
     @includesrc.setter
     def includesrc(self, val):
-        self["includesrc"] = val
+        self['includesrc'] = val
 
     @property
     def maxallowed(self):
@@ -100,11 +97,11 @@ def maxallowed(self):
         -------
         Any
         """
-        return self["maxallowed"]
+        return self['maxallowed']
 
     @maxallowed.setter
     def maxallowed(self, val):
-        self["maxallowed"] = val
+        self['maxallowed'] = val
 
     @property
     def minallowed(self):
@@ -117,11 +114,11 @@ def minallowed(self):
         -------
         Any
         """
-        return self["minallowed"]
+        return self['minallowed']
 
     @minallowed.setter
     def minallowed(self, val):
-        self["minallowed"] = val
+        self['minallowed'] = val
 
     @property
     def _prop_descriptions(self):
@@ -144,18 +141,16 @@ def _prop_descriptions(self):
         minallowed
             Use this value exactly as autorange minimum.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        clipmax=None,
-        clipmin=None,
-        include=None,
-        includesrc=None,
-        maxallowed=None,
-        minallowed=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            clipmax=None,
+            clipmin=None,
+            include=None,
+            includesrc=None,
+            maxallowed=None,
+            minallowed=None,
+            **kwargs
+        ):
         """
         Construct a new Autorangeoptions object
 
@@ -187,9 +182,9 @@ def __init__(
         -------
         Autorangeoptions
         """
-        super().__init__("autorangeoptions")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('autorangeoptions')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -199,21 +194,21 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.yaxis.Autorangeoptions
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.yaxis.Autorangeoptions`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("clipmax", arg, clipmax)
-        self._set_property("clipmin", arg, clipmin)
-        self._set_property("include", arg, include)
-        self._set_property("includesrc", arg, includesrc)
-        self._set_property("maxallowed", arg, maxallowed)
-        self._set_property("minallowed", arg, minallowed)
+an instance of :class:`plotly.graph_objs.layout.yaxis.Autorangeoptions`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('clipmax', arg, clipmax)
+        self._set_property('clipmin', arg, clipmin)
+        self._set_property('include', arg, include)
+        self._set_property('includesrc', arg, includesrc)
+        self._set_property('maxallowed', arg, maxallowed)
+        self._set_property('minallowed', arg, minallowed)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/yaxis/_minor.py b/plotly/graph_objs/layout/yaxis/_minor.py
index f621a191f1d..d87c25d3909 100644
--- a/plotly/graph_objs/layout/yaxis/_minor.py
+++ b/plotly/graph_objs/layout/yaxis/_minor.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,24 +11,9 @@
 
 class Minor(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.yaxis"
-    _path_str = "layout.yaxis.minor"
-    _valid_props = {
-        "dtick",
-        "gridcolor",
-        "griddash",
-        "gridwidth",
-        "nticks",
-        "showgrid",
-        "tick0",
-        "tickcolor",
-        "ticklen",
-        "tickmode",
-        "ticks",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-    }
+    _parent_path_str = 'layout.yaxis'
+    _path_str = 'layout.yaxis.minor'
+    _valid_props = {"dtick", "gridcolor", "griddash", "gridwidth", "nticks", "showgrid", "tick0", "tickcolor", "ticklen", "tickmode", "ticks", "tickvals", "tickvalssrc", "tickwidth"}
 
     @property
     def dtick(self):
@@ -56,11 +45,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def gridcolor(self):
@@ -78,11 +67,11 @@ def gridcolor(self):
         -------
         str
         """
-        return self["gridcolor"]
+        return self['gridcolor']
 
     @gridcolor.setter
     def gridcolor(self, val):
-        self["gridcolor"] = val
+        self['gridcolor'] = val
 
     @property
     def griddash(self):
@@ -102,11 +91,11 @@ def griddash(self):
         -------
         str
         """
-        return self["griddash"]
+        return self['griddash']
 
     @griddash.setter
     def griddash(self, val):
-        self["griddash"] = val
+        self['griddash'] = val
 
     @property
     def gridwidth(self):
@@ -120,11 +109,11 @@ def gridwidth(self):
         -------
         int|float
         """
-        return self["gridwidth"]
+        return self['gridwidth']
 
     @gridwidth.setter
     def gridwidth(self, val):
-        self["gridwidth"] = val
+        self['gridwidth'] = val
 
     @property
     def nticks(self):
@@ -142,11 +131,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def showgrid(self):
@@ -161,11 +150,11 @@ def showgrid(self):
         -------
         bool
         """
-        return self["showgrid"]
+        return self['showgrid']
 
     @showgrid.setter
     def showgrid(self, val):
-        self["showgrid"] = val
+        self['showgrid'] = val
 
     @property
     def tick0(self):
@@ -186,11 +175,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickcolor(self):
@@ -208,11 +197,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def ticklen(self):
@@ -226,11 +215,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -251,11 +240,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def ticks(self):
@@ -272,11 +261,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def tickvals(self):
@@ -291,11 +280,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -309,11 +298,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -327,11 +316,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def _prop_descriptions(self):
@@ -416,26 +405,24 @@ def _prop_descriptions(self):
         tickwidth
             Sets the tick width (in px).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtick=None,
-        gridcolor=None,
-        griddash=None,
-        gridwidth=None,
-        nticks=None,
-        showgrid=None,
-        tick0=None,
-        tickcolor=None,
-        ticklen=None,
-        tickmode=None,
-        ticks=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtick=None,
+            gridcolor=None,
+            griddash=None,
+            gridwidth=None,
+            nticks=None,
+            showgrid=None,
+            tick0=None,
+            tickcolor=None,
+            ticklen=None,
+            tickmode=None,
+            ticks=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            **kwargs
+        ):
         """
         Construct a new Minor object
 
@@ -529,9 +516,9 @@ def __init__(
         -------
         Minor
         """
-        super().__init__("minor")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('minor')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -541,29 +528,29 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.yaxis.Minor
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.yaxis.Minor`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("dtick", arg, dtick)
-        self._set_property("gridcolor", arg, gridcolor)
-        self._set_property("griddash", arg, griddash)
-        self._set_property("gridwidth", arg, gridwidth)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("showgrid", arg, showgrid)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
+an instance of :class:`plotly.graph_objs.layout.yaxis.Minor`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('dtick', arg, dtick)
+        self._set_property('gridcolor', arg, gridcolor)
+        self._set_property('griddash', arg, griddash)
+        self._set_property('gridwidth', arg, gridwidth)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('showgrid', arg, showgrid)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/yaxis/_rangebreak.py b/plotly/graph_objs/layout/yaxis/_rangebreak.py
index 2c879926433..81c37df788b 100644
--- a/plotly/graph_objs/layout/yaxis/_rangebreak.py
+++ b/plotly/graph_objs/layout/yaxis/_rangebreak.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,39 +11,31 @@
 
 class Rangebreak(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.yaxis"
-    _path_str = "layout.yaxis.rangebreak"
-    _valid_props = {
-        "bounds",
-        "dvalue",
-        "enabled",
-        "name",
-        "pattern",
-        "templateitemname",
-        "values",
-    }
+    _parent_path_str = 'layout.yaxis'
+    _path_str = 'layout.yaxis.rangebreak'
+    _valid_props = {"bounds", "dvalue", "enabled", "name", "pattern", "templateitemname", "values"}
 
     @property
     def bounds(self):
         """
-            Sets the lower and upper bounds of this axis rangebreak. Can be
-            used with `pattern`.
-
-            The 'bounds' property is an info array that may be specified as:
+        Sets the lower and upper bounds of this axis rangebreak. Can be
+        used with `pattern`.
 
-            * a list or tuple of 2 elements where:
-        (0) The 'bounds[0]' property accepts values of any type
-        (1) The 'bounds[1]' property accepts values of any type
+        The 'bounds' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'bounds[0]' property accepts values of any type
+    (1) The 'bounds[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["bounds"]
+        return self['bounds']
 
     @bounds.setter
     def bounds(self, val):
-        self["bounds"] = val
+        self['bounds'] = val
 
     @property
     def dvalue(self):
@@ -54,11 +50,11 @@ def dvalue(self):
         -------
         int|float
         """
-        return self["dvalue"]
+        return self['dvalue']
 
     @dvalue.setter
     def dvalue(self, val):
-        self["dvalue"] = val
+        self['dvalue'] = val
 
     @property
     def enabled(self):
@@ -73,11 +69,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -98,11 +94,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def pattern(self):
@@ -126,11 +122,11 @@ def pattern(self):
         -------
         Any
         """
-        return self["pattern"]
+        return self['pattern']
 
     @pattern.setter
     def pattern(self, val):
-        self["pattern"] = val
+        self['pattern'] = val
 
     @property
     def templateitemname(self):
@@ -152,11 +148,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def values(self):
@@ -173,11 +169,11 @@ def values(self):
         -------
         list
         """
-        return self["values"]
+        return self['values']
 
     @values.setter
     def values(self, val):
-        self["values"] = val
+        self['values'] = val
 
     @property
     def _prop_descriptions(self):
@@ -228,19 +224,17 @@ def _prop_descriptions(self):
             rangebreaks. An alternative to `bounds`. Use `dvalue`
             to set the size of the values along the axis.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bounds=None,
-        dvalue=None,
-        enabled=None,
-        name=None,
-        pattern=None,
-        templateitemname=None,
-        values=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bounds=None,
+            dvalue=None,
+            enabled=None,
+            name=None,
+            pattern=None,
+            templateitemname=None,
+            values=None,
+            **kwargs
+        ):
         """
         Construct a new Rangebreak object
 
@@ -300,9 +294,9 @@ def __init__(
         -------
         Rangebreak
         """
-        super().__init__("rangebreaks")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('rangebreaks')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -312,22 +306,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.yaxis.Rangebreak
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.yaxis.Rangebreak`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bounds", arg, bounds)
-        self._set_property("dvalue", arg, dvalue)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("pattern", arg, pattern)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("values", arg, values)
+an instance of :class:`plotly.graph_objs.layout.yaxis.Rangebreak`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bounds', arg, bounds)
+        self._set_property('dvalue', arg, dvalue)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('pattern', arg, pattern)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('values', arg, values)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/yaxis/_tickfont.py b/plotly/graph_objs/layout/yaxis/_tickfont.py
index 0a379c2a9ea..305e406325e 100644
--- a/plotly/graph_objs/layout/yaxis/_tickfont.py
+++ b/plotly/graph_objs/layout/yaxis/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.yaxis"
-    _path_str = "layout.yaxis.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.yaxis'
+    _path_str = 'layout.yaxis.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.yaxis.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.yaxis.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.yaxis.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/yaxis/_tickformatstop.py b/plotly/graph_objs/layout/yaxis/_tickformatstop.py
index 67495db3253..eefe97cfb9a 100644
--- a/plotly/graph_objs/layout/yaxis/_tickformatstop.py
+++ b/plotly/graph_objs/layout/yaxis/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.yaxis"
-    _path_str = "layout.yaxis.tickformatstop"
+    _parent_path_str = 'layout.yaxis'
+    _path_str = 'layout.yaxis.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.yaxis.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.yaxis.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.yaxis.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/yaxis/_title.py b/plotly/graph_objs/layout/yaxis/_title.py
index 6b5273afb83..fc70c3e0485 100644
--- a/plotly/graph_objs/layout/yaxis/_title.py
+++ b/plotly/graph_objs/layout/yaxis/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.yaxis"
-    _path_str = "layout.yaxis.title"
+    _parent_path_str = 'layout.yaxis'
+    _path_str = 'layout.yaxis.title'
     _valid_props = {"font", "standoff", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.layout.yaxis.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def standoff(self):
@@ -51,11 +55,11 @@ def standoff(self):
         -------
         int|float
         """
-        return self["standoff"]
+        return self['standoff']
 
     @standoff.setter
     def standoff(self, val):
-        self["standoff"] = val
+        self['standoff'] = val
 
     @property
     def text(self):
@@ -70,11 +74,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -94,8 +98,13 @@ def _prop_descriptions(self):
         text
             Sets the title of this axis.
         """
-
-    def __init__(self, arg=None, font=None, standoff=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            standoff=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -124,9 +133,9 @@ def __init__(self, arg=None, font=None, standoff=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -136,18 +145,18 @@ def __init__(self, arg=None, font=None, standoff=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.yaxis.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.yaxis.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.layout.yaxis.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("standoff", arg, standoff)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('standoff', arg, standoff)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/layout/yaxis/title/__init__.py b/plotly/graph_objs/layout/yaxis/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/layout/yaxis/title/__init__.py
+++ b/plotly/graph_objs/layout/yaxis/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/layout/yaxis/title/_font.py b/plotly/graph_objs/layout/yaxis/title/_font.py
index c9f4cf075e9..e552c6f5ae4 100644
--- a/plotly/graph_objs/layout/yaxis/title/_font.py
+++ b/plotly/graph_objs/layout/yaxis/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseLayoutHierarchyType):
 
-    _parent_path_str = "layout.yaxis.title"
-    _path_str = "layout.yaxis.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'layout.yaxis.title'
+    _path_str = 'layout.yaxis.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.layout.yaxis.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.layout.yaxis.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.layout.yaxis.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/mesh3d/__init__.py b/plotly/graph_objs/mesh3d/__init__.py
index 60c48633786..3900385a55a 100644
--- a/plotly/graph_objs/mesh3d/__init__.py
+++ b/plotly/graph_objs/mesh3d/__init__.py
@@ -1,16 +1,22 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._contour import Contour
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._lighting import Lighting
+    from ._lightposition import Lightposition
+    from ._stream import Stream
+    from . import colorbar
+    from . import hoverlabel
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar', '.hoverlabel', '.legendgrouptitle'],
+        ['._colorbar.ColorBar', '._contour.Contour', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._lighting.Lighting', '._lightposition.Lightposition', '._stream.Stream']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar", ".hoverlabel", ".legendgrouptitle"],
-    [
-        "._colorbar.ColorBar",
-        "._contour.Contour",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._lighting.Lighting",
-        "._lightposition.Lightposition",
-        "._stream.Stream",
-    ],
-)
diff --git a/plotly/graph_objs/mesh3d/_colorbar.py b/plotly/graph_objs/mesh3d/_colorbar.py
index 143cc846a27..4e37a233eed 100644
--- a/plotly/graph_objs/mesh3d/_colorbar.py
+++ b/plotly/graph_objs/mesh3d/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "mesh3d"
-    _path_str = "mesh3d.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'mesh3d'
+    _path_str = 'mesh3d.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.mesh3d.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.mesh3d.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.mesh3d.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.mesh3d.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.mesh3d.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.mesh3d.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.mesh3d.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/mesh3d/_contour.py b/plotly/graph_objs/mesh3d/_contour.py
index 25c2671346a..3274a98017c 100644
--- a/plotly/graph_objs/mesh3d/_contour.py
+++ b/plotly/graph_objs/mesh3d/_contour.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Contour(_BaseTraceHierarchyType):
 
-    _parent_path_str = "mesh3d"
-    _path_str = "mesh3d.contour"
+    _parent_path_str = 'mesh3d'
+    _path_str = 'mesh3d.contour'
     _valid_props = {"color", "show", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def show(self):
@@ -45,11 +49,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def width(self):
@@ -63,11 +67,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         width
             Sets the width of the contour lines.
         """
-
-    def __init__(self, arg=None, color=None, show=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            show=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Contour object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, color=None, show=None, width=None, **kwargs):
         -------
         Contour
         """
-        super().__init__("contour")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('contour')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, color=None, show=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.mesh3d.Contour
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.mesh3d.Contour`"""
-            )
+an instance of :class:`plotly.graph_objs.mesh3d.Contour`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("show", arg, show)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('show', arg, show)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/mesh3d/_hoverlabel.py b/plotly/graph_objs/mesh3d/_hoverlabel.py
index 9ef3a060695..25a21d2916a 100644
--- a/plotly/graph_objs/mesh3d/_hoverlabel.py
+++ b/plotly/graph_objs/mesh3d/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "mesh3d"
-    _path_str = "mesh3d.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'mesh3d'
+    _path_str = 'mesh3d.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.mesh3d.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.mesh3d.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.mesh3d.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.mesh3d.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/mesh3d/_legendgrouptitle.py b/plotly/graph_objs/mesh3d/_legendgrouptitle.py
index b0eb12df69e..9f905fc43de 100644
--- a/plotly/graph_objs/mesh3d/_legendgrouptitle.py
+++ b/plotly/graph_objs/mesh3d/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "mesh3d"
-    _path_str = "mesh3d.legendgrouptitle"
+    _parent_path_str = 'mesh3d'
+    _path_str = 'mesh3d.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.mesh3d.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.mesh3d.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.mesh3d.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.mesh3d.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/mesh3d/_lighting.py b/plotly/graph_objs/mesh3d/_lighting.py
index a8568627fdc..4bf748f4dab 100644
--- a/plotly/graph_objs/mesh3d/_lighting.py
+++ b/plotly/graph_objs/mesh3d/_lighting.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,17 +11,9 @@
 
 class Lighting(_BaseTraceHierarchyType):
 
-    _parent_path_str = "mesh3d"
-    _path_str = "mesh3d.lighting"
-    _valid_props = {
-        "ambient",
-        "diffuse",
-        "facenormalsepsilon",
-        "fresnel",
-        "roughness",
-        "specular",
-        "vertexnormalsepsilon",
-    }
+    _parent_path_str = 'mesh3d'
+    _path_str = 'mesh3d.lighting'
+    _valid_props = {"ambient", "diffuse", "facenormalsepsilon", "fresnel", "roughness", "specular", "vertexnormalsepsilon"}
 
     @property
     def ambient(self):
@@ -32,11 +28,11 @@ def ambient(self):
         -------
         int|float
         """
-        return self["ambient"]
+        return self['ambient']
 
     @ambient.setter
     def ambient(self, val):
-        self["ambient"] = val
+        self['ambient'] = val
 
     @property
     def diffuse(self):
@@ -51,11 +47,11 @@ def diffuse(self):
         -------
         int|float
         """
-        return self["diffuse"]
+        return self['diffuse']
 
     @diffuse.setter
     def diffuse(self, val):
-        self["diffuse"] = val
+        self['diffuse'] = val
 
     @property
     def facenormalsepsilon(self):
@@ -70,11 +66,11 @@ def facenormalsepsilon(self):
         -------
         int|float
         """
-        return self["facenormalsepsilon"]
+        return self['facenormalsepsilon']
 
     @facenormalsepsilon.setter
     def facenormalsepsilon(self, val):
-        self["facenormalsepsilon"] = val
+        self['facenormalsepsilon'] = val
 
     @property
     def fresnel(self):
@@ -90,11 +86,11 @@ def fresnel(self):
         -------
         int|float
         """
-        return self["fresnel"]
+        return self['fresnel']
 
     @fresnel.setter
     def fresnel(self, val):
-        self["fresnel"] = val
+        self['fresnel'] = val
 
     @property
     def roughness(self):
@@ -109,11 +105,11 @@ def roughness(self):
         -------
         int|float
         """
-        return self["roughness"]
+        return self['roughness']
 
     @roughness.setter
     def roughness(self, val):
-        self["roughness"] = val
+        self['roughness'] = val
 
     @property
     def specular(self):
@@ -128,11 +124,11 @@ def specular(self):
         -------
         int|float
         """
-        return self["specular"]
+        return self['specular']
 
     @specular.setter
     def specular(self, val):
-        self["specular"] = val
+        self['specular'] = val
 
     @property
     def vertexnormalsepsilon(self):
@@ -147,11 +143,11 @@ def vertexnormalsepsilon(self):
         -------
         int|float
         """
-        return self["vertexnormalsepsilon"]
+        return self['vertexnormalsepsilon']
 
     @vertexnormalsepsilon.setter
     def vertexnormalsepsilon(self, val):
-        self["vertexnormalsepsilon"] = val
+        self['vertexnormalsepsilon'] = val
 
     @property
     def _prop_descriptions(self):
@@ -180,19 +176,17 @@ def _prop_descriptions(self):
             Epsilon for vertex normals calculation avoids math
             issues arising from degenerate geometry.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        ambient=None,
-        diffuse=None,
-        facenormalsepsilon=None,
-        fresnel=None,
-        roughness=None,
-        specular=None,
-        vertexnormalsepsilon=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            ambient=None,
+            diffuse=None,
+            facenormalsepsilon=None,
+            fresnel=None,
+            roughness=None,
+            specular=None,
+            vertexnormalsepsilon=None,
+            **kwargs
+        ):
         """
         Construct a new Lighting object
 
@@ -230,9 +224,9 @@ def __init__(
         -------
         Lighting
         """
-        super().__init__("lighting")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('lighting')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -242,22 +236,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.mesh3d.Lighting
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.mesh3d.Lighting`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("ambient", arg, ambient)
-        self._set_property("diffuse", arg, diffuse)
-        self._set_property("facenormalsepsilon", arg, facenormalsepsilon)
-        self._set_property("fresnel", arg, fresnel)
-        self._set_property("roughness", arg, roughness)
-        self._set_property("specular", arg, specular)
-        self._set_property("vertexnormalsepsilon", arg, vertexnormalsepsilon)
+an instance of :class:`plotly.graph_objs.mesh3d.Lighting`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('ambient', arg, ambient)
+        self._set_property('diffuse', arg, diffuse)
+        self._set_property('facenormalsepsilon', arg, facenormalsepsilon)
+        self._set_property('fresnel', arg, fresnel)
+        self._set_property('roughness', arg, roughness)
+        self._set_property('specular', arg, specular)
+        self._set_property('vertexnormalsepsilon', arg, vertexnormalsepsilon)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/mesh3d/_lightposition.py b/plotly/graph_objs/mesh3d/_lightposition.py
index b30854bd8cf..040c0099683 100644
--- a/plotly/graph_objs/mesh3d/_lightposition.py
+++ b/plotly/graph_objs/mesh3d/_lightposition.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Lightposition(_BaseTraceHierarchyType):
 
-    _parent_path_str = "mesh3d"
-    _path_str = "mesh3d.lightposition"
+    _parent_path_str = 'mesh3d'
+    _path_str = 'mesh3d.lightposition'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -23,11 +27,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -41,11 +45,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -59,11 +63,11 @@ def z(self):
         -------
         int|float
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -78,8 +82,13 @@ def _prop_descriptions(self):
             Numeric vector, representing the Z coordinate for each
             vertex.
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Lightposition object
 
@@ -103,9 +112,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Lightposition
         """
-        super().__init__("lightposition")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('lightposition')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -115,18 +124,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.mesh3d.Lightposition
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.mesh3d.Lightposition`"""
-            )
+an instance of :class:`plotly.graph_objs.mesh3d.Lightposition`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/mesh3d/_stream.py b/plotly/graph_objs/mesh3d/_stream.py
index be3106ca687..9a3772870b9 100644
--- a/plotly/graph_objs/mesh3d/_stream.py
+++ b/plotly/graph_objs/mesh3d/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "mesh3d"
-    _path_str = "mesh3d.stream"
+    _parent_path_str = 'mesh3d'
+    _path_str = 'mesh3d.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.mesh3d.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.mesh3d.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.mesh3d.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/mesh3d/colorbar/__init__.py b/plotly/graph_objs/mesh3d/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/mesh3d/colorbar/__init__.py
+++ b/plotly/graph_objs/mesh3d/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/mesh3d/colorbar/_tickfont.py b/plotly/graph_objs/mesh3d/colorbar/_tickfont.py
index d5f567e982f..d70af09d0ca 100644
--- a/plotly/graph_objs/mesh3d/colorbar/_tickfont.py
+++ b/plotly/graph_objs/mesh3d/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "mesh3d.colorbar"
-    _path_str = "mesh3d.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'mesh3d.colorbar'
+    _path_str = 'mesh3d.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.mesh3d.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.mesh3d.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.mesh3d.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/mesh3d/colorbar/_tickformatstop.py b/plotly/graph_objs/mesh3d/colorbar/_tickformatstop.py
index 0998ddfab21..15e9eb746b8 100644
--- a/plotly/graph_objs/mesh3d/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/mesh3d/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "mesh3d.colorbar"
-    _path_str = "mesh3d.colorbar.tickformatstop"
+    _parent_path_str = 'mesh3d.colorbar'
+    _path_str = 'mesh3d.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.mesh3d.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.mesh3d.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.mesh3d.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/mesh3d/colorbar/_title.py b/plotly/graph_objs/mesh3d/colorbar/_title.py
index b5ea3e82abc..7132b501d15 100644
--- a/plotly/graph_objs/mesh3d/colorbar/_title.py
+++ b/plotly/graph_objs/mesh3d/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "mesh3d.colorbar"
-    _path_str = "mesh3d.colorbar.title"
+    _parent_path_str = 'mesh3d.colorbar'
+    _path_str = 'mesh3d.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.mesh3d.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.mesh3d.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.mesh3d.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.mesh3d.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/mesh3d/colorbar/title/__init__.py b/plotly/graph_objs/mesh3d/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/mesh3d/colorbar/title/__init__.py
+++ b/plotly/graph_objs/mesh3d/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/mesh3d/colorbar/title/_font.py b/plotly/graph_objs/mesh3d/colorbar/title/_font.py
index 47309f868bc..7302f71a852 100644
--- a/plotly/graph_objs/mesh3d/colorbar/title/_font.py
+++ b/plotly/graph_objs/mesh3d/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "mesh3d.colorbar.title"
-    _path_str = "mesh3d.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'mesh3d.colorbar.title'
+    _path_str = 'mesh3d.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.mesh3d.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.mesh3d.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.mesh3d.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/mesh3d/hoverlabel/__init__.py b/plotly/graph_objs/mesh3d/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/mesh3d/hoverlabel/__init__.py
+++ b/plotly/graph_objs/mesh3d/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/mesh3d/hoverlabel/_font.py b/plotly/graph_objs/mesh3d/hoverlabel/_font.py
index 71a531c97b9..d5586567ed4 100644
--- a/plotly/graph_objs/mesh3d/hoverlabel/_font.py
+++ b/plotly/graph_objs/mesh3d/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "mesh3d.hoverlabel"
-    _path_str = "mesh3d.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'mesh3d.hoverlabel'
+    _path_str = 'mesh3d.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.mesh3d.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.mesh3d.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.mesh3d.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/mesh3d/legendgrouptitle/__init__.py b/plotly/graph_objs/mesh3d/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/mesh3d/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/mesh3d/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/mesh3d/legendgrouptitle/_font.py b/plotly/graph_objs/mesh3d/legendgrouptitle/_font.py
index c7a66a7c0e6..56756e2eb6c 100644
--- a/plotly/graph_objs/mesh3d/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/mesh3d/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "mesh3d.legendgrouptitle"
-    _path_str = "mesh3d.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'mesh3d.legendgrouptitle'
+    _path_str = 'mesh3d.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.mesh3d.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.mesh3d.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.mesh3d.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/ohlc/__init__.py b/plotly/graph_objs/ohlc/__init__.py
index 4b308ef8c3e..c26dcfef0af 100644
--- a/plotly/graph_objs/ohlc/__init__.py
+++ b/plotly/graph_objs/ohlc/__init__.py
@@ -1,15 +1,22 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._decreasing import Decreasing
+    from ._hoverlabel import Hoverlabel
+    from ._increasing import Increasing
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._stream import Stream
+    from . import decreasing
+    from . import hoverlabel
+    from . import increasing
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.decreasing', '.hoverlabel', '.increasing', '.legendgrouptitle'],
+        ['._decreasing.Decreasing', '._hoverlabel.Hoverlabel', '._increasing.Increasing', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._stream.Stream']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".decreasing", ".hoverlabel", ".increasing", ".legendgrouptitle"],
-    [
-        "._decreasing.Decreasing",
-        "._hoverlabel.Hoverlabel",
-        "._increasing.Increasing",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._stream.Stream",
-    ],
-)
diff --git a/plotly/graph_objs/ohlc/_decreasing.py b/plotly/graph_objs/ohlc/_decreasing.py
index fe95dae848a..e62795f9645 100644
--- a/plotly/graph_objs/ohlc/_decreasing.py
+++ b/plotly/graph_objs/ohlc/_decreasing.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Decreasing(_BaseTraceHierarchyType):
 
-    _parent_path_str = "ohlc"
-    _path_str = "ohlc.decreasing"
+    _parent_path_str = 'ohlc'
+    _path_str = 'ohlc.decreasing'
     _valid_props = {"line"}
 
     @property
@@ -24,11 +28,11 @@ def line(self):
         -------
         plotly.graph_objs.ohlc.decreasing.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.ohlc.decreasing.Line`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, line=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            line=None,
+            **kwargs
+        ):
         """
         Construct a new Decreasing object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, line=None, **kwargs):
         -------
         Decreasing
         """
-        super().__init__("decreasing")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('decreasing')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, line=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.ohlc.Decreasing
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.ohlc.Decreasing`"""
-            )
+an instance of :class:`plotly.graph_objs.ohlc.Decreasing`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("line", arg, line)
+        self._set_property('line', arg, line)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/ohlc/_hoverlabel.py b/plotly/graph_objs/ohlc/_hoverlabel.py
index 73117e09cec..558e0f1e401 100644
--- a/plotly/graph_objs/ohlc/_hoverlabel.py
+++ b/plotly/graph_objs/ohlc/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,20 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "ohlc"
-    _path_str = "ohlc.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-        "split",
-    }
+    _parent_path_str = 'ohlc'
+    _path_str = 'ohlc.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc", "split"}
 
     @property
     def align(self):
@@ -38,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -56,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -79,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -97,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -120,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -139,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -160,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.ohlc.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -185,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -204,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def split(self):
@@ -223,11 +216,11 @@ def split(self):
         -------
         bool
         """
-        return self["split"]
+        return self['split']
 
     @split.setter
     def split(self, val):
-        self["split"] = val
+        self['split'] = val
 
     @property
     def _prop_descriptions(self):
@@ -268,22 +261,20 @@ def _prop_descriptions(self):
             Show hover information (open, close, high, low) in
             separate labels.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        split=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            split=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -333,9 +324,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -345,25 +336,25 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.ohlc.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.ohlc.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
-        self._set_property("split", arg, split)
+an instance of :class:`plotly.graph_objs.ohlc.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
+        self._set_property('split', arg, split)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/ohlc/_increasing.py b/plotly/graph_objs/ohlc/_increasing.py
index bd218e3a9ed..f0aee7caef1 100644
--- a/plotly/graph_objs/ohlc/_increasing.py
+++ b/plotly/graph_objs/ohlc/_increasing.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Increasing(_BaseTraceHierarchyType):
 
-    _parent_path_str = "ohlc"
-    _path_str = "ohlc.increasing"
+    _parent_path_str = 'ohlc'
+    _path_str = 'ohlc.increasing'
     _valid_props = {"line"}
 
     @property
@@ -24,11 +28,11 @@ def line(self):
         -------
         plotly.graph_objs.ohlc.increasing.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.ohlc.increasing.Line`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, line=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            line=None,
+            **kwargs
+        ):
         """
         Construct a new Increasing object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, line=None, **kwargs):
         -------
         Increasing
         """
-        super().__init__("increasing")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('increasing')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, line=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.ohlc.Increasing
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.ohlc.Increasing`"""
-            )
+an instance of :class:`plotly.graph_objs.ohlc.Increasing`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("line", arg, line)
+        self._set_property('line', arg, line)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/ohlc/_legendgrouptitle.py b/plotly/graph_objs/ohlc/_legendgrouptitle.py
index abd8266b8f1..06d414c8fd9 100644
--- a/plotly/graph_objs/ohlc/_legendgrouptitle.py
+++ b/plotly/graph_objs/ohlc/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "ohlc"
-    _path_str = "ohlc.legendgrouptitle"
+    _parent_path_str = 'ohlc'
+    _path_str = 'ohlc.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.ohlc.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.ohlc.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.ohlc.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.ohlc.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/ohlc/_line.py b/plotly/graph_objs/ohlc/_line.py
index 5e436039101..e2c1a592d61 100644
--- a/plotly/graph_objs/ohlc/_line.py
+++ b/plotly/graph_objs/ohlc/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "ohlc"
-    _path_str = "ohlc.line"
+    _parent_path_str = 'ohlc'
+    _path_str = 'ohlc.line'
     _valid_props = {"dash", "width"}
 
     @property
@@ -31,11 +35,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def width(self):
@@ -51,11 +55,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -72,8 +76,12 @@ def _prop_descriptions(self):
             be set per direction via `increasing.line.width` and
             `decreasing.line.width`.
         """
-
-    def __init__(self, arg=None, dash=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            dash=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -98,9 +106,9 @@ def __init__(self, arg=None, dash=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -110,17 +118,17 @@ def __init__(self, arg=None, dash=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.ohlc.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.ohlc.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.ohlc.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dash", arg, dash)
-        self._set_property("width", arg, width)
+        self._set_property('dash', arg, dash)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/ohlc/_stream.py b/plotly/graph_objs/ohlc/_stream.py
index 97b72d8acb3..0c8a7725caf 100644
--- a/plotly/graph_objs/ohlc/_stream.py
+++ b/plotly/graph_objs/ohlc/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "ohlc"
-    _path_str = "ohlc.stream"
+    _parent_path_str = 'ohlc'
+    _path_str = 'ohlc.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.ohlc.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.ohlc.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.ohlc.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/ohlc/decreasing/__init__.py b/plotly/graph_objs/ohlc/decreasing/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/ohlc/decreasing/__init__.py
+++ b/plotly/graph_objs/ohlc/decreasing/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/ohlc/decreasing/_line.py b/plotly/graph_objs/ohlc/decreasing/_line.py
index a4e4cb96403..2b1464dcc68 100644
--- a/plotly/graph_objs/ohlc/decreasing/_line.py
+++ b/plotly/graph_objs/ohlc/decreasing/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "ohlc.decreasing"
-    _path_str = "ohlc.decreasing.line"
+    _parent_path_str = 'ohlc.decreasing'
+    _path_str = 'ohlc.decreasing.line'
     _valid_props = {"color", "dash", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -51,11 +55,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def width(self):
@@ -69,11 +73,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -88,8 +92,13 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dash=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -113,9 +122,9 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -125,18 +134,18 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.ohlc.decreasing.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.ohlc.decreasing.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.ohlc.decreasing.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/ohlc/hoverlabel/__init__.py b/plotly/graph_objs/ohlc/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/ohlc/hoverlabel/__init__.py
+++ b/plotly/graph_objs/ohlc/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/ohlc/hoverlabel/_font.py b/plotly/graph_objs/ohlc/hoverlabel/_font.py
index 9aa914b7444..cd7b1e1ed2c 100644
--- a/plotly/graph_objs/ohlc/hoverlabel/_font.py
+++ b/plotly/graph_objs/ohlc/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "ohlc.hoverlabel"
-    _path_str = "ohlc.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'ohlc.hoverlabel'
+    _path_str = 'ohlc.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.ohlc.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.ohlc.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.ohlc.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/ohlc/increasing/__init__.py b/plotly/graph_objs/ohlc/increasing/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/ohlc/increasing/__init__.py
+++ b/plotly/graph_objs/ohlc/increasing/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/ohlc/increasing/_line.py b/plotly/graph_objs/ohlc/increasing/_line.py
index 9a23068139b..bf4a258a798 100644
--- a/plotly/graph_objs/ohlc/increasing/_line.py
+++ b/plotly/graph_objs/ohlc/increasing/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "ohlc.increasing"
-    _path_str = "ohlc.increasing.line"
+    _parent_path_str = 'ohlc.increasing'
+    _path_str = 'ohlc.increasing.line'
     _valid_props = {"color", "dash", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -51,11 +55,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def width(self):
@@ -69,11 +73,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -88,8 +92,13 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dash=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -113,9 +122,9 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -125,18 +134,18 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.ohlc.increasing.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.ohlc.increasing.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.ohlc.increasing.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/ohlc/legendgrouptitle/__init__.py b/plotly/graph_objs/ohlc/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/ohlc/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/ohlc/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/ohlc/legendgrouptitle/_font.py b/plotly/graph_objs/ohlc/legendgrouptitle/_font.py
index 7fd2fd80916..c8badba2e71 100644
--- a/plotly/graph_objs/ohlc/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/ohlc/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "ohlc.legendgrouptitle"
-    _path_str = "ohlc.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'ohlc.legendgrouptitle'
+    _path_str = 'ohlc.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.ohlc.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.ohlc.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.ohlc.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcats/__init__.py b/plotly/graph_objs/parcats/__init__.py
index 5760d951469..cc8e93725fe 100644
--- a/plotly/graph_objs/parcats/__init__.py
+++ b/plotly/graph_objs/parcats/__init__.py
@@ -1,16 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._dimension import Dimension
+    from ._domain import Domain
+    from ._labelfont import Labelfont
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._stream import Stream
+    from ._tickfont import Tickfont
+    from . import legendgrouptitle
+    from . import line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.legendgrouptitle', '.line'],
+        ['._dimension.Dimension', '._domain.Domain', '._labelfont.Labelfont', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._stream.Stream', '._tickfont.Tickfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".legendgrouptitle", ".line"],
-    [
-        "._dimension.Dimension",
-        "._domain.Domain",
-        "._labelfont.Labelfont",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._stream.Stream",
-        "._tickfont.Tickfont",
-    ],
-)
diff --git a/plotly/graph_objs/parcats/_dimension.py b/plotly/graph_objs/parcats/_dimension.py
index 38127e68866..51e5f736082 100644
--- a/plotly/graph_objs/parcats/_dimension.py
+++ b/plotly/graph_objs/parcats/_dimension.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,20 +11,9 @@
 
 class Dimension(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcats"
-    _path_str = "parcats.dimension"
-    _valid_props = {
-        "categoryarray",
-        "categoryarraysrc",
-        "categoryorder",
-        "displayindex",
-        "label",
-        "ticktext",
-        "ticktextsrc",
-        "values",
-        "valuessrc",
-        "visible",
-    }
+    _parent_path_str = 'parcats'
+    _path_str = 'parcats.dimension'
+    _valid_props = {"categoryarray", "categoryarraysrc", "categoryorder", "displayindex", "label", "ticktext", "ticktextsrc", "values", "valuessrc", "visible"}
 
     @property
     def categoryarray(self):
@@ -36,11 +29,11 @@ def categoryarray(self):
         -------
         numpy.ndarray
         """
-        return self["categoryarray"]
+        return self['categoryarray']
 
     @categoryarray.setter
     def categoryarray(self, val):
-        self["categoryarray"] = val
+        self['categoryarray'] = val
 
     @property
     def categoryarraysrc(self):
@@ -55,11 +48,11 @@ def categoryarraysrc(self):
         -------
         str
         """
-        return self["categoryarraysrc"]
+        return self['categoryarraysrc']
 
     @categoryarraysrc.setter
     def categoryarraysrc(self, val):
-        self["categoryarraysrc"] = val
+        self['categoryarraysrc'] = val
 
     @property
     def categoryorder(self):
@@ -85,11 +78,11 @@ def categoryorder(self):
         -------
         Any
         """
-        return self["categoryorder"]
+        return self['categoryorder']
 
     @categoryorder.setter
     def categoryorder(self, val):
-        self["categoryorder"] = val
+        self['categoryorder'] = val
 
     @property
     def displayindex(self):
@@ -104,11 +97,11 @@ def displayindex(self):
         -------
         int
         """
-        return self["displayindex"]
+        return self['displayindex']
 
     @displayindex.setter
     def displayindex(self, val):
-        self["displayindex"] = val
+        self['displayindex'] = val
 
     @property
     def label(self):
@@ -123,11 +116,11 @@ def label(self):
         -------
         str
         """
-        return self["label"]
+        return self['label']
 
     @label.setter
     def label(self, val):
-        self["label"] = val
+        self['label'] = val
 
     @property
     def ticktext(self):
@@ -144,11 +137,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -162,11 +155,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def values(self):
@@ -183,11 +176,11 @@ def values(self):
         -------
         numpy.ndarray
         """
-        return self["values"]
+        return self['values']
 
     @values.setter
     def values(self, val):
-        self["values"] = val
+        self['values'] = val
 
     @property
     def valuessrc(self):
@@ -201,11 +194,11 @@ def valuessrc(self):
         -------
         str
         """
-        return self["valuessrc"]
+        return self['valuessrc']
 
     @valuessrc.setter
     def valuessrc(self, val):
-        self["valuessrc"] = val
+        self['valuessrc'] = val
 
     @property
     def visible(self):
@@ -220,11 +213,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -274,22 +267,20 @@ def _prop_descriptions(self):
             Shows the dimension when set to `true` (the default).
             Hides the dimension for `false`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        categoryarray=None,
-        categoryarraysrc=None,
-        categoryorder=None,
-        displayindex=None,
-        label=None,
-        ticktext=None,
-        ticktextsrc=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            categoryarray=None,
+            categoryarraysrc=None,
+            categoryorder=None,
+            displayindex=None,
+            label=None,
+            ticktext=None,
+            ticktextsrc=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Dimension object
 
@@ -350,9 +341,9 @@ def __init__(
         -------
         Dimension
         """
-        super().__init__("dimensions")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('dimensions')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -362,25 +353,25 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcats.Dimension
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcats.Dimension`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("categoryarray", arg, categoryarray)
-        self._set_property("categoryarraysrc", arg, categoryarraysrc)
-        self._set_property("categoryorder", arg, categoryorder)
-        self._set_property("displayindex", arg, displayindex)
-        self._set_property("label", arg, label)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("values", arg, values)
-        self._set_property("valuessrc", arg, valuessrc)
-        self._set_property("visible", arg, visible)
+an instance of :class:`plotly.graph_objs.parcats.Dimension`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('categoryarray', arg, categoryarray)
+        self._set_property('categoryarraysrc', arg, categoryarraysrc)
+        self._set_property('categoryorder', arg, categoryorder)
+        self._set_property('displayindex', arg, displayindex)
+        self._set_property('label', arg, label)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('values', arg, values)
+        self._set_property('valuessrc', arg, valuessrc)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcats/_domain.py b/plotly/graph_objs/parcats/_domain.py
index e8a75a22914..656395c30fb 100644
--- a/plotly/graph_objs/parcats/_domain.py
+++ b/plotly/graph_objs/parcats/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcats"
-    _path_str = "parcats.domain"
+    _parent_path_str = 'parcats'
+    _path_str = 'parcats.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -25,11 +29,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -45,59 +49,59 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this parcats trace (in plot
-            fraction).
-
-            The 'x' property is an info array that may be specified as:
+        Sets the horizontal domain of this parcats trace (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this parcats trace (in plot
-            fraction).
+        Sets the vertical domain of this parcats trace (in plot
+        fraction).
 
-            The 'y' property is an info array that may be specified as:
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,8 +119,14 @@ def _prop_descriptions(self):
             Sets the vertical domain of this parcats trace (in plot
             fraction).
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -143,9 +153,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -155,19 +165,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcats.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcats.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.parcats.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcats/_labelfont.py b/plotly/graph_objs/parcats/_labelfont.py
index f13f98f24db..2d3faa23e0a 100644
--- a/plotly/graph_objs/parcats/_labelfont.py
+++ b/plotly/graph_objs/parcats/_labelfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Labelfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcats"
-    _path_str = "parcats.labelfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'parcats'
+    _path_str = 'parcats.labelfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Labelfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Labelfont
         """
-        super().__init__("labelfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('labelfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcats.Labelfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcats.Labelfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.parcats.Labelfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcats/_legendgrouptitle.py b/plotly/graph_objs/parcats/_legendgrouptitle.py
index 315048a77f2..af3fb133503 100644
--- a/plotly/graph_objs/parcats/_legendgrouptitle.py
+++ b/plotly/graph_objs/parcats/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcats"
-    _path_str = "parcats.legendgrouptitle"
+    _parent_path_str = 'parcats'
+    _path_str = 'parcats.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.parcats.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcats.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcats.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.parcats.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcats/_line.py b/plotly/graph_objs/parcats/_line.py
index 787cfc3e65d..a3b734273dc 100644
--- a/plotly/graph_objs/parcats/_line.py
+++ b/plotly/graph_objs/parcats/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,24 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcats"
-    _path_str = "parcats.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "hovertemplate",
-        "reversescale",
-        "shape",
-        "showscale",
-    }
+    _parent_path_str = 'parcats'
+    _path_str = 'parcats.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "hovertemplate", "reversescale", "shape", "showscale"}
 
     @property
     def autocolorscale(self):
@@ -44,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -66,11 +55,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -87,11 +76,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -109,11 +98,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -130,11 +119,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -158,11 +147,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -183,11 +172,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -202,11 +191,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.parcats.line.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -254,11 +243,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -272,11 +261,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def hovertemplate(self):
@@ -316,11 +305,11 @@ def hovertemplate(self):
         -------
         str
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def reversescale(self):
@@ -337,11 +326,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def shape(self):
@@ -358,11 +347,11 @@ def shape(self):
         -------
         Any
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def showscale(self):
@@ -378,11 +367,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def _prop_descriptions(self):
@@ -499,26 +488,24 @@ def _prop_descriptions(self):
             this trace. Has an effect only if in `line.color` is
             set to a numerical array.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        hovertemplate=None,
-        reversescale=None,
-        shape=None,
-        showscale=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            hovertemplate=None,
+            reversescale=None,
+            shape=None,
+            showscale=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -643,9 +630,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -655,29 +642,29 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcats.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcats.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("shape", arg, shape)
-        self._set_property("showscale", arg, showscale)
+an instance of :class:`plotly.graph_objs.parcats.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('shape', arg, shape)
+        self._set_property('showscale', arg, showscale)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcats/_stream.py b/plotly/graph_objs/parcats/_stream.py
index 04cd076845b..6d530208b8f 100644
--- a/plotly/graph_objs/parcats/_stream.py
+++ b/plotly/graph_objs/parcats/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcats"
-    _path_str = "parcats.stream"
+    _parent_path_str = 'parcats'
+    _path_str = 'parcats.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcats.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcats.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.parcats.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcats/_tickfont.py b/plotly/graph_objs/parcats/_tickfont.py
index 5d0f9a8fbe4..6429c1b350e 100644
--- a/plotly/graph_objs/parcats/_tickfont.py
+++ b/plotly/graph_objs/parcats/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcats"
-    _path_str = "parcats.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'parcats'
+    _path_str = 'parcats.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcats.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcats.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.parcats.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcats/legendgrouptitle/__init__.py b/plotly/graph_objs/parcats/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/parcats/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/parcats/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/parcats/legendgrouptitle/_font.py b/plotly/graph_objs/parcats/legendgrouptitle/_font.py
index f982fc928c5..02cb4c041eb 100644
--- a/plotly/graph_objs/parcats/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/parcats/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcats.legendgrouptitle"
-    _path_str = "parcats.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'parcats.legendgrouptitle'
+    _path_str = 'parcats.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcats.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcats.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.parcats.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcats/line/__init__.py b/plotly/graph_objs/parcats/line/__init__.py
index 5e1805d8fa8..c35de683492 100644
--- a/plotly/graph_objs/parcats/line/__init__.py
+++ b/plotly/graph_objs/parcats/line/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".colorbar"], ["._colorbar.ColorBar"]
-)
diff --git a/plotly/graph_objs/parcats/line/_colorbar.py b/plotly/graph_objs/parcats/line/_colorbar.py
index 09a32aa4d6a..9801381cba7 100644
--- a/plotly/graph_objs/parcats/line/_colorbar.py
+++ b/plotly/graph_objs/parcats/line/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcats.line"
-    _path_str = "parcats.line.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'parcats.line'
+    _path_str = 'parcats.line.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.parcats.line.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.parcats.line.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.parcats.line.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.parcats.line.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcats.line.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcats.line.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.parcats.line.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcats/line/colorbar/__init__.py b/plotly/graph_objs/parcats/line/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/parcats/line/colorbar/__init__.py
+++ b/plotly/graph_objs/parcats/line/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/parcats/line/colorbar/_tickfont.py b/plotly/graph_objs/parcats/line/colorbar/_tickfont.py
index fe9ee34895d..01f1238edcd 100644
--- a/plotly/graph_objs/parcats/line/colorbar/_tickfont.py
+++ b/plotly/graph_objs/parcats/line/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcats.line.colorbar"
-    _path_str = "parcats.line.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'parcats.line.colorbar'
+    _path_str = 'parcats.line.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcats.line.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcats.line.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.parcats.line.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcats/line/colorbar/_tickformatstop.py b/plotly/graph_objs/parcats/line/colorbar/_tickformatstop.py
index 2f111b5e7a2..bb91b9b7bab 100644
--- a/plotly/graph_objs/parcats/line/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/parcats/line/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcats.line.colorbar"
-    _path_str = "parcats.line.colorbar.tickformatstop"
+    _parent_path_str = 'parcats.line.colorbar'
+    _path_str = 'parcats.line.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcats.line.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcats.line.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.parcats.line.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcats/line/colorbar/_title.py b/plotly/graph_objs/parcats/line/colorbar/_title.py
index c1f17647d62..18888c3b302 100644
--- a/plotly/graph_objs/parcats/line/colorbar/_title.py
+++ b/plotly/graph_objs/parcats/line/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcats.line.colorbar"
-    _path_str = "parcats.line.colorbar.title"
+    _parent_path_str = 'parcats.line.colorbar'
+    _path_str = 'parcats.line.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.parcats.line.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcats.line.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcats.line.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.parcats.line.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcats/line/colorbar/title/__init__.py b/plotly/graph_objs/parcats/line/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/parcats/line/colorbar/title/__init__.py
+++ b/plotly/graph_objs/parcats/line/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/parcats/line/colorbar/title/_font.py b/plotly/graph_objs/parcats/line/colorbar/title/_font.py
index 24804f764f0..9b8dfda6025 100644
--- a/plotly/graph_objs/parcats/line/colorbar/title/_font.py
+++ b/plotly/graph_objs/parcats/line/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcats.line.colorbar.title"
-    _path_str = "parcats.line.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'parcats.line.colorbar.title'
+    _path_str = 'parcats.line.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcats.line.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcats.line.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.parcats.line.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcoords/__init__.py b/plotly/graph_objs/parcoords/__init__.py
index 174389e645e..f86a4be1783 100644
--- a/plotly/graph_objs/parcoords/__init__.py
+++ b/plotly/graph_objs/parcoords/__init__.py
@@ -1,18 +1,24 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._dimension import Dimension
+    from ._domain import Domain
+    from ._labelfont import Labelfont
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._rangefont import Rangefont
+    from ._stream import Stream
+    from ._tickfont import Tickfont
+    from ._unselected import Unselected
+    from . import legendgrouptitle
+    from . import line
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.legendgrouptitle', '.line', '.unselected'],
+        ['._dimension.Dimension', '._domain.Domain', '._labelfont.Labelfont', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._rangefont.Rangefont', '._stream.Stream', '._tickfont.Tickfont', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".legendgrouptitle", ".line", ".unselected"],
-    [
-        "._dimension.Dimension",
-        "._domain.Domain",
-        "._labelfont.Labelfont",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._rangefont.Rangefont",
-        "._stream.Stream",
-        "._tickfont.Tickfont",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/parcoords/_dimension.py b/plotly/graph_objs/parcoords/_dimension.py
index 6ce8184be89..cb9dd30aaaf 100644
--- a/plotly/graph_objs/parcoords/_dimension.py
+++ b/plotly/graph_objs/parcoords/_dimension.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,53 +11,38 @@
 
 class Dimension(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcoords"
-    _path_str = "parcoords.dimension"
-    _valid_props = {
-        "constraintrange",
-        "label",
-        "multiselect",
-        "name",
-        "range",
-        "templateitemname",
-        "tickformat",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "values",
-        "valuessrc",
-        "visible",
-    }
+    _parent_path_str = 'parcoords'
+    _path_str = 'parcoords.dimension'
+    _valid_props = {"constraintrange", "label", "multiselect", "name", "range", "templateitemname", "tickformat", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "values", "valuessrc", "visible"}
 
     @property
     def constraintrange(self):
         """
-            The domain range to which the filter on the dimension is
-            constrained. Must be an array of `[fromValue, toValue]` with
-            `fromValue <= toValue`, or if `multiselect` is not disabled,
-            you may give an array of arrays, where each inner array is
-            `[fromValue, toValue]`.
-
-            The 'constraintrange' property is an info array that may be specified as:
-
-            * a list or tuple of 2 elements where:
-        (0) The 'constraintrange[0]' property accepts values of any type
-        (1) The 'constraintrange[1]' property accepts values of any type
-
-            * a 2D list where:
-        (0) The 'constraintrange[i][0]' property accepts values of any type
-        (1) The 'constraintrange[i][1]' property accepts values of any type
+        The domain range to which the filter on the dimension is
+        constrained. Must be an array of `[fromValue, toValue]` with
+        `fromValue <= toValue`, or if `multiselect` is not disabled,
+        you may give an array of arrays, where each inner array is
+        `[fromValue, toValue]`.
+
+        The 'constraintrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'constraintrange[0]' property accepts values of any type
+    (1) The 'constraintrange[1]' property accepts values of any type
+    
+        * a 2D list where:
+    (0) The 'constraintrange[i][0]' property accepts values of any type
+    (1) The 'constraintrange[i][1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["constraintrange"]
+        return self['constraintrange']
 
     @constraintrange.setter
     def constraintrange(self, val):
-        self["constraintrange"] = val
+        self['constraintrange'] = val
 
     @property
     def label(self):
@@ -68,11 +57,11 @@ def label(self):
         -------
         str
         """
-        return self["label"]
+        return self['label']
 
     @label.setter
     def label(self, val):
-        self["label"] = val
+        self['label'] = val
 
     @property
     def multiselect(self):
@@ -86,11 +75,11 @@ def multiselect(self):
         -------
         bool
         """
-        return self["multiselect"]
+        return self['multiselect']
 
     @multiselect.setter
     def multiselect(self, val):
-        self["multiselect"] = val
+        self['multiselect'] = val
 
     @property
     def name(self):
@@ -111,36 +100,36 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def range(self):
         """
-            The domain range that represents the full, shown axis extent.
-            Defaults to the `values` extent. Must be an array of
-            `[fromValue, toValue]` with finite numbers as elements.
-
-            The 'range' property is an info array that may be specified as:
-
-            * a list or tuple of 2 elements where:
-        (0) The 'range[0]' property is a number and may be specified as:
-              - An int or float
-        (1) The 'range[1]' property is a number and may be specified as:
-              - An int or float
+        The domain range that represents the full, shown axis extent.
+        Defaults to the `values` extent. Must be an array of
+        `[fromValue, toValue]` with finite numbers as elements.
+
+        The 'range' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'range[0]' property is a number and may be specified as:
+          - An int or float
+    (1) The 'range[1]' property is a number and may be specified as:
+          - An int or float
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["range"]
+        return self['range']
 
     @range.setter
     def range(self, val):
-        self["range"] = val
+        self['range'] = val
 
     @property
     def templateitemname(self):
@@ -162,11 +151,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def tickformat(self):
@@ -190,11 +179,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def ticktext(self):
@@ -208,11 +197,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -226,11 +215,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -244,11 +233,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -262,11 +251,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def values(self):
@@ -283,11 +272,11 @@ def values(self):
         -------
         numpy.ndarray
         """
-        return self["values"]
+        return self['values']
 
     @values.setter
     def values(self, val):
-        self["values"] = val
+        self['values'] = val
 
     @property
     def valuessrc(self):
@@ -301,11 +290,11 @@ def valuessrc(self):
         -------
         str
         """
-        return self["valuessrc"]
+        return self['valuessrc']
 
     @valuessrc.setter
     def valuessrc(self, val):
-        self["valuessrc"] = val
+        self['valuessrc'] = val
 
     @property
     def visible(self):
@@ -320,11 +309,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -401,26 +390,24 @@ def _prop_descriptions(self):
             Shows the dimension when set to `true` (the default).
             Hides the dimension for `false`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        constraintrange=None,
-        label=None,
-        multiselect=None,
-        name=None,
-        range=None,
-        templateitemname=None,
-        tickformat=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            constraintrange=None,
+            label=None,
+            multiselect=None,
+            name=None,
+            range=None,
+            templateitemname=None,
+            tickformat=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Dimension object
 
@@ -509,9 +496,9 @@ def __init__(
         -------
         Dimension
         """
-        super().__init__("dimensions")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('dimensions')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -521,29 +508,29 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcoords.Dimension
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcoords.Dimension`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("constraintrange", arg, constraintrange)
-        self._set_property("label", arg, label)
-        self._set_property("multiselect", arg, multiselect)
-        self._set_property("name", arg, name)
-        self._set_property("range", arg, range)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("values", arg, values)
-        self._set_property("valuessrc", arg, valuessrc)
-        self._set_property("visible", arg, visible)
+an instance of :class:`plotly.graph_objs.parcoords.Dimension`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('constraintrange', arg, constraintrange)
+        self._set_property('label', arg, label)
+        self._set_property('multiselect', arg, multiselect)
+        self._set_property('name', arg, name)
+        self._set_property('range', arg, range)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('values', arg, values)
+        self._set_property('valuessrc', arg, valuessrc)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcoords/_domain.py b/plotly/graph_objs/parcoords/_domain.py
index 4879e9ea609..2645649c7b0 100644
--- a/plotly/graph_objs/parcoords/_domain.py
+++ b/plotly/graph_objs/parcoords/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcoords"
-    _path_str = "parcoords.domain"
+    _parent_path_str = 'parcoords'
+    _path_str = 'parcoords.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -25,11 +29,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -45,59 +49,59 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this parcoords trace (in plot
-            fraction).
-
-            The 'x' property is an info array that may be specified as:
+        Sets the horizontal domain of this parcoords trace (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this parcoords trace (in plot
-            fraction).
-
-            The 'y' property is an info array that may be specified as:
+        Sets the vertical domain of this parcoords trace (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,8 +119,14 @@ def _prop_descriptions(self):
             Sets the vertical domain of this parcoords trace (in
             plot fraction).
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -143,9 +153,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -155,19 +165,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcoords.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcoords.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.parcoords.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcoords/_labelfont.py b/plotly/graph_objs/parcoords/_labelfont.py
index dd5ff335a89..844c1265b5b 100644
--- a/plotly/graph_objs/parcoords/_labelfont.py
+++ b/plotly/graph_objs/parcoords/_labelfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Labelfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcoords"
-    _path_str = "parcoords.labelfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'parcoords'
+    _path_str = 'parcoords.labelfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Labelfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Labelfont
         """
-        super().__init__("labelfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('labelfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcoords.Labelfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcoords.Labelfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.parcoords.Labelfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcoords/_legendgrouptitle.py b/plotly/graph_objs/parcoords/_legendgrouptitle.py
index 95eaa05aa1c..f421369ecfd 100644
--- a/plotly/graph_objs/parcoords/_legendgrouptitle.py
+++ b/plotly/graph_objs/parcoords/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcoords"
-    _path_str = "parcoords.legendgrouptitle"
+    _parent_path_str = 'parcoords'
+    _path_str = 'parcoords.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.parcoords.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcoords.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcoords.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.parcoords.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcoords/_line.py b/plotly/graph_objs/parcoords/_line.py
index 5a0e73c0480..e08d06e844f 100644
--- a/plotly/graph_objs/parcoords/_line.py
+++ b/plotly/graph_objs/parcoords/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcoords"
-    _path_str = "parcoords.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "reversescale",
-        "showscale",
-    }
+    _parent_path_str = 'parcoords'
+    _path_str = 'parcoords.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "reversescale", "showscale"}
 
     @property
     def autocolorscale(self):
@@ -42,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -64,11 +55,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -85,11 +76,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -107,11 +98,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -128,11 +119,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -156,11 +147,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -181,11 +172,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -200,11 +191,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.parcoords.line.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -252,11 +243,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -270,11 +261,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def reversescale(self):
@@ -291,11 +282,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -311,11 +302,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def _prop_descriptions(self):
@@ -397,24 +388,22 @@ def _prop_descriptions(self):
             this trace. Has an effect only if in `line.color` is
             set to a numerical array.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        reversescale=None,
-        showscale=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            reversescale=None,
+            showscale=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -505,9 +494,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -517,27 +506,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcoords.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcoords.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
+an instance of :class:`plotly.graph_objs.parcoords.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcoords/_rangefont.py b/plotly/graph_objs/parcoords/_rangefont.py
index 0c9513b3b89..444c5fcb3e0 100644
--- a/plotly/graph_objs/parcoords/_rangefont.py
+++ b/plotly/graph_objs/parcoords/_rangefont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Rangefont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcoords"
-    _path_str = "parcoords.rangefont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'parcoords'
+    _path_str = 'parcoords.rangefont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Rangefont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Rangefont
         """
-        super().__init__("rangefont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('rangefont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcoords.Rangefont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcoords.Rangefont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.parcoords.Rangefont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcoords/_stream.py b/plotly/graph_objs/parcoords/_stream.py
index 2e5d68951cc..60390421a47 100644
--- a/plotly/graph_objs/parcoords/_stream.py
+++ b/plotly/graph_objs/parcoords/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcoords"
-    _path_str = "parcoords.stream"
+    _parent_path_str = 'parcoords'
+    _path_str = 'parcoords.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcoords.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcoords.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.parcoords.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcoords/_tickfont.py b/plotly/graph_objs/parcoords/_tickfont.py
index 356c288b207..617f0ad3d6d 100644
--- a/plotly/graph_objs/parcoords/_tickfont.py
+++ b/plotly/graph_objs/parcoords/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcoords"
-    _path_str = "parcoords.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'parcoords'
+    _path_str = 'parcoords.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcoords.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcoords.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.parcoords.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcoords/_unselected.py b/plotly/graph_objs/parcoords/_unselected.py
index c7d5c2d9e46..69e1c872952 100644
--- a/plotly/graph_objs/parcoords/_unselected.py
+++ b/plotly/graph_objs/parcoords/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcoords"
-    _path_str = "parcoords.unselected"
+    _parent_path_str = 'parcoords'
+    _path_str = 'parcoords.unselected'
     _valid_props = {"line"}
 
     @property
@@ -24,11 +28,11 @@ def line(self):
         -------
         plotly.graph_objs.parcoords.unselected.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.parcoords.unselected.Line`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, line=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            line=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, line=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, line=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcoords.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcoords.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.parcoords.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("line", arg, line)
+        self._set_property('line', arg, line)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcoords/legendgrouptitle/__init__.py b/plotly/graph_objs/parcoords/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/parcoords/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/parcoords/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/parcoords/legendgrouptitle/_font.py b/plotly/graph_objs/parcoords/legendgrouptitle/_font.py
index 4e748d86d37..45c9dd81fc1 100644
--- a/plotly/graph_objs/parcoords/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/parcoords/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcoords.legendgrouptitle"
-    _path_str = "parcoords.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'parcoords.legendgrouptitle'
+    _path_str = 'parcoords.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcoords.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcoords.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.parcoords.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcoords/line/__init__.py b/plotly/graph_objs/parcoords/line/__init__.py
index 5e1805d8fa8..c35de683492 100644
--- a/plotly/graph_objs/parcoords/line/__init__.py
+++ b/plotly/graph_objs/parcoords/line/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".colorbar"], ["._colorbar.ColorBar"]
-)
diff --git a/plotly/graph_objs/parcoords/line/_colorbar.py b/plotly/graph_objs/parcoords/line/_colorbar.py
index 1d8436f755b..c0d68904ec6 100644
--- a/plotly/graph_objs/parcoords/line/_colorbar.py
+++ b/plotly/graph_objs/parcoords/line/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcoords.line"
-    _path_str = "parcoords.line.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'parcoords.line'
+    _path_str = 'parcoords.line.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.parcoords.line.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.parcoords.line.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.parcoords.line.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.parcoords.line.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcoords.line.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcoords.line.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.parcoords.line.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcoords/line/colorbar/__init__.py b/plotly/graph_objs/parcoords/line/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/parcoords/line/colorbar/__init__.py
+++ b/plotly/graph_objs/parcoords/line/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/parcoords/line/colorbar/_tickfont.py b/plotly/graph_objs/parcoords/line/colorbar/_tickfont.py
index b3988ca49d5..d0dce706873 100644
--- a/plotly/graph_objs/parcoords/line/colorbar/_tickfont.py
+++ b/plotly/graph_objs/parcoords/line/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcoords.line.colorbar"
-    _path_str = "parcoords.line.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'parcoords.line.colorbar'
+    _path_str = 'parcoords.line.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcoords.line.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcoords.line.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.parcoords.line.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcoords/line/colorbar/_tickformatstop.py b/plotly/graph_objs/parcoords/line/colorbar/_tickformatstop.py
index b8e0455d480..10ec5f62b36 100644
--- a/plotly/graph_objs/parcoords/line/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/parcoords/line/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcoords.line.colorbar"
-    _path_str = "parcoords.line.colorbar.tickformatstop"
+    _parent_path_str = 'parcoords.line.colorbar'
+    _path_str = 'parcoords.line.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcoords.line.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcoords.line.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.parcoords.line.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcoords/line/colorbar/_title.py b/plotly/graph_objs/parcoords/line/colorbar/_title.py
index fbaf42775e4..5ce2c35553a 100644
--- a/plotly/graph_objs/parcoords/line/colorbar/_title.py
+++ b/plotly/graph_objs/parcoords/line/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcoords.line.colorbar"
-    _path_str = "parcoords.line.colorbar.title"
+    _parent_path_str = 'parcoords.line.colorbar'
+    _path_str = 'parcoords.line.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.parcoords.line.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcoords.line.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcoords.line.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.parcoords.line.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcoords/line/colorbar/title/__init__.py b/plotly/graph_objs/parcoords/line/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/parcoords/line/colorbar/title/__init__.py
+++ b/plotly/graph_objs/parcoords/line/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/parcoords/line/colorbar/title/_font.py b/plotly/graph_objs/parcoords/line/colorbar/title/_font.py
index 7cb19cb80aa..b3629824be3 100644
--- a/plotly/graph_objs/parcoords/line/colorbar/title/_font.py
+++ b/plotly/graph_objs/parcoords/line/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcoords.line.colorbar.title"
-    _path_str = "parcoords.line.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'parcoords.line.colorbar.title'
+    _path_str = 'parcoords.line.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcoords.line.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcoords.line.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.parcoords.line.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/parcoords/unselected/__init__.py b/plotly/graph_objs/parcoords/unselected/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/parcoords/unselected/__init__.py
+++ b/plotly/graph_objs/parcoords/unselected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/parcoords/unselected/_line.py b/plotly/graph_objs/parcoords/unselected/_line.py
index fa0f67e9eea..294fb514ff0 100644
--- a/plotly/graph_objs/parcoords/unselected/_line.py
+++ b/plotly/graph_objs/parcoords/unselected/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "parcoords.unselected"
-    _path_str = "parcoords.unselected.line"
+    _parent_path_str = 'parcoords.unselected'
+    _path_str = 'parcoords.unselected.line'
     _valid_props = {"color", "opacity"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -48,11 +52,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -66,8 +70,12 @@ def _prop_descriptions(self):
             lines increases. Use 1 to achieve exact
             `unselected.line.color`.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -90,9 +98,9 @@ def __init__(self, arg=None, color=None, opacity=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -102,17 +110,17 @@ def __init__(self, arg=None, color=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.parcoords.unselected.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.parcoords.unselected.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.parcoords.unselected.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/pie/__init__.py b/plotly/graph_objs/pie/__init__.py
index dd82665ec53..b1c318b792d 100644
--- a/plotly/graph_objs/pie/__init__.py
+++ b/plotly/graph_objs/pie/__init__.py
@@ -1,18 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._domain import Domain
+    from ._hoverlabel import Hoverlabel
+    from ._insidetextfont import Insidetextfont
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._marker import Marker
+    from ._outsidetextfont import Outsidetextfont
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._title import Title
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.title'],
+        ['._domain.Domain', '._hoverlabel.Hoverlabel', '._insidetextfont.Insidetextfont', '._legendgrouptitle.Legendgrouptitle', '._marker.Marker', '._outsidetextfont.Outsidetextfont', '._stream.Stream', '._textfont.Textfont', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".title"],
-    [
-        "._domain.Domain",
-        "._hoverlabel.Hoverlabel",
-        "._insidetextfont.Insidetextfont",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._marker.Marker",
-        "._outsidetextfont.Outsidetextfont",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._title.Title",
-    ],
-)
diff --git a/plotly/graph_objs/pie/_domain.py b/plotly/graph_objs/pie/_domain.py
index fe923ad9111..615662932d1 100644
--- a/plotly/graph_objs/pie/_domain.py
+++ b/plotly/graph_objs/pie/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseTraceHierarchyType):
 
-    _parent_path_str = "pie"
-    _path_str = "pie.domain"
+    _parent_path_str = 'pie'
+    _path_str = 'pie.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -25,11 +29,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -45,58 +49,58 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this pie trace (in plot
-            fraction).
-
-            The 'x' property is an info array that may be specified as:
+        Sets the horizontal domain of this pie trace (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this pie trace (in plot fraction).
+        Sets the vertical domain of this pie trace (in plot fraction).
 
-            The 'y' property is an info array that may be specified as:
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -114,8 +118,14 @@ def _prop_descriptions(self):
             Sets the vertical domain of this pie trace (in plot
             fraction).
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -141,9 +151,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -153,19 +163,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.pie.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.pie.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.pie.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/pie/_hoverlabel.py b/plotly/graph_objs/pie/_hoverlabel.py
index 9368daed1f1..c4a084e09a0 100644
--- a/plotly/graph_objs/pie/_hoverlabel.py
+++ b/plotly/graph_objs/pie/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "pie"
-    _path_str = "pie.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'pie'
+    _path_str = 'pie.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.pie.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.pie.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.pie.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.pie.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/pie/_insidetextfont.py b/plotly/graph_objs/pie/_insidetextfont.py
index 89f6e2b4018..baf96b86c84 100644
--- a/plotly/graph_objs/pie/_insidetextfont.py
+++ b/plotly/graph_objs/pie/_insidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Insidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "pie"
-    _path_str = "pie.insidetextfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'pie'
+    _path_str = 'pie.insidetextfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Insidetextfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Insidetextfont
         """
-        super().__init__("insidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('insidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.pie.Insidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.pie.Insidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.pie.Insidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/pie/_legendgrouptitle.py b/plotly/graph_objs/pie/_legendgrouptitle.py
index 43c4f3fcfa5..21c94455a04 100644
--- a/plotly/graph_objs/pie/_legendgrouptitle.py
+++ b/plotly/graph_objs/pie/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "pie"
-    _path_str = "pie.legendgrouptitle"
+    _parent_path_str = 'pie'
+    _path_str = 'pie.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.pie.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.pie.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.pie.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.pie.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/pie/_marker.py b/plotly/graph_objs/pie/_marker.py
index eab96c8ee9a..625049c2731 100644
--- a/plotly/graph_objs/pie/_marker.py
+++ b/plotly/graph_objs/pie/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "pie"
-    _path_str = "pie.marker"
+    _parent_path_str = 'pie'
+    _path_str = 'pie.marker'
     _valid_props = {"colors", "colorssrc", "line", "pattern"}
 
     @property
@@ -24,11 +28,11 @@ def colors(self):
         -------
         numpy.ndarray
         """
-        return self["colors"]
+        return self['colors']
 
     @colors.setter
     def colors(self, val):
-        self["colors"] = val
+        self['colors'] = val
 
     @property
     def colorssrc(self):
@@ -42,11 +46,11 @@ def colorssrc(self):
         -------
         str
         """
-        return self["colorssrc"]
+        return self['colorssrc']
 
     @colorssrc.setter
     def colorssrc(self, val):
-        self["colorssrc"] = val
+        self['colorssrc'] = val
 
     @property
     def line(self):
@@ -61,11 +65,11 @@ def line(self):
         -------
         plotly.graph_objs.pie.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def pattern(self):
@@ -82,11 +86,11 @@ def pattern(self):
         -------
         plotly.graph_objs.pie.marker.Pattern
         """
-        return self["pattern"]
+        return self['pattern']
 
     @pattern.setter
     def pattern(self, val):
-        self["pattern"] = val
+        self['pattern'] = val
 
     @property
     def _prop_descriptions(self):
@@ -104,10 +108,14 @@ def _prop_descriptions(self):
         pattern
             Sets the pattern within the marker.
         """
-
-    def __init__(
-        self, arg=None, colors=None, colorssrc=None, line=None, pattern=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            colors=None,
+            colorssrc=None,
+            line=None,
+            pattern=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -133,9 +141,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -145,19 +153,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.pie.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.pie.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.pie.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("colors", arg, colors)
-        self._set_property("colorssrc", arg, colorssrc)
-        self._set_property("line", arg, line)
-        self._set_property("pattern", arg, pattern)
+        self._set_property('colors', arg, colors)
+        self._set_property('colorssrc', arg, colorssrc)
+        self._set_property('line', arg, line)
+        self._set_property('pattern', arg, pattern)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/pie/_outsidetextfont.py b/plotly/graph_objs/pie/_outsidetextfont.py
index fccb71d800b..31d19705e64 100644
--- a/plotly/graph_objs/pie/_outsidetextfont.py
+++ b/plotly/graph_objs/pie/_outsidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Outsidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "pie"
-    _path_str = "pie.outsidetextfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'pie'
+    _path_str = 'pie.outsidetextfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Outsidetextfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Outsidetextfont
         """
-        super().__init__("outsidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('outsidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.pie.Outsidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.pie.Outsidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.pie.Outsidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/pie/_stream.py b/plotly/graph_objs/pie/_stream.py
index e9de4785dd5..518ee0876fd 100644
--- a/plotly/graph_objs/pie/_stream.py
+++ b/plotly/graph_objs/pie/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "pie"
-    _path_str = "pie.stream"
+    _parent_path_str = 'pie'
+    _path_str = 'pie.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.pie.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.pie.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.pie.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/pie/_textfont.py b/plotly/graph_objs/pie/_textfont.py
index 68b2f631455..833ae9749b1 100644
--- a/plotly/graph_objs/pie/_textfont.py
+++ b/plotly/graph_objs/pie/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "pie"
-    _path_str = "pie.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'pie'
+    _path_str = 'pie.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -545,9 +528,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -557,33 +540,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.pie.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.pie.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.pie.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/pie/_title.py b/plotly/graph_objs/pie/_title.py
index f754e4d8ccd..9d5a0c836d5 100644
--- a/plotly/graph_objs/pie/_title.py
+++ b/plotly/graph_objs/pie/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "pie"
-    _path_str = "pie.title"
+    _parent_path_str = 'pie'
+    _path_str = 'pie.title'
     _valid_props = {"font", "position", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.pie.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def position(self):
@@ -46,11 +50,11 @@ def position(self):
         -------
         Any
         """
-        return self["position"]
+        return self['position']
 
     @position.setter
     def position(self, val):
-        self["position"] = val
+        self['position'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -83,8 +87,13 @@ def _prop_descriptions(self):
             Sets the title of the chart. If it is empty, no title
             is displayed.
         """
-
-    def __init__(self, arg=None, font=None, position=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            position=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -105,9 +114,9 @@ def __init__(self, arg=None, font=None, position=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -117,18 +126,18 @@ def __init__(self, arg=None, font=None, position=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.pie.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.pie.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.pie.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("position", arg, position)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('position', arg, position)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/pie/hoverlabel/__init__.py b/plotly/graph_objs/pie/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/pie/hoverlabel/__init__.py
+++ b/plotly/graph_objs/pie/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/pie/hoverlabel/_font.py b/plotly/graph_objs/pie/hoverlabel/_font.py
index 1e12e5233ef..b39f042b5b6 100644
--- a/plotly/graph_objs/pie/hoverlabel/_font.py
+++ b/plotly/graph_objs/pie/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "pie.hoverlabel"
-    _path_str = "pie.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'pie.hoverlabel'
+    _path_str = 'pie.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.pie.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.pie.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.pie.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/pie/legendgrouptitle/__init__.py b/plotly/graph_objs/pie/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/pie/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/pie/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/pie/legendgrouptitle/_font.py b/plotly/graph_objs/pie/legendgrouptitle/_font.py
index a0c9de34050..467cade00ea 100644
--- a/plotly/graph_objs/pie/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/pie/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "pie.legendgrouptitle"
-    _path_str = "pie.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'pie.legendgrouptitle'
+    _path_str = 'pie.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.pie.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.pie.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.pie.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/pie/marker/__init__.py b/plotly/graph_objs/pie/marker/__init__.py
index 4e5d01c99ba..16a84c1ec30 100644
--- a/plotly/graph_objs/pie/marker/__init__.py
+++ b/plotly/graph_objs/pie/marker/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+    from ._pattern import Pattern
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line', '._pattern.Pattern']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._line.Line", "._pattern.Pattern"]
-)
diff --git a/plotly/graph_objs/pie/marker/_line.py b/plotly/graph_objs/pie/marker/_line.py
index c43366e7885..601fbdf1fbc 100644
--- a/plotly/graph_objs/pie/marker/_line.py
+++ b/plotly/graph_objs/pie/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "pie.marker"
-    _path_str = "pie.marker.line"
+    _parent_path_str = 'pie.marker'
+    _path_str = 'pie.marker.line'
     _valid_props = {"color", "colorsrc", "width", "widthsrc"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -46,11 +50,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def width(self):
@@ -65,11 +69,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -83,11 +87,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -104,10 +108,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, width=None, widthsrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -133,9 +141,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -145,19 +153,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.pie.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.pie.marker.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.pie.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/pie/marker/_pattern.py b/plotly/graph_objs/pie/marker/_pattern.py
index d9c7faf89bf..a61bb798623 100644
--- a/plotly/graph_objs/pie/marker/_pattern.py
+++ b/plotly/graph_objs/pie/marker/_pattern.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Pattern(_BaseTraceHierarchyType):
 
-    _parent_path_str = "pie.marker"
-    _path_str = "pie.marker.pattern"
-    _valid_props = {
-        "bgcolor",
-        "bgcolorsrc",
-        "fgcolor",
-        "fgcolorsrc",
-        "fgopacity",
-        "fillmode",
-        "shape",
-        "shapesrc",
-        "size",
-        "sizesrc",
-        "solidity",
-        "soliditysrc",
-    }
+    _parent_path_str = 'pie.marker'
+    _path_str = 'pie.marker.pattern'
+    _valid_props = {"bgcolor", "bgcolorsrc", "fgcolor", "fgcolorsrc", "fgopacity", "fillmode", "shape", "shapesrc", "size", "sizesrc", "solidity", "soliditysrc"}
 
     @property
     def bgcolor(self):
@@ -44,11 +35,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -62,11 +53,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def fgcolor(self):
@@ -88,11 +79,11 @@ def fgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["fgcolor"]
+        return self['fgcolor']
 
     @fgcolor.setter
     def fgcolor(self, val):
-        self["fgcolor"] = val
+        self['fgcolor'] = val
 
     @property
     def fgcolorsrc(self):
@@ -106,11 +97,11 @@ def fgcolorsrc(self):
         -------
         str
         """
-        return self["fgcolorsrc"]
+        return self['fgcolorsrc']
 
     @fgcolorsrc.setter
     def fgcolorsrc(self, val):
-        self["fgcolorsrc"] = val
+        self['fgcolorsrc'] = val
 
     @property
     def fgopacity(self):
@@ -125,11 +116,11 @@ def fgopacity(self):
         -------
         int|float
         """
-        return self["fgopacity"]
+        return self['fgopacity']
 
     @fgopacity.setter
     def fgopacity(self, val):
-        self["fgopacity"] = val
+        self['fgopacity'] = val
 
     @property
     def fillmode(self):
@@ -145,11 +136,11 @@ def fillmode(self):
         -------
         Any
         """
-        return self["fillmode"]
+        return self['fillmode']
 
     @fillmode.setter
     def fillmode(self, val):
-        self["fillmode"] = val
+        self['fillmode'] = val
 
     @property
     def shape(self):
@@ -166,11 +157,11 @@ def shape(self):
         -------
         Any|numpy.ndarray
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def shapesrc(self):
@@ -184,11 +175,11 @@ def shapesrc(self):
         -------
         str
         """
-        return self["shapesrc"]
+        return self['shapesrc']
 
     @shapesrc.setter
     def shapesrc(self, val):
-        self["shapesrc"] = val
+        self['shapesrc'] = val
 
     @property
     def size(self):
@@ -204,11 +195,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -222,11 +213,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def solidity(self):
@@ -244,11 +235,11 @@ def solidity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["solidity"]
+        return self['solidity']
 
     @solidity.setter
     def solidity(self, val):
-        self["solidity"] = val
+        self['solidity'] = val
 
     @property
     def soliditysrc(self):
@@ -262,11 +253,11 @@ def soliditysrc(self):
         -------
         str
         """
-        return self["soliditysrc"]
+        return self['soliditysrc']
 
     @soliditysrc.setter
     def soliditysrc(self, val):
-        self["soliditysrc"] = val
+        self['soliditysrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -318,24 +309,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `solidity`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        fgcolor=None,
-        fgcolorsrc=None,
-        fgopacity=None,
-        fillmode=None,
-        shape=None,
-        shapesrc=None,
-        size=None,
-        sizesrc=None,
-        solidity=None,
-        soliditysrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            fgcolor=None,
+            fgcolorsrc=None,
+            fgopacity=None,
+            fillmode=None,
+            shape=None,
+            shapesrc=None,
+            size=None,
+            sizesrc=None,
+            solidity=None,
+            soliditysrc=None,
+            **kwargs
+        ):
         """
         Construct a new Pattern object
 
@@ -398,9 +387,9 @@ def __init__(
         -------
         Pattern
         """
-        super().__init__("pattern")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('pattern')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -410,27 +399,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.pie.marker.Pattern
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.pie.marker.Pattern`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("fgcolor", arg, fgcolor)
-        self._set_property("fgcolorsrc", arg, fgcolorsrc)
-        self._set_property("fgopacity", arg, fgopacity)
-        self._set_property("fillmode", arg, fillmode)
-        self._set_property("shape", arg, shape)
-        self._set_property("shapesrc", arg, shapesrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("solidity", arg, solidity)
-        self._set_property("soliditysrc", arg, soliditysrc)
+an instance of :class:`plotly.graph_objs.pie.marker.Pattern`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('fgcolor', arg, fgcolor)
+        self._set_property('fgcolorsrc', arg, fgcolorsrc)
+        self._set_property('fgopacity', arg, fgopacity)
+        self._set_property('fillmode', arg, fillmode)
+        self._set_property('shape', arg, shape)
+        self._set_property('shapesrc', arg, shapesrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('solidity', arg, solidity)
+        self._set_property('soliditysrc', arg, soliditysrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/pie/title/__init__.py b/plotly/graph_objs/pie/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/pie/title/__init__.py
+++ b/plotly/graph_objs/pie/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/pie/title/_font.py b/plotly/graph_objs/pie/title/_font.py
index bf865b3ac84..74b7901ec99 100644
--- a/plotly/graph_objs/pie/title/_font.py
+++ b/plotly/graph_objs/pie/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "pie.title"
-    _path_str = "pie.title.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'pie.title'
+    _path_str = 'pie.title.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.pie.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.pie.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.pie.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sankey/__init__.py b/plotly/graph_objs/sankey/__init__.py
index e3a92231110..f8d8c5f70b3 100644
--- a/plotly/graph_objs/sankey/__init__.py
+++ b/plotly/graph_objs/sankey/__init__.py
@@ -1,16 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._domain import Domain
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._link import Link
+    from ._node import Node
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import link
+    from . import node
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.link', '.node'],
+        ['._domain.Domain', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._link.Link', '._node.Node', '._stream.Stream', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".link", ".node"],
-    [
-        "._domain.Domain",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._link.Link",
-        "._node.Node",
-        "._stream.Stream",
-        "._textfont.Textfont",
-    ],
-)
diff --git a/plotly/graph_objs/sankey/_domain.py b/plotly/graph_objs/sankey/_domain.py
index 37548ccf199..93ad2b28d20 100644
--- a/plotly/graph_objs/sankey/_domain.py
+++ b/plotly/graph_objs/sankey/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sankey"
-    _path_str = "sankey.domain"
+    _parent_path_str = 'sankey'
+    _path_str = 'sankey.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -25,11 +29,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -45,59 +49,59 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this sankey trace (in plot
-            fraction).
-
-            The 'x' property is an info array that may be specified as:
+        Sets the horizontal domain of this sankey trace (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this sankey trace (in plot
-            fraction).
+        Sets the vertical domain of this sankey trace (in plot
+        fraction).
 
-            The 'y' property is an info array that may be specified as:
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,8 +119,14 @@ def _prop_descriptions(self):
             Sets the vertical domain of this sankey trace (in plot
             fraction).
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -142,9 +152,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -154,19 +164,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sankey.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sankey.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.sankey.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sankey/_hoverlabel.py b/plotly/graph_objs/sankey/_hoverlabel.py
index e423be83f0d..d3073f16cfa 100644
--- a/plotly/graph_objs/sankey/_hoverlabel.py
+++ b/plotly/graph_objs/sankey/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sankey"
-    _path_str = "sankey.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'sankey'
+    _path_str = 'sankey.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.sankey.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sankey.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sankey.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.sankey.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sankey/_legendgrouptitle.py b/plotly/graph_objs/sankey/_legendgrouptitle.py
index eb4749f2454..fe06b0f7276 100644
--- a/plotly/graph_objs/sankey/_legendgrouptitle.py
+++ b/plotly/graph_objs/sankey/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sankey"
-    _path_str = "sankey.legendgrouptitle"
+    _parent_path_str = 'sankey'
+    _path_str = 'sankey.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.sankey.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sankey.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sankey.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.sankey.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sankey/_link.py b/plotly/graph_objs/sankey/_link.py
index da4af0cbd8d..46c52733bca 100644
--- a/plotly/graph_objs/sankey/_link.py
+++ b/plotly/graph_objs/sankey/_link.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,9 @@
 
 class Link(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sankey"
-    _path_str = "sankey.link"
-    _valid_props = {
-        "arrowlen",
-        "color",
-        "colorscaledefaults",
-        "colorscales",
-        "colorsrc",
-        "customdata",
-        "customdatasrc",
-        "hovercolor",
-        "hovercolorsrc",
-        "hoverinfo",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "label",
-        "labelsrc",
-        "line",
-        "source",
-        "sourcesrc",
-        "target",
-        "targetsrc",
-        "value",
-        "valuesrc",
-    }
+    _parent_path_str = 'sankey'
+    _path_str = 'sankey.link'
+    _valid_props = {"arrowlen", "color", "colorscaledefaults", "colorscales", "colorsrc", "customdata", "customdatasrc", "hovercolor", "hovercolorsrc", "hoverinfo", "hoverlabel", "hovertemplate", "hovertemplatesrc", "label", "labelsrc", "line", "source", "sourcesrc", "target", "targetsrc", "value", "valuesrc"}
 
     @property
     def arrowlen(self):
@@ -47,11 +28,11 @@ def arrowlen(self):
         -------
         int|float
         """
-        return self["arrowlen"]
+        return self['arrowlen']
 
     @arrowlen.setter
     def arrowlen(self, val):
-        self["arrowlen"] = val
+        self['arrowlen'] = val
 
     @property
     def color(self):
@@ -72,11 +53,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorscales(self):
@@ -91,11 +72,11 @@ def colorscales(self):
         -------
         tuple[plotly.graph_objs.sankey.link.Colorscale]
         """
-        return self["colorscales"]
+        return self['colorscales']
 
     @colorscales.setter
     def colorscales(self, val):
-        self["colorscales"] = val
+        self['colorscales'] = val
 
     @property
     def colorscaledefaults(self):
@@ -115,11 +96,11 @@ def colorscaledefaults(self):
         -------
         plotly.graph_objs.sankey.link.Colorscale
         """
-        return self["colorscaledefaults"]
+        return self['colorscaledefaults']
 
     @colorscaledefaults.setter
     def colorscaledefaults(self, val):
-        self["colorscaledefaults"] = val
+        self['colorscaledefaults'] = val
 
     @property
     def colorsrc(self):
@@ -133,11 +114,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def customdata(self):
@@ -151,11 +132,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -170,11 +151,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def hovercolor(self):
@@ -196,11 +177,11 @@ def hovercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovercolor"]
+        return self['hovercolor']
 
     @hovercolor.setter
     def hovercolor(self, val):
-        self["hovercolor"] = val
+        self['hovercolor'] = val
 
     @property
     def hovercolorsrc(self):
@@ -215,11 +196,11 @@ def hovercolorsrc(self):
         -------
         str
         """
-        return self["hovercolorsrc"]
+        return self['hovercolorsrc']
 
     @hovercolorsrc.setter
     def hovercolorsrc(self, val):
-        self["hovercolorsrc"] = val
+        self['hovercolorsrc'] = val
 
     @property
     def hoverinfo(self):
@@ -237,11 +218,11 @@ def hoverinfo(self):
         -------
         Any
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverlabel(self):
@@ -256,11 +237,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.sankey.link.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -300,11 +281,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -319,11 +300,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def label(self):
@@ -337,11 +318,11 @@ def label(self):
         -------
         numpy.ndarray
         """
-        return self["label"]
+        return self['label']
 
     @label.setter
     def label(self, val):
-        self["label"] = val
+        self['label'] = val
 
     @property
     def labelsrc(self):
@@ -355,11 +336,11 @@ def labelsrc(self):
         -------
         str
         """
-        return self["labelsrc"]
+        return self['labelsrc']
 
     @labelsrc.setter
     def labelsrc(self, val):
-        self["labelsrc"] = val
+        self['labelsrc'] = val
 
     @property
     def line(self):
@@ -374,11 +355,11 @@ def line(self):
         -------
         plotly.graph_objs.sankey.link.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def source(self):
@@ -393,11 +374,11 @@ def source(self):
         -------
         numpy.ndarray
         """
-        return self["source"]
+        return self['source']
 
     @source.setter
     def source(self, val):
-        self["source"] = val
+        self['source'] = val
 
     @property
     def sourcesrc(self):
@@ -411,11 +392,11 @@ def sourcesrc(self):
         -------
         str
         """
-        return self["sourcesrc"]
+        return self['sourcesrc']
 
     @sourcesrc.setter
     def sourcesrc(self, val):
-        self["sourcesrc"] = val
+        self['sourcesrc'] = val
 
     @property
     def target(self):
@@ -430,11 +411,11 @@ def target(self):
         -------
         numpy.ndarray
         """
-        return self["target"]
+        return self['target']
 
     @target.setter
     def target(self, val):
-        self["target"] = val
+        self['target'] = val
 
     @property
     def targetsrc(self):
@@ -448,11 +429,11 @@ def targetsrc(self):
         -------
         str
         """
-        return self["targetsrc"]
+        return self['targetsrc']
 
     @targetsrc.setter
     def targetsrc(self, val):
-        self["targetsrc"] = val
+        self['targetsrc'] = val
 
     @property
     def value(self):
@@ -466,11 +447,11 @@ def value(self):
         -------
         numpy.ndarray
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def valuesrc(self):
@@ -484,11 +465,11 @@ def valuesrc(self):
         -------
         str
         """
-        return self["valuesrc"]
+        return self['valuesrc']
 
     @valuesrc.setter
     def valuesrc(self, val):
-        self["valuesrc"] = val
+        self['valuesrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -595,34 +576,32 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `value`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        arrowlen=None,
-        color=None,
-        colorscales=None,
-        colorscaledefaults=None,
-        colorsrc=None,
-        customdata=None,
-        customdatasrc=None,
-        hovercolor=None,
-        hovercolorsrc=None,
-        hoverinfo=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        label=None,
-        labelsrc=None,
-        line=None,
-        source=None,
-        sourcesrc=None,
-        target=None,
-        targetsrc=None,
-        value=None,
-        valuesrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            arrowlen=None,
+            color=None,
+            colorscales=None,
+            colorscaledefaults=None,
+            colorsrc=None,
+            customdata=None,
+            customdatasrc=None,
+            hovercolor=None,
+            hovercolorsrc=None,
+            hoverinfo=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            label=None,
+            labelsrc=None,
+            line=None,
+            source=None,
+            sourcesrc=None,
+            target=None,
+            targetsrc=None,
+            value=None,
+            valuesrc=None,
+            **kwargs
+        ):
         """
         Construct a new Link object
 
@@ -739,9 +718,9 @@ def __init__(
         -------
         Link
         """
-        super().__init__("link")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('link')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -751,37 +730,37 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sankey.Link
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sankey.Link`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("arrowlen", arg, arrowlen)
-        self._set_property("color", arg, color)
-        self._set_property("colorscales", arg, colorscales)
-        self._set_property("colorscaledefaults", arg, colorscaledefaults)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("hovercolor", arg, hovercolor)
-        self._set_property("hovercolorsrc", arg, hovercolorsrc)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("label", arg, label)
-        self._set_property("labelsrc", arg, labelsrc)
-        self._set_property("line", arg, line)
-        self._set_property("source", arg, source)
-        self._set_property("sourcesrc", arg, sourcesrc)
-        self._set_property("target", arg, target)
-        self._set_property("targetsrc", arg, targetsrc)
-        self._set_property("value", arg, value)
-        self._set_property("valuesrc", arg, valuesrc)
+an instance of :class:`plotly.graph_objs.sankey.Link`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('arrowlen', arg, arrowlen)
+        self._set_property('color', arg, color)
+        self._set_property('colorscales', arg, colorscales)
+        self._set_property('colorscaledefaults', arg, colorscaledefaults)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('hovercolor', arg, hovercolor)
+        self._set_property('hovercolorsrc', arg, hovercolorsrc)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('label', arg, label)
+        self._set_property('labelsrc', arg, labelsrc)
+        self._set_property('line', arg, line)
+        self._set_property('source', arg, source)
+        self._set_property('sourcesrc', arg, sourcesrc)
+        self._set_property('target', arg, target)
+        self._set_property('targetsrc', arg, targetsrc)
+        self._set_property('value', arg, value)
+        self._set_property('valuesrc', arg, valuesrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sankey/_node.py b/plotly/graph_objs/sankey/_node.py
index d3e4c21b6e5..e5634170e02 100644
--- a/plotly/graph_objs/sankey/_node.py
+++ b/plotly/graph_objs/sankey/_node.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,29 +11,9 @@
 
 class Node(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sankey"
-    _path_str = "sankey.node"
-    _valid_props = {
-        "align",
-        "color",
-        "colorsrc",
-        "customdata",
-        "customdatasrc",
-        "groups",
-        "hoverinfo",
-        "hoverlabel",
-        "hovertemplate",
-        "hovertemplatesrc",
-        "label",
-        "labelsrc",
-        "line",
-        "pad",
-        "thickness",
-        "x",
-        "xsrc",
-        "y",
-        "ysrc",
-    }
+    _parent_path_str = 'sankey'
+    _path_str = 'sankey.node'
+    _valid_props = {"align", "color", "colorsrc", "customdata", "customdatasrc", "groups", "hoverinfo", "hoverlabel", "hovertemplate", "hovertemplatesrc", "label", "labelsrc", "line", "pad", "thickness", "x", "xsrc", "y", "ysrc"}
 
     @property
     def align(self):
@@ -45,11 +29,11 @@ def align(self):
         -------
         Any
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def color(self):
@@ -73,11 +57,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -91,11 +75,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def customdata(self):
@@ -109,11 +93,11 @@ def customdata(self):
         -------
         numpy.ndarray
         """
-        return self["customdata"]
+        return self['customdata']
 
     @customdata.setter
     def customdata(self, val):
-        self["customdata"] = val
+        self['customdata'] = val
 
     @property
     def customdatasrc(self):
@@ -128,11 +112,11 @@ def customdatasrc(self):
         -------
         str
         """
-        return self["customdatasrc"]
+        return self['customdatasrc']
 
     @customdatasrc.setter
     def customdatasrc(self, val):
-        self["customdatasrc"] = val
+        self['customdatasrc'] = val
 
     @property
     def groups(self):
@@ -150,11 +134,11 @@ def groups(self):
         -------
         list
         """
-        return self["groups"]
+        return self['groups']
 
     @groups.setter
     def groups(self, val):
-        self["groups"] = val
+        self['groups'] = val
 
     @property
     def hoverinfo(self):
@@ -172,11 +156,11 @@ def hoverinfo(self):
         -------
         Any
         """
-        return self["hoverinfo"]
+        return self['hoverinfo']
 
     @hoverinfo.setter
     def hoverinfo(self, val):
-        self["hoverinfo"] = val
+        self['hoverinfo'] = val
 
     @property
     def hoverlabel(self):
@@ -191,11 +175,11 @@ def hoverlabel(self):
         -------
         plotly.graph_objs.sankey.node.Hoverlabel
         """
-        return self["hoverlabel"]
+        return self['hoverlabel']
 
     @hoverlabel.setter
     def hoverlabel(self, val):
-        self["hoverlabel"] = val
+        self['hoverlabel'] = val
 
     @property
     def hovertemplate(self):
@@ -236,11 +220,11 @@ def hovertemplate(self):
         -------
         str|numpy.ndarray
         """
-        return self["hovertemplate"]
+        return self['hovertemplate']
 
     @hovertemplate.setter
     def hovertemplate(self, val):
-        self["hovertemplate"] = val
+        self['hovertemplate'] = val
 
     @property
     def hovertemplatesrc(self):
@@ -255,11 +239,11 @@ def hovertemplatesrc(self):
         -------
         str
         """
-        return self["hovertemplatesrc"]
+        return self['hovertemplatesrc']
 
     @hovertemplatesrc.setter
     def hovertemplatesrc(self, val):
-        self["hovertemplatesrc"] = val
+        self['hovertemplatesrc'] = val
 
     @property
     def label(self):
@@ -273,11 +257,11 @@ def label(self):
         -------
         numpy.ndarray
         """
-        return self["label"]
+        return self['label']
 
     @label.setter
     def label(self, val):
-        self["label"] = val
+        self['label'] = val
 
     @property
     def labelsrc(self):
@@ -291,11 +275,11 @@ def labelsrc(self):
         -------
         str
         """
-        return self["labelsrc"]
+        return self['labelsrc']
 
     @labelsrc.setter
     def labelsrc(self, val):
-        self["labelsrc"] = val
+        self['labelsrc'] = val
 
     @property
     def line(self):
@@ -310,11 +294,11 @@ def line(self):
         -------
         plotly.graph_objs.sankey.node.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def pad(self):
@@ -328,11 +312,11 @@ def pad(self):
         -------
         int|float
         """
-        return self["pad"]
+        return self['pad']
 
     @pad.setter
     def pad(self, val):
-        self["pad"] = val
+        self['pad'] = val
 
     @property
     def thickness(self):
@@ -346,11 +330,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def x(self):
@@ -364,11 +348,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xsrc(self):
@@ -382,11 +366,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -400,11 +384,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def ysrc(self):
@@ -418,11 +402,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -514,31 +498,29 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `y`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        color=None,
-        colorsrc=None,
-        customdata=None,
-        customdatasrc=None,
-        groups=None,
-        hoverinfo=None,
-        hoverlabel=None,
-        hovertemplate=None,
-        hovertemplatesrc=None,
-        label=None,
-        labelsrc=None,
-        line=None,
-        pad=None,
-        thickness=None,
-        x=None,
-        xsrc=None,
-        y=None,
-        ysrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            color=None,
+            colorsrc=None,
+            customdata=None,
+            customdatasrc=None,
+            groups=None,
+            hoverinfo=None,
+            hoverlabel=None,
+            hovertemplate=None,
+            hovertemplatesrc=None,
+            label=None,
+            labelsrc=None,
+            line=None,
+            pad=None,
+            thickness=None,
+            x=None,
+            xsrc=None,
+            y=None,
+            ysrc=None,
+            **kwargs
+        ):
         """
         Construct a new Node object
 
@@ -640,9 +622,9 @@ def __init__(
         -------
         Node
         """
-        super().__init__("node")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('node')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -652,34 +634,34 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sankey.Node
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sankey.Node`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("customdata", arg, customdata)
-        self._set_property("customdatasrc", arg, customdatasrc)
-        self._set_property("groups", arg, groups)
-        self._set_property("hoverinfo", arg, hoverinfo)
-        self._set_property("hoverlabel", arg, hoverlabel)
-        self._set_property("hovertemplate", arg, hovertemplate)
-        self._set_property("hovertemplatesrc", arg, hovertemplatesrc)
-        self._set_property("label", arg, label)
-        self._set_property("labelsrc", arg, labelsrc)
-        self._set_property("line", arg, line)
-        self._set_property("pad", arg, pad)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("x", arg, x)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("ysrc", arg, ysrc)
+an instance of :class:`plotly.graph_objs.sankey.Node`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('customdata', arg, customdata)
+        self._set_property('customdatasrc', arg, customdatasrc)
+        self._set_property('groups', arg, groups)
+        self._set_property('hoverinfo', arg, hoverinfo)
+        self._set_property('hoverlabel', arg, hoverlabel)
+        self._set_property('hovertemplate', arg, hovertemplate)
+        self._set_property('hovertemplatesrc', arg, hovertemplatesrc)
+        self._set_property('label', arg, label)
+        self._set_property('labelsrc', arg, labelsrc)
+        self._set_property('line', arg, line)
+        self._set_property('pad', arg, pad)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('x', arg, x)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('ysrc', arg, ysrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sankey/_stream.py b/plotly/graph_objs/sankey/_stream.py
index 9c8f1046a93..ef8abeef6fa 100644
--- a/plotly/graph_objs/sankey/_stream.py
+++ b/plotly/graph_objs/sankey/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sankey"
-    _path_str = "sankey.stream"
+    _parent_path_str = 'sankey'
+    _path_str = 'sankey.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sankey.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sankey.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.sankey.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sankey/_textfont.py b/plotly/graph_objs/sankey/_textfont.py
index 3c777acf412..ab4d3c47e56 100644
--- a/plotly/graph_objs/sankey/_textfont.py
+++ b/plotly/graph_objs/sankey/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sankey"
-    _path_str = "sankey.textfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'sankey'
+    _path_str = 'sankey.textfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sankey.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sankey.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.sankey.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sankey/hoverlabel/__init__.py b/plotly/graph_objs/sankey/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/sankey/hoverlabel/__init__.py
+++ b/plotly/graph_objs/sankey/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/sankey/hoverlabel/_font.py b/plotly/graph_objs/sankey/hoverlabel/_font.py
index 8a98d0f9537..177d1dd82f3 100644
--- a/plotly/graph_objs/sankey/hoverlabel/_font.py
+++ b/plotly/graph_objs/sankey/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sankey.hoverlabel"
-    _path_str = "sankey.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'sankey.hoverlabel'
+    _path_str = 'sankey.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sankey.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sankey.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.sankey.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sankey/legendgrouptitle/__init__.py b/plotly/graph_objs/sankey/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/sankey/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/sankey/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/sankey/legendgrouptitle/_font.py b/plotly/graph_objs/sankey/legendgrouptitle/_font.py
index 04430041b74..e0a6cf1ea0b 100644
--- a/plotly/graph_objs/sankey/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/sankey/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sankey.legendgrouptitle"
-    _path_str = "sankey.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'sankey.legendgrouptitle'
+    _path_str = 'sankey.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sankey.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sankey.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.sankey.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sankey/link/__init__.py b/plotly/graph_objs/sankey/link/__init__.py
index fe898fb7d7e..f71f504194e 100644
--- a/plotly/graph_objs/sankey/link/__init__.py
+++ b/plotly/graph_objs/sankey/link/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorscale import Colorscale
+    from ._hoverlabel import Hoverlabel
+    from ._line import Line
+    from . import hoverlabel
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel'],
+        ['._colorscale.Colorscale', '._hoverlabel.Hoverlabel', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel"],
-    ["._colorscale.Colorscale", "._hoverlabel.Hoverlabel", "._line.Line"],
-)
diff --git a/plotly/graph_objs/sankey/link/_colorscale.py b/plotly/graph_objs/sankey/link/_colorscale.py
index a3bf41cc0e6..84476b18509 100644
--- a/plotly/graph_objs/sankey/link/_colorscale.py
+++ b/plotly/graph_objs/sankey/link/_colorscale.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Colorscale(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sankey.link"
-    _path_str = "sankey.link.colorscale"
+    _parent_path_str = 'sankey.link'
+    _path_str = 'sankey.link.colorscale'
     _valid_props = {"cmax", "cmin", "colorscale", "label", "name", "templateitemname"}
 
     @property
@@ -23,11 +27,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmin(self):
@@ -41,11 +45,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def colorscale(self):
@@ -92,11 +96,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def label(self):
@@ -112,11 +116,11 @@ def label(self):
         -------
         str
         """
-        return self["label"]
+        return self['label']
 
     @label.setter
     def label(self, val):
-        self["label"] = val
+        self['label'] = val
 
     @property
     def name(self):
@@ -137,11 +141,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -163,11 +167,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def _prop_descriptions(self):
@@ -211,18 +215,16 @@ def _prop_descriptions(self):
             matching item, this item will be hidden unless you
             explicitly show it with `visible: true`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        cmax=None,
-        cmin=None,
-        colorscale=None,
-        label=None,
-        name=None,
-        templateitemname=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            cmax=None,
+            cmin=None,
+            colorscale=None,
+            label=None,
+            name=None,
+            templateitemname=None,
+            **kwargs
+        ):
         """
         Construct a new Colorscale object
 
@@ -275,9 +277,9 @@ def __init__(
         -------
         Colorscale
         """
-        super().__init__("colorscales")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorscales')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -287,21 +289,21 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sankey.link.Colorscale
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sankey.link.Colorscale`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("label", arg, label)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
+an instance of :class:`plotly.graph_objs.sankey.link.Colorscale`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('label', arg, label)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sankey/link/_hoverlabel.py b/plotly/graph_objs/sankey/link/_hoverlabel.py
index 763f566f9e8..e75aadbc170 100644
--- a/plotly/graph_objs/sankey/link/_hoverlabel.py
+++ b/plotly/graph_objs/sankey/link/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sankey.link"
-    _path_str = "sankey.link.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'sankey.link'
+    _path_str = 'sankey.link.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.sankey.link.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sankey.link.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sankey.link.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.sankey.link.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sankey/link/_line.py b/plotly/graph_objs/sankey/link/_line.py
index 1029e59f1eb..1663af15866 100644
--- a/plotly/graph_objs/sankey/link/_line.py
+++ b/plotly/graph_objs/sankey/link/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sankey.link"
-    _path_str = "sankey.link.line"
+    _parent_path_str = 'sankey.link'
+    _path_str = 'sankey.link.line'
     _valid_props = {"color", "colorsrc", "width", "widthsrc"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -46,11 +50,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def width(self):
@@ -65,11 +69,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -83,11 +87,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -104,10 +108,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, width=None, widthsrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -133,9 +141,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -145,19 +153,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sankey.link.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sankey.link.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.sankey.link.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sankey/link/hoverlabel/__init__.py b/plotly/graph_objs/sankey/link/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/sankey/link/hoverlabel/__init__.py
+++ b/plotly/graph_objs/sankey/link/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/sankey/link/hoverlabel/_font.py b/plotly/graph_objs/sankey/link/hoverlabel/_font.py
index 277da0b1e15..4cfcc9f7a08 100644
--- a/plotly/graph_objs/sankey/link/hoverlabel/_font.py
+++ b/plotly/graph_objs/sankey/link/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sankey.link.hoverlabel"
-    _path_str = "sankey.link.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'sankey.link.hoverlabel'
+    _path_str = 'sankey.link.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sankey.link.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sankey.link.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.sankey.link.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sankey/node/__init__.py b/plotly/graph_objs/sankey/node/__init__.py
index f9203803730..1e536edd800 100644
--- a/plotly/graph_objs/sankey/node/__init__.py
+++ b/plotly/graph_objs/sankey/node/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._hoverlabel import Hoverlabel
+    from ._line import Line
+    from . import hoverlabel
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel'],
+        ['._hoverlabel.Hoverlabel', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".hoverlabel"], ["._hoverlabel.Hoverlabel", "._line.Line"]
-)
diff --git a/plotly/graph_objs/sankey/node/_hoverlabel.py b/plotly/graph_objs/sankey/node/_hoverlabel.py
index 5dfa29f8ece..f94d7ed5efa 100644
--- a/plotly/graph_objs/sankey/node/_hoverlabel.py
+++ b/plotly/graph_objs/sankey/node/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sankey.node"
-    _path_str = "sankey.node.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'sankey.node'
+    _path_str = 'sankey.node.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.sankey.node.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sankey.node.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sankey.node.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.sankey.node.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sankey/node/_line.py b/plotly/graph_objs/sankey/node/_line.py
index 3c2162637eb..db45fb5eecd 100644
--- a/plotly/graph_objs/sankey/node/_line.py
+++ b/plotly/graph_objs/sankey/node/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sankey.node"
-    _path_str = "sankey.node.line"
+    _parent_path_str = 'sankey.node'
+    _path_str = 'sankey.node.line'
     _valid_props = {"color", "colorsrc", "width", "widthsrc"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -46,11 +50,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def width(self):
@@ -65,11 +69,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -83,11 +87,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -104,10 +108,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, width=None, widthsrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -133,9 +141,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -145,19 +153,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sankey.node.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sankey.node.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.sankey.node.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sankey/node/hoverlabel/__init__.py b/plotly/graph_objs/sankey/node/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/sankey/node/hoverlabel/__init__.py
+++ b/plotly/graph_objs/sankey/node/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/sankey/node/hoverlabel/_font.py b/plotly/graph_objs/sankey/node/hoverlabel/_font.py
index 03adfe1ca6b..b766ea1bf51 100644
--- a/plotly/graph_objs/sankey/node/hoverlabel/_font.py
+++ b/plotly/graph_objs/sankey/node/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sankey.node.hoverlabel"
-    _path_str = "sankey.node.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'sankey.node.hoverlabel'
+    _path_str = 'sankey.node.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sankey.node.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sankey.node.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.sankey.node.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/__init__.py b/plotly/graph_objs/scatter/__init__.py
index b0327a6d1b5..b2d833a6ba1 100644
--- a/plotly/graph_objs/scatter/__init__.py
+++ b/plotly/graph_objs/scatter/__init__.py
@@ -1,21 +1,29 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._error_x import ErrorX
+    from ._error_y import ErrorY
+    from ._fillgradient import Fillgradient
+    from ._fillpattern import Fillpattern
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._marker import Marker
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._unselected import Unselected
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._error_x.ErrorX', '._error_y.ErrorY', '._fillgradient.Fillgradient', '._fillpattern.Fillpattern', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._marker.Marker', '._selected.Selected', '._stream.Stream', '._textfont.Textfont', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".selected", ".unselected"],
-    [
-        "._error_x.ErrorX",
-        "._error_y.ErrorY",
-        "._fillgradient.Fillgradient",
-        "._fillpattern.Fillpattern",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._marker.Marker",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/scatter/_error_x.py b/plotly/graph_objs/scatter/_error_x.py
index d6d10a16c2e..60272555be4 100644
--- a/plotly/graph_objs/scatter/_error_x.py
+++ b/plotly/graph_objs/scatter/_error_x.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,25 +11,9 @@
 
 class ErrorX(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter"
-    _path_str = "scatter.error_x"
-    _valid_props = {
-        "array",
-        "arrayminus",
-        "arrayminussrc",
-        "arraysrc",
-        "color",
-        "copy_ystyle",
-        "symmetric",
-        "thickness",
-        "traceref",
-        "tracerefminus",
-        "type",
-        "value",
-        "valueminus",
-        "visible",
-        "width",
-    }
+    _parent_path_str = 'scatter'
+    _path_str = 'scatter.error_x'
+    _valid_props = {"array", "arrayminus", "arrayminussrc", "arraysrc", "color", "copy_ystyle", "symmetric", "thickness", "traceref", "tracerefminus", "type", "value", "valueminus", "visible", "width"}
 
     @property
     def array(self):
@@ -40,11 +28,11 @@ def array(self):
         -------
         numpy.ndarray
         """
-        return self["array"]
+        return self['array']
 
     @array.setter
     def array(self, val):
-        self["array"] = val
+        self['array'] = val
 
     @property
     def arrayminus(self):
@@ -60,11 +48,11 @@ def arrayminus(self):
         -------
         numpy.ndarray
         """
-        return self["arrayminus"]
+        return self['arrayminus']
 
     @arrayminus.setter
     def arrayminus(self, val):
-        self["arrayminus"] = val
+        self['arrayminus'] = val
 
     @property
     def arrayminussrc(self):
@@ -79,11 +67,11 @@ def arrayminussrc(self):
         -------
         str
         """
-        return self["arrayminussrc"]
+        return self['arrayminussrc']
 
     @arrayminussrc.setter
     def arrayminussrc(self, val):
-        self["arrayminussrc"] = val
+        self['arrayminussrc'] = val
 
     @property
     def arraysrc(self):
@@ -97,11 +85,11 @@ def arraysrc(self):
         -------
         str
         """
-        return self["arraysrc"]
+        return self['arraysrc']
 
     @arraysrc.setter
     def arraysrc(self, val):
-        self["arraysrc"] = val
+        self['arraysrc'] = val
 
     @property
     def color(self):
@@ -119,11 +107,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def copy_ystyle(self):
@@ -135,11 +123,11 @@ def copy_ystyle(self):
         -------
         bool
         """
-        return self["copy_ystyle"]
+        return self['copy_ystyle']
 
     @copy_ystyle.setter
     def copy_ystyle(self, val):
-        self["copy_ystyle"] = val
+        self['copy_ystyle'] = val
 
     @property
     def symmetric(self):
@@ -155,11 +143,11 @@ def symmetric(self):
         -------
         bool
         """
-        return self["symmetric"]
+        return self['symmetric']
 
     @symmetric.setter
     def symmetric(self, val):
-        self["symmetric"] = val
+        self['symmetric'] = val
 
     @property
     def thickness(self):
@@ -173,11 +161,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def traceref(self):
@@ -190,11 +178,11 @@ def traceref(self):
         -------
         int
         """
-        return self["traceref"]
+        return self['traceref']
 
     @traceref.setter
     def traceref(self, val):
-        self["traceref"] = val
+        self['traceref'] = val
 
     @property
     def tracerefminus(self):
@@ -207,11 +195,11 @@ def tracerefminus(self):
         -------
         int
         """
-        return self["tracerefminus"]
+        return self['tracerefminus']
 
     @tracerefminus.setter
     def tracerefminus(self, val):
-        self["tracerefminus"] = val
+        self['tracerefminus'] = val
 
     @property
     def type(self):
@@ -232,11 +220,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def value(self):
@@ -252,11 +240,11 @@ def value(self):
         -------
         int|float
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def valueminus(self):
@@ -273,11 +261,11 @@ def valueminus(self):
         -------
         int|float
         """
-        return self["valueminus"]
+        return self['valueminus']
 
     @valueminus.setter
     def valueminus(self, val):
-        self["valueminus"] = val
+        self['valueminus'] = val
 
     @property
     def visible(self):
@@ -291,11 +279,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -310,11 +298,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -375,27 +363,25 @@ def _prop_descriptions(self):
             Sets the width (in px) of the cross-bar at both ends of
             the error bars.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        array=None,
-        arrayminus=None,
-        arrayminussrc=None,
-        arraysrc=None,
-        color=None,
-        copy_ystyle=None,
-        symmetric=None,
-        thickness=None,
-        traceref=None,
-        tracerefminus=None,
-        type=None,
-        value=None,
-        valueminus=None,
-        visible=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            array=None,
+            arrayminus=None,
+            arrayminussrc=None,
+            arraysrc=None,
+            color=None,
+            copy_ystyle=None,
+            symmetric=None,
+            thickness=None,
+            traceref=None,
+            tracerefminus=None,
+            type=None,
+            value=None,
+            valueminus=None,
+            visible=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new ErrorX object
 
@@ -465,9 +451,9 @@ def __init__(
         -------
         ErrorX
         """
-        super().__init__("error_x")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('error_x')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -477,30 +463,30 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.ErrorX
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.ErrorX`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("array", arg, array)
-        self._set_property("arrayminus", arg, arrayminus)
-        self._set_property("arrayminussrc", arg, arrayminussrc)
-        self._set_property("arraysrc", arg, arraysrc)
-        self._set_property("color", arg, color)
-        self._set_property("copy_ystyle", arg, copy_ystyle)
-        self._set_property("symmetric", arg, symmetric)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("traceref", arg, traceref)
-        self._set_property("tracerefminus", arg, tracerefminus)
-        self._set_property("type", arg, type)
-        self._set_property("value", arg, value)
-        self._set_property("valueminus", arg, valueminus)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.scatter.ErrorX`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('array', arg, array)
+        self._set_property('arrayminus', arg, arrayminus)
+        self._set_property('arrayminussrc', arg, arrayminussrc)
+        self._set_property('arraysrc', arg, arraysrc)
+        self._set_property('color', arg, color)
+        self._set_property('copy_ystyle', arg, copy_ystyle)
+        self._set_property('symmetric', arg, symmetric)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('traceref', arg, traceref)
+        self._set_property('tracerefminus', arg, tracerefminus)
+        self._set_property('type', arg, type)
+        self._set_property('value', arg, value)
+        self._set_property('valueminus', arg, valueminus)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/_error_y.py b/plotly/graph_objs/scatter/_error_y.py
index 16271b02009..afaa0775f75 100644
--- a/plotly/graph_objs/scatter/_error_y.py
+++ b/plotly/graph_objs/scatter/_error_y.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,24 +11,9 @@
 
 class ErrorY(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter"
-    _path_str = "scatter.error_y"
-    _valid_props = {
-        "array",
-        "arrayminus",
-        "arrayminussrc",
-        "arraysrc",
-        "color",
-        "symmetric",
-        "thickness",
-        "traceref",
-        "tracerefminus",
-        "type",
-        "value",
-        "valueminus",
-        "visible",
-        "width",
-    }
+    _parent_path_str = 'scatter'
+    _path_str = 'scatter.error_y'
+    _valid_props = {"array", "arrayminus", "arrayminussrc", "arraysrc", "color", "symmetric", "thickness", "traceref", "tracerefminus", "type", "value", "valueminus", "visible", "width"}
 
     @property
     def array(self):
@@ -39,11 +28,11 @@ def array(self):
         -------
         numpy.ndarray
         """
-        return self["array"]
+        return self['array']
 
     @array.setter
     def array(self, val):
-        self["array"] = val
+        self['array'] = val
 
     @property
     def arrayminus(self):
@@ -59,11 +48,11 @@ def arrayminus(self):
         -------
         numpy.ndarray
         """
-        return self["arrayminus"]
+        return self['arrayminus']
 
     @arrayminus.setter
     def arrayminus(self, val):
-        self["arrayminus"] = val
+        self['arrayminus'] = val
 
     @property
     def arrayminussrc(self):
@@ -78,11 +67,11 @@ def arrayminussrc(self):
         -------
         str
         """
-        return self["arrayminussrc"]
+        return self['arrayminussrc']
 
     @arrayminussrc.setter
     def arrayminussrc(self, val):
-        self["arrayminussrc"] = val
+        self['arrayminussrc'] = val
 
     @property
     def arraysrc(self):
@@ -96,11 +85,11 @@ def arraysrc(self):
         -------
         str
         """
-        return self["arraysrc"]
+        return self['arraysrc']
 
     @arraysrc.setter
     def arraysrc(self, val):
-        self["arraysrc"] = val
+        self['arraysrc'] = val
 
     @property
     def color(self):
@@ -118,11 +107,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def symmetric(self):
@@ -138,11 +127,11 @@ def symmetric(self):
         -------
         bool
         """
-        return self["symmetric"]
+        return self['symmetric']
 
     @symmetric.setter
     def symmetric(self, val):
-        self["symmetric"] = val
+        self['symmetric'] = val
 
     @property
     def thickness(self):
@@ -156,11 +145,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def traceref(self):
@@ -173,11 +162,11 @@ def traceref(self):
         -------
         int
         """
-        return self["traceref"]
+        return self['traceref']
 
     @traceref.setter
     def traceref(self, val):
-        self["traceref"] = val
+        self['traceref'] = val
 
     @property
     def tracerefminus(self):
@@ -190,11 +179,11 @@ def tracerefminus(self):
         -------
         int
         """
-        return self["tracerefminus"]
+        return self['tracerefminus']
 
     @tracerefminus.setter
     def tracerefminus(self, val):
-        self["tracerefminus"] = val
+        self['tracerefminus'] = val
 
     @property
     def type(self):
@@ -215,11 +204,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def value(self):
@@ -235,11 +224,11 @@ def value(self):
         -------
         int|float
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def valueminus(self):
@@ -256,11 +245,11 @@ def valueminus(self):
         -------
         int|float
         """
-        return self["valueminus"]
+        return self['valueminus']
 
     @valueminus.setter
     def valueminus(self, val):
-        self["valueminus"] = val
+        self['valueminus'] = val
 
     @property
     def visible(self):
@@ -274,11 +263,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -293,11 +282,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -356,26 +345,24 @@ def _prop_descriptions(self):
             Sets the width (in px) of the cross-bar at both ends of
             the error bars.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        array=None,
-        arrayminus=None,
-        arrayminussrc=None,
-        arraysrc=None,
-        color=None,
-        symmetric=None,
-        thickness=None,
-        traceref=None,
-        tracerefminus=None,
-        type=None,
-        value=None,
-        valueminus=None,
-        visible=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            array=None,
+            arrayminus=None,
+            arrayminussrc=None,
+            arraysrc=None,
+            color=None,
+            symmetric=None,
+            thickness=None,
+            traceref=None,
+            tracerefminus=None,
+            type=None,
+            value=None,
+            valueminus=None,
+            visible=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new ErrorY object
 
@@ -443,9 +430,9 @@ def __init__(
         -------
         ErrorY
         """
-        super().__init__("error_y")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('error_y')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -455,29 +442,29 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.ErrorY
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.ErrorY`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("array", arg, array)
-        self._set_property("arrayminus", arg, arrayminus)
-        self._set_property("arrayminussrc", arg, arrayminussrc)
-        self._set_property("arraysrc", arg, arraysrc)
-        self._set_property("color", arg, color)
-        self._set_property("symmetric", arg, symmetric)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("traceref", arg, traceref)
-        self._set_property("tracerefminus", arg, tracerefminus)
-        self._set_property("type", arg, type)
-        self._set_property("value", arg, value)
-        self._set_property("valueminus", arg, valueminus)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.scatter.ErrorY`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('array', arg, array)
+        self._set_property('arrayminus', arg, arrayminus)
+        self._set_property('arrayminussrc', arg, arrayminussrc)
+        self._set_property('arraysrc', arg, arraysrc)
+        self._set_property('color', arg, color)
+        self._set_property('symmetric', arg, symmetric)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('traceref', arg, traceref)
+        self._set_property('tracerefminus', arg, tracerefminus)
+        self._set_property('type', arg, type)
+        self._set_property('value', arg, value)
+        self._set_property('valueminus', arg, valueminus)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/_fillgradient.py b/plotly/graph_objs/scatter/_fillgradient.py
index 67cc2970d0b..fee4d7449de 100644
--- a/plotly/graph_objs/scatter/_fillgradient.py
+++ b/plotly/graph_objs/scatter/_fillgradient.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Fillgradient(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter"
-    _path_str = "scatter.fillgradient"
+    _parent_path_str = 'scatter'
+    _path_str = 'scatter.fillgradient'
     _valid_props = {"colorscale", "start", "stop", "type"}
 
     @property
@@ -51,11 +55,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def start(self):
@@ -74,11 +78,11 @@ def start(self):
         -------
         int|float
         """
-        return self["start"]
+        return self['start']
 
     @start.setter
     def start(self, val):
-        self["start"] = val
+        self['start'] = val
 
     @property
     def stop(self):
@@ -97,11 +101,11 @@ def stop(self):
         -------
         int|float
         """
-        return self["stop"]
+        return self['stop']
 
     @stop.setter
     def stop(self, val):
-        self["stop"] = val
+        self['stop'] = val
 
     @property
     def type(self):
@@ -117,11 +121,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def _prop_descriptions(self):
@@ -153,10 +157,14 @@ def _prop_descriptions(self):
             Sets the type/orientation of the color gradient for the
             fill. Defaults to "none".
         """
-
-    def __init__(
-        self, arg=None, colorscale=None, start=None, stop=None, type=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            colorscale=None,
+            start=None,
+            stop=None,
+            type=None,
+            **kwargs
+        ):
         """
         Construct a new Fillgradient object
 
@@ -200,9 +208,9 @@ def __init__(
         -------
         Fillgradient
         """
-        super().__init__("fillgradient")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('fillgradient')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -212,19 +220,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.Fillgradient
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.Fillgradient`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter.Fillgradient`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("start", arg, start)
-        self._set_property("stop", arg, stop)
-        self._set_property("type", arg, type)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('start', arg, start)
+        self._set_property('stop', arg, stop)
+        self._set_property('type', arg, type)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/_fillpattern.py b/plotly/graph_objs/scatter/_fillpattern.py
index e8a7fdda8be..b59a9e3ef4b 100644
--- a/plotly/graph_objs/scatter/_fillpattern.py
+++ b/plotly/graph_objs/scatter/_fillpattern.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Fillpattern(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter"
-    _path_str = "scatter.fillpattern"
-    _valid_props = {
-        "bgcolor",
-        "bgcolorsrc",
-        "fgcolor",
-        "fgcolorsrc",
-        "fgopacity",
-        "fillmode",
-        "shape",
-        "shapesrc",
-        "size",
-        "sizesrc",
-        "solidity",
-        "soliditysrc",
-    }
+    _parent_path_str = 'scatter'
+    _path_str = 'scatter.fillpattern'
+    _valid_props = {"bgcolor", "bgcolorsrc", "fgcolor", "fgcolorsrc", "fgopacity", "fillmode", "shape", "shapesrc", "size", "sizesrc", "solidity", "soliditysrc"}
 
     @property
     def bgcolor(self):
@@ -44,11 +35,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -62,11 +53,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def fgcolor(self):
@@ -88,11 +79,11 @@ def fgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["fgcolor"]
+        return self['fgcolor']
 
     @fgcolor.setter
     def fgcolor(self, val):
-        self["fgcolor"] = val
+        self['fgcolor'] = val
 
     @property
     def fgcolorsrc(self):
@@ -106,11 +97,11 @@ def fgcolorsrc(self):
         -------
         str
         """
-        return self["fgcolorsrc"]
+        return self['fgcolorsrc']
 
     @fgcolorsrc.setter
     def fgcolorsrc(self, val):
-        self["fgcolorsrc"] = val
+        self['fgcolorsrc'] = val
 
     @property
     def fgopacity(self):
@@ -125,11 +116,11 @@ def fgopacity(self):
         -------
         int|float
         """
-        return self["fgopacity"]
+        return self['fgopacity']
 
     @fgopacity.setter
     def fgopacity(self, val):
-        self["fgopacity"] = val
+        self['fgopacity'] = val
 
     @property
     def fillmode(self):
@@ -145,11 +136,11 @@ def fillmode(self):
         -------
         Any
         """
-        return self["fillmode"]
+        return self['fillmode']
 
     @fillmode.setter
     def fillmode(self, val):
-        self["fillmode"] = val
+        self['fillmode'] = val
 
     @property
     def shape(self):
@@ -166,11 +157,11 @@ def shape(self):
         -------
         Any|numpy.ndarray
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def shapesrc(self):
@@ -184,11 +175,11 @@ def shapesrc(self):
         -------
         str
         """
-        return self["shapesrc"]
+        return self['shapesrc']
 
     @shapesrc.setter
     def shapesrc(self, val):
-        self["shapesrc"] = val
+        self['shapesrc'] = val
 
     @property
     def size(self):
@@ -204,11 +195,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -222,11 +213,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def solidity(self):
@@ -244,11 +235,11 @@ def solidity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["solidity"]
+        return self['solidity']
 
     @solidity.setter
     def solidity(self, val):
-        self["solidity"] = val
+        self['solidity'] = val
 
     @property
     def soliditysrc(self):
@@ -262,11 +253,11 @@ def soliditysrc(self):
         -------
         str
         """
-        return self["soliditysrc"]
+        return self['soliditysrc']
 
     @soliditysrc.setter
     def soliditysrc(self, val):
-        self["soliditysrc"] = val
+        self['soliditysrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -318,24 +309,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `solidity`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        fgcolor=None,
-        fgcolorsrc=None,
-        fgopacity=None,
-        fillmode=None,
-        shape=None,
-        shapesrc=None,
-        size=None,
-        sizesrc=None,
-        solidity=None,
-        soliditysrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            fgcolor=None,
+            fgcolorsrc=None,
+            fgopacity=None,
+            fillmode=None,
+            shape=None,
+            shapesrc=None,
+            size=None,
+            sizesrc=None,
+            solidity=None,
+            soliditysrc=None,
+            **kwargs
+        ):
         """
         Construct a new Fillpattern object
 
@@ -398,9 +387,9 @@ def __init__(
         -------
         Fillpattern
         """
-        super().__init__("fillpattern")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('fillpattern')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -410,27 +399,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.Fillpattern
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.Fillpattern`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("fgcolor", arg, fgcolor)
-        self._set_property("fgcolorsrc", arg, fgcolorsrc)
-        self._set_property("fgopacity", arg, fgopacity)
-        self._set_property("fillmode", arg, fillmode)
-        self._set_property("shape", arg, shape)
-        self._set_property("shapesrc", arg, shapesrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("solidity", arg, solidity)
-        self._set_property("soliditysrc", arg, soliditysrc)
+an instance of :class:`plotly.graph_objs.scatter.Fillpattern`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('fgcolor', arg, fgcolor)
+        self._set_property('fgcolorsrc', arg, fgcolorsrc)
+        self._set_property('fgopacity', arg, fgopacity)
+        self._set_property('fillmode', arg, fillmode)
+        self._set_property('shape', arg, shape)
+        self._set_property('shapesrc', arg, shapesrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('solidity', arg, solidity)
+        self._set_property('soliditysrc', arg, soliditysrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/_hoverlabel.py b/plotly/graph_objs/scatter/_hoverlabel.py
index e0540990c17..777479f3b18 100644
--- a/plotly/graph_objs/scatter/_hoverlabel.py
+++ b/plotly/graph_objs/scatter/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter"
-    _path_str = "scatter.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'scatter'
+    _path_str = 'scatter.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.scatter.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.scatter.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/_legendgrouptitle.py b/plotly/graph_objs/scatter/_legendgrouptitle.py
index 02b97dbb060..a201da60b87 100644
--- a/plotly/graph_objs/scatter/_legendgrouptitle.py
+++ b/plotly/graph_objs/scatter/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter"
-    _path_str = "scatter.legendgrouptitle"
+    _parent_path_str = 'scatter'
+    _path_str = 'scatter.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scatter.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/_line.py b/plotly/graph_objs/scatter/_line.py
index 13a1d123461..cd02c142661 100644
--- a/plotly/graph_objs/scatter/_line.py
+++ b/plotly/graph_objs/scatter/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,18 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter"
-    _path_str = "scatter.line"
-    _valid_props = {
-        "backoff",
-        "backoffsrc",
-        "color",
-        "dash",
-        "shape",
-        "simplify",
-        "smoothing",
-        "width",
-    }
+    _parent_path_str = 'scatter'
+    _path_str = 'scatter.line'
+    _valid_props = {"backoff", "backoffsrc", "color", "dash", "shape", "simplify", "smoothing", "width"}
 
     @property
     def backoff(self):
@@ -36,11 +31,11 @@ def backoff(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["backoff"]
+        return self['backoff']
 
     @backoff.setter
     def backoff(self, val):
-        self["backoff"] = val
+        self['backoff'] = val
 
     @property
     def backoffsrc(self):
@@ -54,11 +49,11 @@ def backoffsrc(self):
         -------
         str
         """
-        return self["backoffsrc"]
+        return self['backoffsrc']
 
     @backoffsrc.setter
     def backoffsrc(self, val):
-        self["backoffsrc"] = val
+        self['backoffsrc'] = val
 
     @property
     def color(self):
@@ -76,11 +71,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -100,11 +95,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def shape(self):
@@ -121,11 +116,11 @@ def shape(self):
         -------
         Any
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def simplify(self):
@@ -142,11 +137,11 @@ def simplify(self):
         -------
         bool
         """
-        return self["simplify"]
+        return self['simplify']
 
     @simplify.setter
     def simplify(self, val):
-        self["simplify"] = val
+        self['simplify'] = val
 
     @property
     def smoothing(self):
@@ -162,11 +157,11 @@ def smoothing(self):
         -------
         int|float
         """
-        return self["smoothing"]
+        return self['smoothing']
 
     @smoothing.setter
     def smoothing(self, val):
-        self["smoothing"] = val
+        self['smoothing'] = val
 
     @property
     def width(self):
@@ -180,11 +175,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -221,20 +216,18 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        backoff=None,
-        backoffsrc=None,
-        color=None,
-        dash=None,
-        shape=None,
-        simplify=None,
-        smoothing=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            backoff=None,
+            backoffsrc=None,
+            color=None,
+            dash=None,
+            shape=None,
+            simplify=None,
+            smoothing=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -279,9 +272,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -291,23 +284,23 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("backoff", arg, backoff)
-        self._set_property("backoffsrc", arg, backoffsrc)
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("shape", arg, shape)
-        self._set_property("simplify", arg, simplify)
-        self._set_property("smoothing", arg, smoothing)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.scatter.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('backoff', arg, backoff)
+        self._set_property('backoffsrc', arg, backoffsrc)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('shape', arg, shape)
+        self._set_property('simplify', arg, simplify)
+        self._set_property('smoothing', arg, smoothing)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/_marker.py b/plotly/graph_objs/scatter/_marker.py
index 1098f885e6c..ba11e48f3a2 100644
--- a/plotly/graph_objs/scatter/_marker.py
+++ b/plotly/graph_objs/scatter/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,39 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter"
-    _path_str = "scatter.marker"
-    _valid_props = {
-        "angle",
-        "angleref",
-        "anglesrc",
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "gradient",
-        "line",
-        "maxdisplayed",
-        "opacity",
-        "opacitysrc",
-        "reversescale",
-        "showscale",
-        "size",
-        "sizemin",
-        "sizemode",
-        "sizeref",
-        "sizesrc",
-        "standoff",
-        "standoffsrc",
-        "symbol",
-        "symbolsrc",
-    }
+    _parent_path_str = 'scatter'
+    _path_str = 'scatter.marker'
+    _valid_props = {"angle", "angleref", "anglesrc", "autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "gradient", "line", "maxdisplayed", "opacity", "opacitysrc", "reversescale", "showscale", "size", "sizemin", "sizemode", "sizeref", "sizesrc", "standoff", "standoffsrc", "symbol", "symbolsrc"}
 
     @property
     def angle(self):
@@ -55,11 +29,11 @@ def angle(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["angle"]
+        return self['angle']
 
     @angle.setter
     def angle(self, val):
-        self["angle"] = val
+        self['angle'] = val
 
     @property
     def angleref(self):
@@ -76,11 +50,11 @@ def angleref(self):
         -------
         Any
         """
-        return self["angleref"]
+        return self['angleref']
 
     @angleref.setter
     def angleref(self, val):
-        self["angleref"] = val
+        self['angleref'] = val
 
     @property
     def anglesrc(self):
@@ -94,11 +68,11 @@ def anglesrc(self):
         -------
         str
         """
-        return self["anglesrc"]
+        return self['anglesrc']
 
     @anglesrc.setter
     def anglesrc(self, val):
-        self["anglesrc"] = val
+        self['anglesrc'] = val
 
     @property
     def autocolorscale(self):
@@ -118,11 +92,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -141,11 +115,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -162,11 +136,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -184,11 +158,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -205,11 +179,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -233,11 +207,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -258,11 +232,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -277,11 +251,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.scatter.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -329,11 +303,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -347,11 +321,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def gradient(self):
@@ -366,11 +340,11 @@ def gradient(self):
         -------
         plotly.graph_objs.scatter.marker.Gradient
         """
-        return self["gradient"]
+        return self['gradient']
 
     @gradient.setter
     def gradient(self, val):
-        self["gradient"] = val
+        self['gradient'] = val
 
     @property
     def line(self):
@@ -385,11 +359,11 @@ def line(self):
         -------
         plotly.graph_objs.scatter.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def maxdisplayed(self):
@@ -404,11 +378,11 @@ def maxdisplayed(self):
         -------
         int|float
         """
-        return self["maxdisplayed"]
+        return self['maxdisplayed']
 
     @maxdisplayed.setter
     def maxdisplayed(self, val):
-        self["maxdisplayed"] = val
+        self['maxdisplayed'] = val
 
     @property
     def opacity(self):
@@ -423,11 +397,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -441,11 +415,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def reversescale(self):
@@ -462,11 +436,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -482,11 +456,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def size(self):
@@ -501,11 +475,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizemin(self):
@@ -521,11 +495,11 @@ def sizemin(self):
         -------
         int|float
         """
-        return self["sizemin"]
+        return self['sizemin']
 
     @sizemin.setter
     def sizemin(self, val):
-        self["sizemin"] = val
+        self['sizemin'] = val
 
     @property
     def sizemode(self):
@@ -542,11 +516,11 @@ def sizemode(self):
         -------
         Any
         """
-        return self["sizemode"]
+        return self['sizemode']
 
     @sizemode.setter
     def sizemode(self, val):
-        self["sizemode"] = val
+        self['sizemode'] = val
 
     @property
     def sizeref(self):
@@ -562,11 +536,11 @@ def sizeref(self):
         -------
         int|float
         """
-        return self["sizeref"]
+        return self['sizeref']
 
     @sizeref.setter
     def sizeref(self, val):
-        self["sizeref"] = val
+        self['sizeref'] = val
 
     @property
     def sizesrc(self):
@@ -580,11 +554,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def standoff(self):
@@ -602,11 +576,11 @@ def standoff(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["standoff"]
+        return self['standoff']
 
     @standoff.setter
     def standoff(self, val):
-        self["standoff"] = val
+        self['standoff'] = val
 
     @property
     def standoffsrc(self):
@@ -620,11 +594,11 @@ def standoffsrc(self):
         -------
         str
         """
-        return self["standoffsrc"]
+        return self['standoffsrc']
 
     @standoffsrc.setter
     def standoffsrc(self, val):
-        self["standoffsrc"] = val
+        self['standoffsrc'] = val
 
     @property
     def symbol(self):
@@ -731,11 +705,11 @@ def symbol(self):
         -------
         Any|numpy.ndarray
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def symbolsrc(self):
@@ -749,11 +723,11 @@ def symbolsrc(self):
         -------
         str
         """
-        return self["symbolsrc"]
+        return self['symbolsrc']
 
     @symbolsrc.setter
     def symbolsrc(self, val):
-        self["symbolsrc"] = val
+        self['symbolsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -894,41 +868,39 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `symbol`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        angle=None,
-        angleref=None,
-        anglesrc=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        gradient=None,
-        line=None,
-        maxdisplayed=None,
-        opacity=None,
-        opacitysrc=None,
-        reversescale=None,
-        showscale=None,
-        size=None,
-        sizemin=None,
-        sizemode=None,
-        sizeref=None,
-        sizesrc=None,
-        standoff=None,
-        standoffsrc=None,
-        symbol=None,
-        symbolsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            angle=None,
+            angleref=None,
+            anglesrc=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            gradient=None,
+            line=None,
+            maxdisplayed=None,
+            opacity=None,
+            opacitysrc=None,
+            reversescale=None,
+            showscale=None,
+            size=None,
+            sizemin=None,
+            sizemode=None,
+            sizeref=None,
+            sizesrc=None,
+            standoff=None,
+            standoffsrc=None,
+            symbol=None,
+            symbolsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -1078,9 +1050,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1090,44 +1062,44 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("angle", arg, angle)
-        self._set_property("angleref", arg, angleref)
-        self._set_property("anglesrc", arg, anglesrc)
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("gradient", arg, gradient)
-        self._set_property("line", arg, line)
-        self._set_property("maxdisplayed", arg, maxdisplayed)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("size", arg, size)
-        self._set_property("sizemin", arg, sizemin)
-        self._set_property("sizemode", arg, sizemode)
-        self._set_property("sizeref", arg, sizeref)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("standoff", arg, standoff)
-        self._set_property("standoffsrc", arg, standoffsrc)
-        self._set_property("symbol", arg, symbol)
-        self._set_property("symbolsrc", arg, symbolsrc)
+an instance of :class:`plotly.graph_objs.scatter.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('angle', arg, angle)
+        self._set_property('angleref', arg, angleref)
+        self._set_property('anglesrc', arg, anglesrc)
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('gradient', arg, gradient)
+        self._set_property('line', arg, line)
+        self._set_property('maxdisplayed', arg, maxdisplayed)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('size', arg, size)
+        self._set_property('sizemin', arg, sizemin)
+        self._set_property('sizemode', arg, sizemode)
+        self._set_property('sizeref', arg, sizeref)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('standoff', arg, standoff)
+        self._set_property('standoffsrc', arg, standoffsrc)
+        self._set_property('symbol', arg, symbol)
+        self._set_property('symbolsrc', arg, symbolsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/_selected.py b/plotly/graph_objs/scatter/_selected.py
index bf5178f097a..a3f7f833db4 100644
--- a/plotly/graph_objs/scatter/_selected.py
+++ b/plotly/graph_objs/scatter/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter"
-    _path_str = "scatter.selected"
+    _parent_path_str = 'scatter'
+    _path_str = 'scatter.selected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scatter.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scatter.selected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scatter.selected.Textfont`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/_stream.py b/plotly/graph_objs/scatter/_stream.py
index 79163cc0fa2..582bfd28555 100644
--- a/plotly/graph_objs/scatter/_stream.py
+++ b/plotly/graph_objs/scatter/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter"
-    _path_str = "scatter.stream"
+    _parent_path_str = 'scatter'
+    _path_str = 'scatter.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/_textfont.py b/plotly/graph_objs/scatter/_textfont.py
index ed354516def..9f36e554635 100644
--- a/plotly/graph_objs/scatter/_textfont.py
+++ b/plotly/graph_objs/scatter/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter"
-    _path_str = "scatter.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scatter'
+    _path_str = 'scatter.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scatter.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/_unselected.py b/plotly/graph_objs/scatter/_unselected.py
index a8c291175f5..09c69fdf75b 100644
--- a/plotly/graph_objs/scatter/_unselected.py
+++ b/plotly/graph_objs/scatter/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter"
-    _path_str = "scatter.unselected"
+    _parent_path_str = 'scatter'
+    _path_str = 'scatter.unselected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scatter.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scatter.unselected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scatter.unselected.Textfon
             t` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/hoverlabel/__init__.py b/plotly/graph_objs/scatter/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scatter/hoverlabel/__init__.py
+++ b/plotly/graph_objs/scatter/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scatter/hoverlabel/_font.py b/plotly/graph_objs/scatter/hoverlabel/_font.py
index a09cf0bbae8..e18fc259254 100644
--- a/plotly/graph_objs/scatter/hoverlabel/_font.py
+++ b/plotly/graph_objs/scatter/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter.hoverlabel"
-    _path_str = "scatter.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scatter.hoverlabel'
+    _path_str = 'scatter.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scatter.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/legendgrouptitle/__init__.py b/plotly/graph_objs/scatter/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scatter/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/scatter/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scatter/legendgrouptitle/_font.py b/plotly/graph_objs/scatter/legendgrouptitle/_font.py
index 36cc91c2bd3..1127cb5bfe4 100644
--- a/plotly/graph_objs/scatter/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/scatter/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter.legendgrouptitle"
-    _path_str = "scatter.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatter.legendgrouptitle'
+    _path_str = 'scatter.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatter.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/marker/__init__.py b/plotly/graph_objs/scatter/marker/__init__.py
index f9d889ecb9b..b07f6ce198a 100644
--- a/plotly/graph_objs/scatter/marker/__init__.py
+++ b/plotly/graph_objs/scatter/marker/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._gradient import Gradient
+    from ._line import Line
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._gradient.Gradient', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar"],
-    ["._colorbar.ColorBar", "._gradient.Gradient", "._line.Line"],
-)
diff --git a/plotly/graph_objs/scatter/marker/_colorbar.py b/plotly/graph_objs/scatter/marker/_colorbar.py
index 1ed6d635a79..cab2b212cbd 100644
--- a/plotly/graph_objs/scatter/marker/_colorbar.py
+++ b/plotly/graph_objs/scatter/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter.marker"
-    _path_str = "scatter.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'scatter.marker'
+    _path_str = 'scatter.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.scatter.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.scatter.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.scatter.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.scatter.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.scatter.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/marker/_gradient.py b/plotly/graph_objs/scatter/marker/_gradient.py
index 9e6b568a44e..1958570c4ee 100644
--- a/plotly/graph_objs/scatter/marker/_gradient.py
+++ b/plotly/graph_objs/scatter/marker/_gradient.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Gradient(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter.marker"
-    _path_str = "scatter.marker.gradient"
+    _parent_path_str = 'scatter.marker'
+    _path_str = 'scatter.marker.gradient'
     _valid_props = {"color", "colorsrc", "type", "typesrc"}
 
     @property
@@ -29,11 +33,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -47,11 +51,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def type(self):
@@ -67,11 +71,11 @@ def type(self):
         -------
         Any|numpy.ndarray
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def typesrc(self):
@@ -85,11 +89,11 @@ def typesrc(self):
         -------
         str
         """
-        return self["typesrc"]
+        return self['typesrc']
 
     @typesrc.setter
     def typesrc(self, val):
-        self["typesrc"] = val
+        self['typesrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -107,10 +111,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `type`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, type=None, typesrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            type=None,
+            typesrc=None,
+            **kwargs
+        ):
         """
         Construct a new Gradient object
 
@@ -137,9 +145,9 @@ def __init__(
         -------
         Gradient
         """
-        super().__init__("gradient")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('gradient')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -149,19 +157,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.marker.Gradient
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.marker.Gradient`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter.marker.Gradient`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("type", arg, type)
-        self._set_property("typesrc", arg, typesrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('type', arg, type)
+        self._set_property('typesrc', arg, typesrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/marker/_line.py b/plotly/graph_objs/scatter/marker/_line.py
index c6e81451c9a..a1030abe021 100644
--- a/plotly/graph_objs/scatter/marker/_line.py
+++ b/plotly/graph_objs/scatter/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter.marker"
-    _path_str = "scatter.marker.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorscale",
-        "colorsrc",
-        "reversescale",
-        "width",
-        "widthsrc",
-    }
+    _parent_path_str = 'scatter.marker'
+    _path_str = 'scatter.marker.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorscale", "colorsrc", "reversescale", "width", "widthsrc"}
 
     @property
     def autocolorscale(self):
@@ -42,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -65,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -86,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -109,11 +100,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -130,11 +121,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -158,11 +149,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -183,11 +174,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorscale(self):
@@ -236,11 +227,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -254,11 +245,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def reversescale(self):
@@ -276,11 +267,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def width(self):
@@ -295,11 +286,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -313,11 +304,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -401,24 +392,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorscale=None,
-        colorsrc=None,
-        reversescale=None,
-        width=None,
-        widthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorscale=None,
+            colorsrc=None,
+            reversescale=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -511,9 +500,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -523,27 +512,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.marker.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+an instance of :class:`plotly.graph_objs.scatter.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/marker/colorbar/__init__.py b/plotly/graph_objs/scatter/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/scatter/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/scatter/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/scatter/marker/colorbar/_tickfont.py b/plotly/graph_objs/scatter/marker/colorbar/_tickfont.py
index b47874ec19b..4a7e4862fa3 100644
--- a/plotly/graph_objs/scatter/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/scatter/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter.marker.colorbar"
-    _path_str = "scatter.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatter.marker.colorbar'
+    _path_str = 'scatter.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatter.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/scatter/marker/colorbar/_tickformatstop.py
index ea14fcf850c..63428355b9b 100644
--- a/plotly/graph_objs/scatter/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/scatter/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter.marker.colorbar"
-    _path_str = "scatter.marker.colorbar.tickformatstop"
+    _parent_path_str = 'scatter.marker.colorbar'
+    _path_str = 'scatter.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/marker/colorbar/_title.py b/plotly/graph_objs/scatter/marker/colorbar/_title.py
index e555b89ec1e..e2a476e4303 100644
--- a/plotly/graph_objs/scatter/marker/colorbar/_title.py
+++ b/plotly/graph_objs/scatter/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter.marker.colorbar"
-    _path_str = "scatter.marker.colorbar.title"
+    _parent_path_str = 'scatter.marker.colorbar'
+    _path_str = 'scatter.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scatter.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/marker/colorbar/title/__init__.py b/plotly/graph_objs/scatter/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scatter/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/scatter/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scatter/marker/colorbar/title/_font.py b/plotly/graph_objs/scatter/marker/colorbar/title/_font.py
index cd5aa3a22cf..9c6293dd2e9 100644
--- a/plotly/graph_objs/scatter/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/scatter/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter.marker.colorbar.title"
-    _path_str = "scatter.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatter.marker.colorbar.title'
+    _path_str = 'scatter.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatter.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/selected/__init__.py b/plotly/graph_objs/scatter/selected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/scatter/selected/__init__.py
+++ b/plotly/graph_objs/scatter/selected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/scatter/selected/_marker.py b/plotly/graph_objs/scatter/selected/_marker.py
index 93ebfe86e8a..822f856f53f 100644
--- a/plotly/graph_objs/scatter/selected/_marker.py
+++ b/plotly/graph_objs/scatter/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter.selected"
-    _path_str = "scatter.selected.marker"
+    _parent_path_str = 'scatter.selected'
+    _path_str = 'scatter.selected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         size
             Sets the marker size of selected points.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/selected/_textfont.py b/plotly/graph_objs/scatter/selected/_textfont.py
index 65f365c9dbf..a807ed80e7a 100644
--- a/plotly/graph_objs/scatter/selected/_textfont.py
+++ b/plotly/graph_objs/scatter/selected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter.selected"
-    _path_str = "scatter.selected.textfont"
+    _parent_path_str = 'scatter.selected'
+    _path_str = 'scatter.selected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -39,8 +43,11 @@ def _prop_descriptions(self):
         color
             Sets the text font color of selected points.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -57,9 +64,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -69,16 +76,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.selected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.selected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter.selected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/unselected/__init__.py b/plotly/graph_objs/scatter/unselected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/scatter/unselected/__init__.py
+++ b/plotly/graph_objs/scatter/unselected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/scatter/unselected/_marker.py b/plotly/graph_objs/scatter/unselected/_marker.py
index bd5d81f45cb..e01d1eede1b 100644
--- a/plotly/graph_objs/scatter/unselected/_marker.py
+++ b/plotly/graph_objs/scatter/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter.unselected"
-    _path_str = "scatter.unselected.marker"
+    _parent_path_str = 'scatter.unselected'
+    _path_str = 'scatter.unselected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -47,11 +51,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -66,11 +70,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
             Sets the marker size of unselected points, applied only
             when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter/unselected/_textfont.py b/plotly/graph_objs/scatter/unselected/_textfont.py
index f63b1945814..aa701a713e6 100644
--- a/plotly/graph_objs/scatter/unselected/_textfont.py
+++ b/plotly/graph_objs/scatter/unselected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter.unselected"
-    _path_str = "scatter.unselected.textfont"
+    _parent_path_str = 'scatter.unselected'
+    _path_str = 'scatter.unselected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -41,8 +45,11 @@ def _prop_descriptions(self):
             Sets the text font color of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -60,9 +67,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -72,16 +79,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter.unselected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter.unselected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter.unselected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/__init__.py b/plotly/graph_objs/scatter3d/__init__.py
index 4782838bc44..457d8c738f3 100644
--- a/plotly/graph_objs/scatter3d/__init__.py
+++ b/plotly/graph_objs/scatter3d/__init__.py
@@ -1,19 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._error_x import ErrorX
+    from ._error_y import ErrorY
+    from ._error_z import ErrorZ
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._marker import Marker
+    from ._projection import Projection
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import line
+    from . import marker
+    from . import projection
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.line', '.marker', '.projection'],
+        ['._error_x.ErrorX', '._error_y.ErrorY', '._error_z.ErrorZ', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._marker.Marker', '._projection.Projection', '._stream.Stream', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".line", ".marker", ".projection"],
-    [
-        "._error_x.ErrorX",
-        "._error_y.ErrorY",
-        "._error_z.ErrorZ",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._marker.Marker",
-        "._projection.Projection",
-        "._stream.Stream",
-        "._textfont.Textfont",
-    ],
-)
diff --git a/plotly/graph_objs/scatter3d/_error_x.py b/plotly/graph_objs/scatter3d/_error_x.py
index d04f8e4c6eb..5cbd8ffe975 100644
--- a/plotly/graph_objs/scatter3d/_error_x.py
+++ b/plotly/graph_objs/scatter3d/_error_x.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,25 +11,9 @@
 
 class ErrorX(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d"
-    _path_str = "scatter3d.error_x"
-    _valid_props = {
-        "array",
-        "arrayminus",
-        "arrayminussrc",
-        "arraysrc",
-        "color",
-        "copy_zstyle",
-        "symmetric",
-        "thickness",
-        "traceref",
-        "tracerefminus",
-        "type",
-        "value",
-        "valueminus",
-        "visible",
-        "width",
-    }
+    _parent_path_str = 'scatter3d'
+    _path_str = 'scatter3d.error_x'
+    _valid_props = {"array", "arrayminus", "arrayminussrc", "arraysrc", "color", "copy_zstyle", "symmetric", "thickness", "traceref", "tracerefminus", "type", "value", "valueminus", "visible", "width"}
 
     @property
     def array(self):
@@ -40,11 +28,11 @@ def array(self):
         -------
         numpy.ndarray
         """
-        return self["array"]
+        return self['array']
 
     @array.setter
     def array(self, val):
-        self["array"] = val
+        self['array'] = val
 
     @property
     def arrayminus(self):
@@ -60,11 +48,11 @@ def arrayminus(self):
         -------
         numpy.ndarray
         """
-        return self["arrayminus"]
+        return self['arrayminus']
 
     @arrayminus.setter
     def arrayminus(self, val):
-        self["arrayminus"] = val
+        self['arrayminus'] = val
 
     @property
     def arrayminussrc(self):
@@ -79,11 +67,11 @@ def arrayminussrc(self):
         -------
         str
         """
-        return self["arrayminussrc"]
+        return self['arrayminussrc']
 
     @arrayminussrc.setter
     def arrayminussrc(self, val):
-        self["arrayminussrc"] = val
+        self['arrayminussrc'] = val
 
     @property
     def arraysrc(self):
@@ -97,11 +85,11 @@ def arraysrc(self):
         -------
         str
         """
-        return self["arraysrc"]
+        return self['arraysrc']
 
     @arraysrc.setter
     def arraysrc(self, val):
-        self["arraysrc"] = val
+        self['arraysrc'] = val
 
     @property
     def color(self):
@@ -119,11 +107,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def copy_zstyle(self):
@@ -135,11 +123,11 @@ def copy_zstyle(self):
         -------
         bool
         """
-        return self["copy_zstyle"]
+        return self['copy_zstyle']
 
     @copy_zstyle.setter
     def copy_zstyle(self, val):
-        self["copy_zstyle"] = val
+        self['copy_zstyle'] = val
 
     @property
     def symmetric(self):
@@ -155,11 +143,11 @@ def symmetric(self):
         -------
         bool
         """
-        return self["symmetric"]
+        return self['symmetric']
 
     @symmetric.setter
     def symmetric(self, val):
-        self["symmetric"] = val
+        self['symmetric'] = val
 
     @property
     def thickness(self):
@@ -173,11 +161,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def traceref(self):
@@ -190,11 +178,11 @@ def traceref(self):
         -------
         int
         """
-        return self["traceref"]
+        return self['traceref']
 
     @traceref.setter
     def traceref(self, val):
-        self["traceref"] = val
+        self['traceref'] = val
 
     @property
     def tracerefminus(self):
@@ -207,11 +195,11 @@ def tracerefminus(self):
         -------
         int
         """
-        return self["tracerefminus"]
+        return self['tracerefminus']
 
     @tracerefminus.setter
     def tracerefminus(self, val):
-        self["tracerefminus"] = val
+        self['tracerefminus'] = val
 
     @property
     def type(self):
@@ -232,11 +220,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def value(self):
@@ -252,11 +240,11 @@ def value(self):
         -------
         int|float
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def valueminus(self):
@@ -273,11 +261,11 @@ def valueminus(self):
         -------
         int|float
         """
-        return self["valueminus"]
+        return self['valueminus']
 
     @valueminus.setter
     def valueminus(self, val):
-        self["valueminus"] = val
+        self['valueminus'] = val
 
     @property
     def visible(self):
@@ -291,11 +279,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -310,11 +298,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -375,27 +363,25 @@ def _prop_descriptions(self):
             Sets the width (in px) of the cross-bar at both ends of
             the error bars.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        array=None,
-        arrayminus=None,
-        arrayminussrc=None,
-        arraysrc=None,
-        color=None,
-        copy_zstyle=None,
-        symmetric=None,
-        thickness=None,
-        traceref=None,
-        tracerefminus=None,
-        type=None,
-        value=None,
-        valueminus=None,
-        visible=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            array=None,
+            arrayminus=None,
+            arrayminussrc=None,
+            arraysrc=None,
+            color=None,
+            copy_zstyle=None,
+            symmetric=None,
+            thickness=None,
+            traceref=None,
+            tracerefminus=None,
+            type=None,
+            value=None,
+            valueminus=None,
+            visible=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new ErrorX object
 
@@ -465,9 +451,9 @@ def __init__(
         -------
         ErrorX
         """
-        super().__init__("error_x")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('error_x')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -477,30 +463,30 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.ErrorX
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.ErrorX`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("array", arg, array)
-        self._set_property("arrayminus", arg, arrayminus)
-        self._set_property("arrayminussrc", arg, arrayminussrc)
-        self._set_property("arraysrc", arg, arraysrc)
-        self._set_property("color", arg, color)
-        self._set_property("copy_zstyle", arg, copy_zstyle)
-        self._set_property("symmetric", arg, symmetric)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("traceref", arg, traceref)
-        self._set_property("tracerefminus", arg, tracerefminus)
-        self._set_property("type", arg, type)
-        self._set_property("value", arg, value)
-        self._set_property("valueminus", arg, valueminus)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.scatter3d.ErrorX`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('array', arg, array)
+        self._set_property('arrayminus', arg, arrayminus)
+        self._set_property('arrayminussrc', arg, arrayminussrc)
+        self._set_property('arraysrc', arg, arraysrc)
+        self._set_property('color', arg, color)
+        self._set_property('copy_zstyle', arg, copy_zstyle)
+        self._set_property('symmetric', arg, symmetric)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('traceref', arg, traceref)
+        self._set_property('tracerefminus', arg, tracerefminus)
+        self._set_property('type', arg, type)
+        self._set_property('value', arg, value)
+        self._set_property('valueminus', arg, valueminus)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/_error_y.py b/plotly/graph_objs/scatter3d/_error_y.py
index 84a00a99b73..bdcce873a73 100644
--- a/plotly/graph_objs/scatter3d/_error_y.py
+++ b/plotly/graph_objs/scatter3d/_error_y.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,25 +11,9 @@
 
 class ErrorY(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d"
-    _path_str = "scatter3d.error_y"
-    _valid_props = {
-        "array",
-        "arrayminus",
-        "arrayminussrc",
-        "arraysrc",
-        "color",
-        "copy_zstyle",
-        "symmetric",
-        "thickness",
-        "traceref",
-        "tracerefminus",
-        "type",
-        "value",
-        "valueminus",
-        "visible",
-        "width",
-    }
+    _parent_path_str = 'scatter3d'
+    _path_str = 'scatter3d.error_y'
+    _valid_props = {"array", "arrayminus", "arrayminussrc", "arraysrc", "color", "copy_zstyle", "symmetric", "thickness", "traceref", "tracerefminus", "type", "value", "valueminus", "visible", "width"}
 
     @property
     def array(self):
@@ -40,11 +28,11 @@ def array(self):
         -------
         numpy.ndarray
         """
-        return self["array"]
+        return self['array']
 
     @array.setter
     def array(self, val):
-        self["array"] = val
+        self['array'] = val
 
     @property
     def arrayminus(self):
@@ -60,11 +48,11 @@ def arrayminus(self):
         -------
         numpy.ndarray
         """
-        return self["arrayminus"]
+        return self['arrayminus']
 
     @arrayminus.setter
     def arrayminus(self, val):
-        self["arrayminus"] = val
+        self['arrayminus'] = val
 
     @property
     def arrayminussrc(self):
@@ -79,11 +67,11 @@ def arrayminussrc(self):
         -------
         str
         """
-        return self["arrayminussrc"]
+        return self['arrayminussrc']
 
     @arrayminussrc.setter
     def arrayminussrc(self, val):
-        self["arrayminussrc"] = val
+        self['arrayminussrc'] = val
 
     @property
     def arraysrc(self):
@@ -97,11 +85,11 @@ def arraysrc(self):
         -------
         str
         """
-        return self["arraysrc"]
+        return self['arraysrc']
 
     @arraysrc.setter
     def arraysrc(self, val):
-        self["arraysrc"] = val
+        self['arraysrc'] = val
 
     @property
     def color(self):
@@ -119,11 +107,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def copy_zstyle(self):
@@ -135,11 +123,11 @@ def copy_zstyle(self):
         -------
         bool
         """
-        return self["copy_zstyle"]
+        return self['copy_zstyle']
 
     @copy_zstyle.setter
     def copy_zstyle(self, val):
-        self["copy_zstyle"] = val
+        self['copy_zstyle'] = val
 
     @property
     def symmetric(self):
@@ -155,11 +143,11 @@ def symmetric(self):
         -------
         bool
         """
-        return self["symmetric"]
+        return self['symmetric']
 
     @symmetric.setter
     def symmetric(self, val):
-        self["symmetric"] = val
+        self['symmetric'] = val
 
     @property
     def thickness(self):
@@ -173,11 +161,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def traceref(self):
@@ -190,11 +178,11 @@ def traceref(self):
         -------
         int
         """
-        return self["traceref"]
+        return self['traceref']
 
     @traceref.setter
     def traceref(self, val):
-        self["traceref"] = val
+        self['traceref'] = val
 
     @property
     def tracerefminus(self):
@@ -207,11 +195,11 @@ def tracerefminus(self):
         -------
         int
         """
-        return self["tracerefminus"]
+        return self['tracerefminus']
 
     @tracerefminus.setter
     def tracerefminus(self, val):
-        self["tracerefminus"] = val
+        self['tracerefminus'] = val
 
     @property
     def type(self):
@@ -232,11 +220,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def value(self):
@@ -252,11 +240,11 @@ def value(self):
         -------
         int|float
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def valueminus(self):
@@ -273,11 +261,11 @@ def valueminus(self):
         -------
         int|float
         """
-        return self["valueminus"]
+        return self['valueminus']
 
     @valueminus.setter
     def valueminus(self, val):
-        self["valueminus"] = val
+        self['valueminus'] = val
 
     @property
     def visible(self):
@@ -291,11 +279,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -310,11 +298,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -375,27 +363,25 @@ def _prop_descriptions(self):
             Sets the width (in px) of the cross-bar at both ends of
             the error bars.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        array=None,
-        arrayminus=None,
-        arrayminussrc=None,
-        arraysrc=None,
-        color=None,
-        copy_zstyle=None,
-        symmetric=None,
-        thickness=None,
-        traceref=None,
-        tracerefminus=None,
-        type=None,
-        value=None,
-        valueminus=None,
-        visible=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            array=None,
+            arrayminus=None,
+            arrayminussrc=None,
+            arraysrc=None,
+            color=None,
+            copy_zstyle=None,
+            symmetric=None,
+            thickness=None,
+            traceref=None,
+            tracerefminus=None,
+            type=None,
+            value=None,
+            valueminus=None,
+            visible=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new ErrorY object
 
@@ -465,9 +451,9 @@ def __init__(
         -------
         ErrorY
         """
-        super().__init__("error_y")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('error_y')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -477,30 +463,30 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.ErrorY
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.ErrorY`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("array", arg, array)
-        self._set_property("arrayminus", arg, arrayminus)
-        self._set_property("arrayminussrc", arg, arrayminussrc)
-        self._set_property("arraysrc", arg, arraysrc)
-        self._set_property("color", arg, color)
-        self._set_property("copy_zstyle", arg, copy_zstyle)
-        self._set_property("symmetric", arg, symmetric)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("traceref", arg, traceref)
-        self._set_property("tracerefminus", arg, tracerefminus)
-        self._set_property("type", arg, type)
-        self._set_property("value", arg, value)
-        self._set_property("valueminus", arg, valueminus)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.scatter3d.ErrorY`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('array', arg, array)
+        self._set_property('arrayminus', arg, arrayminus)
+        self._set_property('arrayminussrc', arg, arrayminussrc)
+        self._set_property('arraysrc', arg, arraysrc)
+        self._set_property('color', arg, color)
+        self._set_property('copy_zstyle', arg, copy_zstyle)
+        self._set_property('symmetric', arg, symmetric)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('traceref', arg, traceref)
+        self._set_property('tracerefminus', arg, tracerefminus)
+        self._set_property('type', arg, type)
+        self._set_property('value', arg, value)
+        self._set_property('valueminus', arg, valueminus)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/_error_z.py b/plotly/graph_objs/scatter3d/_error_z.py
index ff7d68b096b..a920e193998 100644
--- a/plotly/graph_objs/scatter3d/_error_z.py
+++ b/plotly/graph_objs/scatter3d/_error_z.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,24 +11,9 @@
 
 class ErrorZ(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d"
-    _path_str = "scatter3d.error_z"
-    _valid_props = {
-        "array",
-        "arrayminus",
-        "arrayminussrc",
-        "arraysrc",
-        "color",
-        "symmetric",
-        "thickness",
-        "traceref",
-        "tracerefminus",
-        "type",
-        "value",
-        "valueminus",
-        "visible",
-        "width",
-    }
+    _parent_path_str = 'scatter3d'
+    _path_str = 'scatter3d.error_z'
+    _valid_props = {"array", "arrayminus", "arrayminussrc", "arraysrc", "color", "symmetric", "thickness", "traceref", "tracerefminus", "type", "value", "valueminus", "visible", "width"}
 
     @property
     def array(self):
@@ -39,11 +28,11 @@ def array(self):
         -------
         numpy.ndarray
         """
-        return self["array"]
+        return self['array']
 
     @array.setter
     def array(self, val):
-        self["array"] = val
+        self['array'] = val
 
     @property
     def arrayminus(self):
@@ -59,11 +48,11 @@ def arrayminus(self):
         -------
         numpy.ndarray
         """
-        return self["arrayminus"]
+        return self['arrayminus']
 
     @arrayminus.setter
     def arrayminus(self, val):
-        self["arrayminus"] = val
+        self['arrayminus'] = val
 
     @property
     def arrayminussrc(self):
@@ -78,11 +67,11 @@ def arrayminussrc(self):
         -------
         str
         """
-        return self["arrayminussrc"]
+        return self['arrayminussrc']
 
     @arrayminussrc.setter
     def arrayminussrc(self, val):
-        self["arrayminussrc"] = val
+        self['arrayminussrc'] = val
 
     @property
     def arraysrc(self):
@@ -96,11 +85,11 @@ def arraysrc(self):
         -------
         str
         """
-        return self["arraysrc"]
+        return self['arraysrc']
 
     @arraysrc.setter
     def arraysrc(self, val):
-        self["arraysrc"] = val
+        self['arraysrc'] = val
 
     @property
     def color(self):
@@ -118,11 +107,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def symmetric(self):
@@ -138,11 +127,11 @@ def symmetric(self):
         -------
         bool
         """
-        return self["symmetric"]
+        return self['symmetric']
 
     @symmetric.setter
     def symmetric(self, val):
-        self["symmetric"] = val
+        self['symmetric'] = val
 
     @property
     def thickness(self):
@@ -156,11 +145,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def traceref(self):
@@ -173,11 +162,11 @@ def traceref(self):
         -------
         int
         """
-        return self["traceref"]
+        return self['traceref']
 
     @traceref.setter
     def traceref(self, val):
-        self["traceref"] = val
+        self['traceref'] = val
 
     @property
     def tracerefminus(self):
@@ -190,11 +179,11 @@ def tracerefminus(self):
         -------
         int
         """
-        return self["tracerefminus"]
+        return self['tracerefminus']
 
     @tracerefminus.setter
     def tracerefminus(self, val):
-        self["tracerefminus"] = val
+        self['tracerefminus'] = val
 
     @property
     def type(self):
@@ -215,11 +204,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def value(self):
@@ -235,11 +224,11 @@ def value(self):
         -------
         int|float
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def valueminus(self):
@@ -256,11 +245,11 @@ def valueminus(self):
         -------
         int|float
         """
-        return self["valueminus"]
+        return self['valueminus']
 
     @valueminus.setter
     def valueminus(self, val):
-        self["valueminus"] = val
+        self['valueminus'] = val
 
     @property
     def visible(self):
@@ -274,11 +263,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -293,11 +282,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -356,26 +345,24 @@ def _prop_descriptions(self):
             Sets the width (in px) of the cross-bar at both ends of
             the error bars.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        array=None,
-        arrayminus=None,
-        arrayminussrc=None,
-        arraysrc=None,
-        color=None,
-        symmetric=None,
-        thickness=None,
-        traceref=None,
-        tracerefminus=None,
-        type=None,
-        value=None,
-        valueminus=None,
-        visible=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            array=None,
+            arrayminus=None,
+            arrayminussrc=None,
+            arraysrc=None,
+            color=None,
+            symmetric=None,
+            thickness=None,
+            traceref=None,
+            tracerefminus=None,
+            type=None,
+            value=None,
+            valueminus=None,
+            visible=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new ErrorZ object
 
@@ -443,9 +430,9 @@ def __init__(
         -------
         ErrorZ
         """
-        super().__init__("error_z")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('error_z')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -455,29 +442,29 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.ErrorZ
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.ErrorZ`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("array", arg, array)
-        self._set_property("arrayminus", arg, arrayminus)
-        self._set_property("arrayminussrc", arg, arrayminussrc)
-        self._set_property("arraysrc", arg, arraysrc)
-        self._set_property("color", arg, color)
-        self._set_property("symmetric", arg, symmetric)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("traceref", arg, traceref)
-        self._set_property("tracerefminus", arg, tracerefminus)
-        self._set_property("type", arg, type)
-        self._set_property("value", arg, value)
-        self._set_property("valueminus", arg, valueminus)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.scatter3d.ErrorZ`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('array', arg, array)
+        self._set_property('arrayminus', arg, arrayminus)
+        self._set_property('arrayminussrc', arg, arrayminussrc)
+        self._set_property('arraysrc', arg, arraysrc)
+        self._set_property('color', arg, color)
+        self._set_property('symmetric', arg, symmetric)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('traceref', arg, traceref)
+        self._set_property('tracerefminus', arg, tracerefminus)
+        self._set_property('type', arg, type)
+        self._set_property('value', arg, value)
+        self._set_property('valueminus', arg, valueminus)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/_hoverlabel.py b/plotly/graph_objs/scatter3d/_hoverlabel.py
index 9fc1bf43513..a4386197f57 100644
--- a/plotly/graph_objs/scatter3d/_hoverlabel.py
+++ b/plotly/graph_objs/scatter3d/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d"
-    _path_str = "scatter3d.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'scatter3d'
+    _path_str = 'scatter3d.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.scatter3d.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.scatter3d.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/_legendgrouptitle.py b/plotly/graph_objs/scatter3d/_legendgrouptitle.py
index 882857b01a1..c16b1c1d430 100644
--- a/plotly/graph_objs/scatter3d/_legendgrouptitle.py
+++ b/plotly/graph_objs/scatter3d/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d"
-    _path_str = "scatter3d.legendgrouptitle"
+    _parent_path_str = 'scatter3d'
+    _path_str = 'scatter3d.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scatter3d.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter3d.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/_line.py b/plotly/graph_objs/scatter3d/_line.py
index b163c5384cd..b8cb0cbaa06 100644
--- a/plotly/graph_objs/scatter3d/_line.py
+++ b/plotly/graph_objs/scatter3d/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,24 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d"
-    _path_str = "scatter3d.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "dash",
-        "reversescale",
-        "showscale",
-        "width",
-    }
+    _parent_path_str = 'scatter3d'
+    _path_str = 'scatter3d.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "dash", "reversescale", "showscale", "width"}
 
     @property
     def autocolorscale(self):
@@ -44,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -66,11 +55,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -87,11 +76,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -109,11 +98,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -130,11 +119,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -158,11 +147,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -183,11 +172,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -202,11 +191,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.scatter3d.line.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -254,11 +243,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -272,11 +261,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def dash(self):
@@ -292,11 +281,11 @@ def dash(self):
         -------
         Any
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def reversescale(self):
@@ -313,11 +302,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -333,11 +322,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def width(self):
@@ -351,11 +340,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -441,26 +430,24 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        dash=None,
-        reversescale=None,
-        showscale=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            dash=None,
+            reversescale=None,
+            showscale=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -555,9 +542,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -567,29 +554,29 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("dash", arg, dash)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.scatter3d.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('dash', arg, dash)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/_marker.py b/plotly/graph_objs/scatter3d/_marker.py
index 74501873747..e4618d40070 100644
--- a/plotly/graph_objs/scatter3d/_marker.py
+++ b/plotly/graph_objs/scatter3d/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,31 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d"
-    _path_str = "scatter3d.marker"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "line",
-        "opacity",
-        "reversescale",
-        "showscale",
-        "size",
-        "sizemin",
-        "sizemode",
-        "sizeref",
-        "sizesrc",
-        "symbol",
-        "symbolsrc",
-    }
+    _parent_path_str = 'scatter3d'
+    _path_str = 'scatter3d.marker'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "line", "opacity", "reversescale", "showscale", "size", "sizemin", "sizemode", "sizeref", "sizesrc", "symbol", "symbolsrc"}
 
     @property
     def autocolorscale(self):
@@ -51,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -74,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -95,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -117,11 +99,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -138,11 +120,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -166,11 +148,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -191,11 +173,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -210,11 +192,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.scatter3d.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -262,11 +244,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -280,11 +262,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def line(self):
@@ -299,11 +281,11 @@ def line(self):
         -------
         plotly.graph_objs.scatter3d.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def opacity(self):
@@ -321,11 +303,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def reversescale(self):
@@ -342,11 +324,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -362,11 +344,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def size(self):
@@ -381,11 +363,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizemin(self):
@@ -401,11 +383,11 @@ def sizemin(self):
         -------
         int|float
         """
-        return self["sizemin"]
+        return self['sizemin']
 
     @sizemin.setter
     def sizemin(self, val):
-        self["sizemin"] = val
+        self['sizemin'] = val
 
     @property
     def sizemode(self):
@@ -422,11 +404,11 @@ def sizemode(self):
         -------
         Any
         """
-        return self["sizemode"]
+        return self['sizemode']
 
     @sizemode.setter
     def sizemode(self, val):
-        self["sizemode"] = val
+        self['sizemode'] = val
 
     @property
     def sizeref(self):
@@ -442,11 +424,11 @@ def sizeref(self):
         -------
         int|float
         """
-        return self["sizeref"]
+        return self['sizeref']
 
     @sizeref.setter
     def sizeref(self, val):
-        self["sizeref"] = val
+        self['sizeref'] = val
 
     @property
     def sizesrc(self):
@@ -460,11 +442,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def symbol(self):
@@ -481,11 +463,11 @@ def symbol(self):
         -------
         Any|numpy.ndarray
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def symbolsrc(self):
@@ -499,11 +481,11 @@ def symbolsrc(self):
         -------
         str
         """
-        return self["symbolsrc"]
+        return self['symbolsrc']
 
     @symbolsrc.setter
     def symbolsrc(self, val):
-        self["symbolsrc"] = val
+        self['symbolsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -617,33 +599,31 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `symbol`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        line=None,
-        opacity=None,
-        reversescale=None,
-        showscale=None,
-        size=None,
-        sizemin=None,
-        sizemode=None,
-        sizeref=None,
-        sizesrc=None,
-        symbol=None,
-        symbolsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            line=None,
+            opacity=None,
+            reversescale=None,
+            showscale=None,
+            size=None,
+            sizemin=None,
+            sizemode=None,
+            sizeref=None,
+            sizesrc=None,
+            symbol=None,
+            symbolsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -766,9 +746,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -778,36 +758,36 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("line", arg, line)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("size", arg, size)
-        self._set_property("sizemin", arg, sizemin)
-        self._set_property("sizemode", arg, sizemode)
-        self._set_property("sizeref", arg, sizeref)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("symbol", arg, symbol)
-        self._set_property("symbolsrc", arg, symbolsrc)
+an instance of :class:`plotly.graph_objs.scatter3d.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('line', arg, line)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('size', arg, size)
+        self._set_property('sizemin', arg, sizemin)
+        self._set_property('sizemode', arg, sizemode)
+        self._set_property('sizeref', arg, sizeref)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('symbol', arg, symbol)
+        self._set_property('symbolsrc', arg, symbolsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/_projection.py b/plotly/graph_objs/scatter3d/_projection.py
index f2f29667b01..fb2d161935d 100644
--- a/plotly/graph_objs/scatter3d/_projection.py
+++ b/plotly/graph_objs/scatter3d/_projection.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Projection(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d"
-    _path_str = "scatter3d.projection"
+    _parent_path_str = 'scatter3d'
+    _path_str = 'scatter3d.projection'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -24,11 +28,11 @@ def x(self):
         -------
         plotly.graph_objs.scatter3d.projection.X
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -43,11 +47,11 @@ def y(self):
         -------
         plotly.graph_objs.scatter3d.projection.Y
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -62,11 +66,11 @@ def z(self):
         -------
         plotly.graph_objs.scatter3d.projection.Z
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -81,8 +85,13 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scatter3d.projection.Z`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Projection object
 
@@ -106,9 +115,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Projection
         """
-        super().__init__("projection")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('projection')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -118,18 +127,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.Projection
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.Projection`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter3d.Projection`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/_stream.py b/plotly/graph_objs/scatter3d/_stream.py
index bb38f1ba940..fc135debcc3 100644
--- a/plotly/graph_objs/scatter3d/_stream.py
+++ b/plotly/graph_objs/scatter3d/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d"
-    _path_str = "scatter3d.stream"
+    _parent_path_str = 'scatter3d'
+    _path_str = 'scatter3d.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter3d.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/_textfont.py b/plotly/graph_objs/scatter3d/_textfont.py
index 650e577a152..194c14def85 100644
--- a/plotly/graph_objs/scatter3d/_textfont.py
+++ b/plotly/graph_objs/scatter3d/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d"
-    _path_str = "scatter3d.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scatter3d'
+    _path_str = 'scatter3d.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "size", "sizesrc", "style", "stylesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -39,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -57,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -80,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -98,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def size(self):
@@ -115,11 +106,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -133,11 +124,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -154,11 +145,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -172,11 +163,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def variant(self):
@@ -192,11 +183,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -210,11 +201,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -231,11 +222,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -249,11 +240,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -295,24 +286,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -365,9 +354,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -377,27 +366,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scatter3d.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/hoverlabel/__init__.py b/plotly/graph_objs/scatter3d/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scatter3d/hoverlabel/__init__.py
+++ b/plotly/graph_objs/scatter3d/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scatter3d/hoverlabel/_font.py b/plotly/graph_objs/scatter3d/hoverlabel/_font.py
index 7f051e2ff70..770122cb41a 100644
--- a/plotly/graph_objs/scatter3d/hoverlabel/_font.py
+++ b/plotly/graph_objs/scatter3d/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d.hoverlabel"
-    _path_str = "scatter3d.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scatter3d.hoverlabel'
+    _path_str = 'scatter3d.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scatter3d.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/legendgrouptitle/__init__.py b/plotly/graph_objs/scatter3d/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scatter3d/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/scatter3d/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scatter3d/legendgrouptitle/_font.py b/plotly/graph_objs/scatter3d/legendgrouptitle/_font.py
index d8392fbd46b..429ac82ecba 100644
--- a/plotly/graph_objs/scatter3d/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/scatter3d/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d.legendgrouptitle"
-    _path_str = "scatter3d.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatter3d.legendgrouptitle'
+    _path_str = 'scatter3d.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatter3d.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/line/__init__.py b/plotly/graph_objs/scatter3d/line/__init__.py
index 5e1805d8fa8..c35de683492 100644
--- a/plotly/graph_objs/scatter3d/line/__init__.py
+++ b/plotly/graph_objs/scatter3d/line/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".colorbar"], ["._colorbar.ColorBar"]
-)
diff --git a/plotly/graph_objs/scatter3d/line/_colorbar.py b/plotly/graph_objs/scatter3d/line/_colorbar.py
index eca42e81850..f3e53bb6c35 100644
--- a/plotly/graph_objs/scatter3d/line/_colorbar.py
+++ b/plotly/graph_objs/scatter3d/line/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d.line"
-    _path_str = "scatter3d.line.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'scatter3d.line'
+    _path_str = 'scatter3d.line.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.scatter3d.line.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.scatter3d.line.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.scatter3d.line.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.scatter3d.line.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.line.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.line.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.scatter3d.line.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/line/colorbar/__init__.py b/plotly/graph_objs/scatter3d/line/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/scatter3d/line/colorbar/__init__.py
+++ b/plotly/graph_objs/scatter3d/line/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/scatter3d/line/colorbar/_tickfont.py b/plotly/graph_objs/scatter3d/line/colorbar/_tickfont.py
index 4db15015620..6180388ee0d 100644
--- a/plotly/graph_objs/scatter3d/line/colorbar/_tickfont.py
+++ b/plotly/graph_objs/scatter3d/line/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d.line.colorbar"
-    _path_str = "scatter3d.line.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatter3d.line.colorbar'
+    _path_str = 'scatter3d.line.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.line.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.line.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatter3d.line.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/line/colorbar/_tickformatstop.py b/plotly/graph_objs/scatter3d/line/colorbar/_tickformatstop.py
index 862ba9713c0..e1bbdee91dc 100644
--- a/plotly/graph_objs/scatter3d/line/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/scatter3d/line/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d.line.colorbar"
-    _path_str = "scatter3d.line.colorbar.tickformatstop"
+    _parent_path_str = 'scatter3d.line.colorbar'
+    _path_str = 'scatter3d.line.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.line.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.line.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter3d.line.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/line/colorbar/_title.py b/plotly/graph_objs/scatter3d/line/colorbar/_title.py
index a656d805337..2155acc448f 100644
--- a/plotly/graph_objs/scatter3d/line/colorbar/_title.py
+++ b/plotly/graph_objs/scatter3d/line/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d.line.colorbar"
-    _path_str = "scatter3d.line.colorbar.title"
+    _parent_path_str = 'scatter3d.line.colorbar'
+    _path_str = 'scatter3d.line.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scatter3d.line.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.line.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.line.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter3d.line.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/line/colorbar/title/__init__.py b/plotly/graph_objs/scatter3d/line/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scatter3d/line/colorbar/title/__init__.py
+++ b/plotly/graph_objs/scatter3d/line/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scatter3d/line/colorbar/title/_font.py b/plotly/graph_objs/scatter3d/line/colorbar/title/_font.py
index 8d72116e7a7..27e98617ff3 100644
--- a/plotly/graph_objs/scatter3d/line/colorbar/title/_font.py
+++ b/plotly/graph_objs/scatter3d/line/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d.line.colorbar.title"
-    _path_str = "scatter3d.line.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatter3d.line.colorbar.title'
+    _path_str = 'scatter3d.line.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.line.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.line.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatter3d.line.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/marker/__init__.py b/plotly/graph_objs/scatter3d/marker/__init__.py
index ff536ec8b25..60bb7edb6d5 100644
--- a/plotly/graph_objs/scatter3d/marker/__init__.py
+++ b/plotly/graph_objs/scatter3d/marker/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._line import Line
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".colorbar"], ["._colorbar.ColorBar", "._line.Line"]
-)
diff --git a/plotly/graph_objs/scatter3d/marker/_colorbar.py b/plotly/graph_objs/scatter3d/marker/_colorbar.py
index f2b5895eb71..825ced82391 100644
--- a/plotly/graph_objs/scatter3d/marker/_colorbar.py
+++ b/plotly/graph_objs/scatter3d/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d.marker"
-    _path_str = "scatter3d.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'scatter3d.marker'
+    _path_str = 'scatter3d.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.scatter3d.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.scatter3d.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.scatter3d.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.scatter3d.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.scatter3d.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/marker/_line.py b/plotly/graph_objs/scatter3d/marker/_line.py
index a257714e5c8..1b22bb9c135 100644
--- a/plotly/graph_objs/scatter3d/marker/_line.py
+++ b/plotly/graph_objs/scatter3d/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,21 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d.marker"
-    _path_str = "scatter3d.marker.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorscale",
-        "colorsrc",
-        "reversescale",
-        "width",
-    }
+    _parent_path_str = 'scatter3d.marker'
+    _path_str = 'scatter3d.marker.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorscale", "colorsrc", "reversescale", "width"}
 
     @property
     def autocolorscale(self):
@@ -41,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -64,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -85,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -108,11 +100,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -129,11 +121,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -157,11 +149,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -182,11 +174,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorscale(self):
@@ -235,11 +227,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -253,11 +245,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def reversescale(self):
@@ -275,11 +267,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def width(self):
@@ -293,11 +285,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -378,23 +370,21 @@ def _prop_descriptions(self):
             Sets the width (in px) of the lines bounding the marker
             points.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorscale=None,
-        colorsrc=None,
-        reversescale=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorscale=None,
+            colorsrc=None,
+            reversescale=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -484,9 +474,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -496,26 +486,26 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.marker.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.scatter3d.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/marker/colorbar/__init__.py b/plotly/graph_objs/scatter3d/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/scatter3d/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/scatter3d/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/scatter3d/marker/colorbar/_tickfont.py b/plotly/graph_objs/scatter3d/marker/colorbar/_tickfont.py
index 4d0f35fa6e4..acb2315e099 100644
--- a/plotly/graph_objs/scatter3d/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/scatter3d/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d.marker.colorbar"
-    _path_str = "scatter3d.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatter3d.marker.colorbar'
+    _path_str = 'scatter3d.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatter3d.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/scatter3d/marker/colorbar/_tickformatstop.py
index 48d9dada61d..2ec7ecebd99 100644
--- a/plotly/graph_objs/scatter3d/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/scatter3d/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d.marker.colorbar"
-    _path_str = "scatter3d.marker.colorbar.tickformatstop"
+    _parent_path_str = 'scatter3d.marker.colorbar'
+    _path_str = 'scatter3d.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter3d.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/marker/colorbar/_title.py b/plotly/graph_objs/scatter3d/marker/colorbar/_title.py
index 270fd8269b9..3b5a2f79c17 100644
--- a/plotly/graph_objs/scatter3d/marker/colorbar/_title.py
+++ b/plotly/graph_objs/scatter3d/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d.marker.colorbar"
-    _path_str = "scatter3d.marker.colorbar.title"
+    _parent_path_str = 'scatter3d.marker.colorbar'
+    _path_str = 'scatter3d.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scatter3d.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter3d.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/marker/colorbar/title/__init__.py b/plotly/graph_objs/scatter3d/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scatter3d/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/scatter3d/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scatter3d/marker/colorbar/title/_font.py b/plotly/graph_objs/scatter3d/marker/colorbar/title/_font.py
index b38a7cf725c..d439aa9edfb 100644
--- a/plotly/graph_objs/scatter3d/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/scatter3d/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d.marker.colorbar.title"
-    _path_str = "scatter3d.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatter3d.marker.colorbar.title'
+    _path_str = 'scatter3d.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatter3d.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/projection/__init__.py b/plotly/graph_objs/scatter3d/projection/__init__.py
index 649c038369f..bc24ca0a556 100644
--- a/plotly/graph_objs/scatter3d/projection/__init__.py
+++ b/plotly/graph_objs/scatter3d/projection/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._x import X
+    from ._y import Y
+    from ._z import Z
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._x.X', '._y.Y', '._z.Z']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._x.X", "._y.Y", "._z.Z"]
-)
diff --git a/plotly/graph_objs/scatter3d/projection/_x.py b/plotly/graph_objs/scatter3d/projection/_x.py
index f05bebbdb76..ed0000f09eb 100644
--- a/plotly/graph_objs/scatter3d/projection/_x.py
+++ b/plotly/graph_objs/scatter3d/projection/_x.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class X(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d.projection"
-    _path_str = "scatter3d.projection.x"
+    _parent_path_str = 'scatter3d.projection'
+    _path_str = 'scatter3d.projection.x'
     _valid_props = {"opacity", "scale", "show"}
 
     @property
@@ -23,11 +27,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def scale(self):
@@ -42,11 +46,11 @@ def scale(self):
         -------
         int|float
         """
-        return self["scale"]
+        return self['scale']
 
     @scale.setter
     def scale(self, val):
-        self["scale"] = val
+        self['scale'] = val
 
     @property
     def show(self):
@@ -60,11 +64,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -78,8 +82,13 @@ def _prop_descriptions(self):
             Sets whether or not projections are shown along the x
             axis.
         """
-
-    def __init__(self, arg=None, opacity=None, scale=None, show=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            opacity=None,
+            scale=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new X object
 
@@ -102,9 +111,9 @@ def __init__(self, arg=None, opacity=None, scale=None, show=None, **kwargs):
         -------
         X
         """
-        super().__init__("x")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('x')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -114,18 +123,18 @@ def __init__(self, arg=None, opacity=None, scale=None, show=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.projection.X
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.projection.X`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter3d.projection.X`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("opacity", arg, opacity)
-        self._set_property("scale", arg, scale)
-        self._set_property("show", arg, show)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('scale', arg, scale)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/projection/_y.py b/plotly/graph_objs/scatter3d/projection/_y.py
index ee11e53cee8..7ee1e0c3af2 100644
--- a/plotly/graph_objs/scatter3d/projection/_y.py
+++ b/plotly/graph_objs/scatter3d/projection/_y.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Y(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d.projection"
-    _path_str = "scatter3d.projection.y"
+    _parent_path_str = 'scatter3d.projection'
+    _path_str = 'scatter3d.projection.y'
     _valid_props = {"opacity", "scale", "show"}
 
     @property
@@ -23,11 +27,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def scale(self):
@@ -42,11 +46,11 @@ def scale(self):
         -------
         int|float
         """
-        return self["scale"]
+        return self['scale']
 
     @scale.setter
     def scale(self, val):
-        self["scale"] = val
+        self['scale'] = val
 
     @property
     def show(self):
@@ -60,11 +64,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -78,8 +82,13 @@ def _prop_descriptions(self):
             Sets whether or not projections are shown along the y
             axis.
         """
-
-    def __init__(self, arg=None, opacity=None, scale=None, show=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            opacity=None,
+            scale=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new Y object
 
@@ -102,9 +111,9 @@ def __init__(self, arg=None, opacity=None, scale=None, show=None, **kwargs):
         -------
         Y
         """
-        super().__init__("y")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('y')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -114,18 +123,18 @@ def __init__(self, arg=None, opacity=None, scale=None, show=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.projection.Y
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.projection.Y`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter3d.projection.Y`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("opacity", arg, opacity)
-        self._set_property("scale", arg, scale)
-        self._set_property("show", arg, show)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('scale', arg, scale)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatter3d/projection/_z.py b/plotly/graph_objs/scatter3d/projection/_z.py
index a3ce33cadb4..1d985974d7e 100644
--- a/plotly/graph_objs/scatter3d/projection/_z.py
+++ b/plotly/graph_objs/scatter3d/projection/_z.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Z(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatter3d.projection"
-    _path_str = "scatter3d.projection.z"
+    _parent_path_str = 'scatter3d.projection'
+    _path_str = 'scatter3d.projection.z'
     _valid_props = {"opacity", "scale", "show"}
 
     @property
@@ -23,11 +27,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def scale(self):
@@ -42,11 +46,11 @@ def scale(self):
         -------
         int|float
         """
-        return self["scale"]
+        return self['scale']
 
     @scale.setter
     def scale(self, val):
-        self["scale"] = val
+        self['scale'] = val
 
     @property
     def show(self):
@@ -60,11 +64,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -78,8 +82,13 @@ def _prop_descriptions(self):
             Sets whether or not projections are shown along the z
             axis.
         """
-
-    def __init__(self, arg=None, opacity=None, scale=None, show=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            opacity=None,
+            scale=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new Z object
 
@@ -102,9 +111,9 @@ def __init__(self, arg=None, opacity=None, scale=None, show=None, **kwargs):
         -------
         Z
         """
-        super().__init__("z")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('z')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -114,18 +123,18 @@ def __init__(self, arg=None, opacity=None, scale=None, show=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatter3d.projection.Z
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatter3d.projection.Z`"""
-            )
+an instance of :class:`plotly.graph_objs.scatter3d.projection.Z`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("opacity", arg, opacity)
-        self._set_property("scale", arg, scale)
-        self._set_property("show", arg, show)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('scale', arg, scale)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/__init__.py b/plotly/graph_objs/scattercarpet/__init__.py
index 7cc31d4831a..9103ab10864 100644
--- a/plotly/graph_objs/scattercarpet/__init__.py
+++ b/plotly/graph_objs/scattercarpet/__init__.py
@@ -1,17 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._marker import Marker
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._unselected import Unselected
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._marker.Marker', '._selected.Selected', '._stream.Stream', '._textfont.Textfont', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".selected", ".unselected"],
-    [
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._marker.Marker",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/scattercarpet/_hoverlabel.py b/plotly/graph_objs/scattercarpet/_hoverlabel.py
index 4c02dd2acf2..d00b96f80c7 100644
--- a/plotly/graph_objs/scattercarpet/_hoverlabel.py
+++ b/plotly/graph_objs/scattercarpet/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet"
-    _path_str = "scattercarpet.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'scattercarpet'
+    _path_str = 'scattercarpet.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.scattercarpet.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.scattercarpet.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/_legendgrouptitle.py b/plotly/graph_objs/scattercarpet/_legendgrouptitle.py
index 48edf472b7c..de6396a6955 100644
--- a/plotly/graph_objs/scattercarpet/_legendgrouptitle.py
+++ b/plotly/graph_objs/scattercarpet/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet"
-    _path_str = "scattercarpet.legendgrouptitle"
+    _parent_path_str = 'scattercarpet'
+    _path_str = 'scattercarpet.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scattercarpet.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.scattercarpet.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/_line.py b/plotly/graph_objs/scattercarpet/_line.py
index 336fe8e5444..c0c10bfc7f3 100644
--- a/plotly/graph_objs/scattercarpet/_line.py
+++ b/plotly/graph_objs/scattercarpet/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,17 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet"
-    _path_str = "scattercarpet.line"
-    _valid_props = {
-        "backoff",
-        "backoffsrc",
-        "color",
-        "dash",
-        "shape",
-        "smoothing",
-        "width",
-    }
+    _parent_path_str = 'scattercarpet'
+    _path_str = 'scattercarpet.line'
+    _valid_props = {"backoff", "backoffsrc", "color", "dash", "shape", "smoothing", "width"}
 
     @property
     def backoff(self):
@@ -35,11 +31,11 @@ def backoff(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["backoff"]
+        return self['backoff']
 
     @backoff.setter
     def backoff(self, val):
-        self["backoff"] = val
+        self['backoff'] = val
 
     @property
     def backoffsrc(self):
@@ -53,11 +49,11 @@ def backoffsrc(self):
         -------
         str
         """
-        return self["backoffsrc"]
+        return self['backoffsrc']
 
     @backoffsrc.setter
     def backoffsrc(self, val):
-        self["backoffsrc"] = val
+        self['backoffsrc'] = val
 
     @property
     def color(self):
@@ -75,11 +71,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -99,11 +95,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def shape(self):
@@ -120,11 +116,11 @@ def shape(self):
         -------
         Any
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def smoothing(self):
@@ -140,11 +136,11 @@ def smoothing(self):
         -------
         int|float
         """
-        return self["smoothing"]
+        return self['smoothing']
 
     @smoothing.setter
     def smoothing(self, val):
-        self["smoothing"] = val
+        self['smoothing'] = val
 
     @property
     def width(self):
@@ -158,11 +154,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -194,19 +190,17 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        backoff=None,
-        backoffsrc=None,
-        color=None,
-        dash=None,
-        shape=None,
-        smoothing=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            backoff=None,
+            backoffsrc=None,
+            color=None,
+            dash=None,
+            shape=None,
+            smoothing=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -247,9 +241,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -259,22 +253,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("backoff", arg, backoff)
-        self._set_property("backoffsrc", arg, backoffsrc)
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("shape", arg, shape)
-        self._set_property("smoothing", arg, smoothing)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.scattercarpet.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('backoff', arg, backoff)
+        self._set_property('backoffsrc', arg, backoffsrc)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('shape', arg, shape)
+        self._set_property('smoothing', arg, smoothing)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/_marker.py b/plotly/graph_objs/scattercarpet/_marker.py
index 32b8d44a824..bcba003c4ed 100644
--- a/plotly/graph_objs/scattercarpet/_marker.py
+++ b/plotly/graph_objs/scattercarpet/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,39 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet"
-    _path_str = "scattercarpet.marker"
-    _valid_props = {
-        "angle",
-        "angleref",
-        "anglesrc",
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "gradient",
-        "line",
-        "maxdisplayed",
-        "opacity",
-        "opacitysrc",
-        "reversescale",
-        "showscale",
-        "size",
-        "sizemin",
-        "sizemode",
-        "sizeref",
-        "sizesrc",
-        "standoff",
-        "standoffsrc",
-        "symbol",
-        "symbolsrc",
-    }
+    _parent_path_str = 'scattercarpet'
+    _path_str = 'scattercarpet.marker'
+    _valid_props = {"angle", "angleref", "anglesrc", "autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "gradient", "line", "maxdisplayed", "opacity", "opacitysrc", "reversescale", "showscale", "size", "sizemin", "sizemode", "sizeref", "sizesrc", "standoff", "standoffsrc", "symbol", "symbolsrc"}
 
     @property
     def angle(self):
@@ -55,11 +29,11 @@ def angle(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["angle"]
+        return self['angle']
 
     @angle.setter
     def angle(self, val):
-        self["angle"] = val
+        self['angle'] = val
 
     @property
     def angleref(self):
@@ -76,11 +50,11 @@ def angleref(self):
         -------
         Any
         """
-        return self["angleref"]
+        return self['angleref']
 
     @angleref.setter
     def angleref(self, val):
-        self["angleref"] = val
+        self['angleref'] = val
 
     @property
     def anglesrc(self):
@@ -94,11 +68,11 @@ def anglesrc(self):
         -------
         str
         """
-        return self["anglesrc"]
+        return self['anglesrc']
 
     @anglesrc.setter
     def anglesrc(self, val):
-        self["anglesrc"] = val
+        self['anglesrc'] = val
 
     @property
     def autocolorscale(self):
@@ -118,11 +92,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -141,11 +115,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -162,11 +136,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -184,11 +158,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -205,11 +179,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -233,11 +207,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -258,11 +232,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -277,11 +251,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.scattercarpet.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -329,11 +303,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -347,11 +321,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def gradient(self):
@@ -366,11 +340,11 @@ def gradient(self):
         -------
         plotly.graph_objs.scattercarpet.marker.Gradient
         """
-        return self["gradient"]
+        return self['gradient']
 
     @gradient.setter
     def gradient(self, val):
-        self["gradient"] = val
+        self['gradient'] = val
 
     @property
     def line(self):
@@ -385,11 +359,11 @@ def line(self):
         -------
         plotly.graph_objs.scattercarpet.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def maxdisplayed(self):
@@ -404,11 +378,11 @@ def maxdisplayed(self):
         -------
         int|float
         """
-        return self["maxdisplayed"]
+        return self['maxdisplayed']
 
     @maxdisplayed.setter
     def maxdisplayed(self, val):
-        self["maxdisplayed"] = val
+        self['maxdisplayed'] = val
 
     @property
     def opacity(self):
@@ -423,11 +397,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -441,11 +415,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def reversescale(self):
@@ -462,11 +436,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -482,11 +456,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def size(self):
@@ -501,11 +475,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizemin(self):
@@ -521,11 +495,11 @@ def sizemin(self):
         -------
         int|float
         """
-        return self["sizemin"]
+        return self['sizemin']
 
     @sizemin.setter
     def sizemin(self, val):
-        self["sizemin"] = val
+        self['sizemin'] = val
 
     @property
     def sizemode(self):
@@ -542,11 +516,11 @@ def sizemode(self):
         -------
         Any
         """
-        return self["sizemode"]
+        return self['sizemode']
 
     @sizemode.setter
     def sizemode(self, val):
-        self["sizemode"] = val
+        self['sizemode'] = val
 
     @property
     def sizeref(self):
@@ -562,11 +536,11 @@ def sizeref(self):
         -------
         int|float
         """
-        return self["sizeref"]
+        return self['sizeref']
 
     @sizeref.setter
     def sizeref(self, val):
-        self["sizeref"] = val
+        self['sizeref'] = val
 
     @property
     def sizesrc(self):
@@ -580,11 +554,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def standoff(self):
@@ -602,11 +576,11 @@ def standoff(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["standoff"]
+        return self['standoff']
 
     @standoff.setter
     def standoff(self, val):
-        self["standoff"] = val
+        self['standoff'] = val
 
     @property
     def standoffsrc(self):
@@ -620,11 +594,11 @@ def standoffsrc(self):
         -------
         str
         """
-        return self["standoffsrc"]
+        return self['standoffsrc']
 
     @standoffsrc.setter
     def standoffsrc(self, val):
-        self["standoffsrc"] = val
+        self['standoffsrc'] = val
 
     @property
     def symbol(self):
@@ -731,11 +705,11 @@ def symbol(self):
         -------
         Any|numpy.ndarray
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def symbolsrc(self):
@@ -749,11 +723,11 @@ def symbolsrc(self):
         -------
         str
         """
-        return self["symbolsrc"]
+        return self['symbolsrc']
 
     @symbolsrc.setter
     def symbolsrc(self, val):
-        self["symbolsrc"] = val
+        self['symbolsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -894,41 +868,39 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `symbol`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        angle=None,
-        angleref=None,
-        anglesrc=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        gradient=None,
-        line=None,
-        maxdisplayed=None,
-        opacity=None,
-        opacitysrc=None,
-        reversescale=None,
-        showscale=None,
-        size=None,
-        sizemin=None,
-        sizemode=None,
-        sizeref=None,
-        sizesrc=None,
-        standoff=None,
-        standoffsrc=None,
-        symbol=None,
-        symbolsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            angle=None,
+            angleref=None,
+            anglesrc=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            gradient=None,
+            line=None,
+            maxdisplayed=None,
+            opacity=None,
+            opacitysrc=None,
+            reversescale=None,
+            showscale=None,
+            size=None,
+            sizemin=None,
+            sizemode=None,
+            sizeref=None,
+            sizesrc=None,
+            standoff=None,
+            standoffsrc=None,
+            symbol=None,
+            symbolsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -1078,9 +1050,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1090,44 +1062,44 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("angle", arg, angle)
-        self._set_property("angleref", arg, angleref)
-        self._set_property("anglesrc", arg, anglesrc)
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("gradient", arg, gradient)
-        self._set_property("line", arg, line)
-        self._set_property("maxdisplayed", arg, maxdisplayed)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("size", arg, size)
-        self._set_property("sizemin", arg, sizemin)
-        self._set_property("sizemode", arg, sizemode)
-        self._set_property("sizeref", arg, sizeref)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("standoff", arg, standoff)
-        self._set_property("standoffsrc", arg, standoffsrc)
-        self._set_property("symbol", arg, symbol)
-        self._set_property("symbolsrc", arg, symbolsrc)
+an instance of :class:`plotly.graph_objs.scattercarpet.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('angle', arg, angle)
+        self._set_property('angleref', arg, angleref)
+        self._set_property('anglesrc', arg, anglesrc)
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('gradient', arg, gradient)
+        self._set_property('line', arg, line)
+        self._set_property('maxdisplayed', arg, maxdisplayed)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('size', arg, size)
+        self._set_property('sizemin', arg, sizemin)
+        self._set_property('sizemode', arg, sizemode)
+        self._set_property('sizeref', arg, sizeref)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('standoff', arg, standoff)
+        self._set_property('standoffsrc', arg, standoffsrc)
+        self._set_property('symbol', arg, symbol)
+        self._set_property('symbolsrc', arg, symbolsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/_selected.py b/plotly/graph_objs/scattercarpet/_selected.py
index 4081ec1bbf7..f97d32381a0 100644
--- a/plotly/graph_objs/scattercarpet/_selected.py
+++ b/plotly/graph_objs/scattercarpet/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet"
-    _path_str = "scattercarpet.selected"
+    _parent_path_str = 'scattercarpet'
+    _path_str = 'scattercarpet.selected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattercarpet.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scattercarpet.selected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scattercarpet.selected.Tex
             tfont` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.scattercarpet.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/_stream.py b/plotly/graph_objs/scattercarpet/_stream.py
index 5e5ac78c881..069b1c34509 100644
--- a/plotly/graph_objs/scattercarpet/_stream.py
+++ b/plotly/graph_objs/scattercarpet/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet"
-    _path_str = "scattercarpet.stream"
+    _parent_path_str = 'scattercarpet'
+    _path_str = 'scattercarpet.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.scattercarpet.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/_textfont.py b/plotly/graph_objs/scattercarpet/_textfont.py
index 32240df57a1..367dde3a8b5 100644
--- a/plotly/graph_objs/scattercarpet/_textfont.py
+++ b/plotly/graph_objs/scattercarpet/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet"
-    _path_str = "scattercarpet.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scattercarpet'
+    _path_str = 'scattercarpet.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scattercarpet.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/_unselected.py b/plotly/graph_objs/scattercarpet/_unselected.py
index 31be43e1bff..681d249c69b 100644
--- a/plotly/graph_objs/scattercarpet/_unselected.py
+++ b/plotly/graph_objs/scattercarpet/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet"
-    _path_str = "scattercarpet.unselected"
+    _parent_path_str = 'scattercarpet'
+    _path_str = 'scattercarpet.unselected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattercarpet.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scattercarpet.unselected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scattercarpet.unselected.T
             extfont` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.scattercarpet.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/hoverlabel/__init__.py b/plotly/graph_objs/scattercarpet/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattercarpet/hoverlabel/__init__.py
+++ b/plotly/graph_objs/scattercarpet/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattercarpet/hoverlabel/_font.py b/plotly/graph_objs/scattercarpet/hoverlabel/_font.py
index 9c19de45396..9d3c8991c56 100644
--- a/plotly/graph_objs/scattercarpet/hoverlabel/_font.py
+++ b/plotly/graph_objs/scattercarpet/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet.hoverlabel"
-    _path_str = "scattercarpet.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scattercarpet.hoverlabel'
+    _path_str = 'scattercarpet.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scattercarpet.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/legendgrouptitle/__init__.py b/plotly/graph_objs/scattercarpet/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattercarpet/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/scattercarpet/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattercarpet/legendgrouptitle/_font.py b/plotly/graph_objs/scattercarpet/legendgrouptitle/_font.py
index afb974824cc..5e867bf4eef 100644
--- a/plotly/graph_objs/scattercarpet/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/scattercarpet/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet.legendgrouptitle"
-    _path_str = "scattercarpet.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattercarpet.legendgrouptitle'
+    _path_str = 'scattercarpet.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattercarpet.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/marker/__init__.py b/plotly/graph_objs/scattercarpet/marker/__init__.py
index f9d889ecb9b..b07f6ce198a 100644
--- a/plotly/graph_objs/scattercarpet/marker/__init__.py
+++ b/plotly/graph_objs/scattercarpet/marker/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._gradient import Gradient
+    from ._line import Line
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._gradient.Gradient', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar"],
-    ["._colorbar.ColorBar", "._gradient.Gradient", "._line.Line"],
-)
diff --git a/plotly/graph_objs/scattercarpet/marker/_colorbar.py b/plotly/graph_objs/scattercarpet/marker/_colorbar.py
index 51327ceaeee..d237e3b91dc 100644
--- a/plotly/graph_objs/scattercarpet/marker/_colorbar.py
+++ b/plotly/graph_objs/scattercarpet/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet.marker"
-    _path_str = "scattercarpet.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'scattercarpet.marker'
+    _path_str = 'scattercarpet.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.scattercarpet.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.scattercarpet.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.scattercarpet.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.scattercarpet.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.scattercarpet.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/marker/_gradient.py b/plotly/graph_objs/scattercarpet/marker/_gradient.py
index c68ea551ac3..8de3c3ee166 100644
--- a/plotly/graph_objs/scattercarpet/marker/_gradient.py
+++ b/plotly/graph_objs/scattercarpet/marker/_gradient.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Gradient(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet.marker"
-    _path_str = "scattercarpet.marker.gradient"
+    _parent_path_str = 'scattercarpet.marker'
+    _path_str = 'scattercarpet.marker.gradient'
     _valid_props = {"color", "colorsrc", "type", "typesrc"}
 
     @property
@@ -29,11 +33,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -47,11 +51,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def type(self):
@@ -67,11 +71,11 @@ def type(self):
         -------
         Any|numpy.ndarray
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def typesrc(self):
@@ -85,11 +89,11 @@ def typesrc(self):
         -------
         str
         """
-        return self["typesrc"]
+        return self['typesrc']
 
     @typesrc.setter
     def typesrc(self, val):
-        self["typesrc"] = val
+        self['typesrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -107,10 +111,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `type`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, type=None, typesrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            type=None,
+            typesrc=None,
+            **kwargs
+        ):
         """
         Construct a new Gradient object
 
@@ -137,9 +145,9 @@ def __init__(
         -------
         Gradient
         """
-        super().__init__("gradient")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('gradient')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -149,19 +157,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.marker.Gradient
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.marker.Gradient`"""
-            )
+an instance of :class:`plotly.graph_objs.scattercarpet.marker.Gradient`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("type", arg, type)
-        self._set_property("typesrc", arg, typesrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('type', arg, type)
+        self._set_property('typesrc', arg, typesrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/marker/_line.py b/plotly/graph_objs/scattercarpet/marker/_line.py
index 1f8f8e09cd3..c1432b47b75 100644
--- a/plotly/graph_objs/scattercarpet/marker/_line.py
+++ b/plotly/graph_objs/scattercarpet/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet.marker"
-    _path_str = "scattercarpet.marker.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorscale",
-        "colorsrc",
-        "reversescale",
-        "width",
-        "widthsrc",
-    }
+    _parent_path_str = 'scattercarpet.marker'
+    _path_str = 'scattercarpet.marker.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorscale", "colorsrc", "reversescale", "width", "widthsrc"}
 
     @property
     def autocolorscale(self):
@@ -42,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -65,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -86,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -109,11 +100,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -130,11 +121,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -158,11 +149,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -183,11 +174,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorscale(self):
@@ -236,11 +227,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -254,11 +245,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def reversescale(self):
@@ -276,11 +267,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def width(self):
@@ -295,11 +286,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -313,11 +304,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -401,24 +392,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorscale=None,
-        colorsrc=None,
-        reversescale=None,
-        width=None,
-        widthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorscale=None,
+            colorsrc=None,
+            reversescale=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -511,9 +500,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -523,27 +512,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.marker.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+an instance of :class:`plotly.graph_objs.scattercarpet.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/marker/colorbar/__init__.py b/plotly/graph_objs/scattercarpet/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/scattercarpet/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/scattercarpet/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/scattercarpet/marker/colorbar/_tickfont.py b/plotly/graph_objs/scattercarpet/marker/colorbar/_tickfont.py
index 51b7c2a491d..45a1da74484 100644
--- a/plotly/graph_objs/scattercarpet/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/scattercarpet/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet.marker.colorbar"
-    _path_str = "scattercarpet.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattercarpet.marker.colorbar'
+    _path_str = 'scattercarpet.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattercarpet.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/scattercarpet/marker/colorbar/_tickformatstop.py
index 9f873f37842..814d0b8ef3b 100644
--- a/plotly/graph_objs/scattercarpet/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/scattercarpet/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet.marker.colorbar"
-    _path_str = "scattercarpet.marker.colorbar.tickformatstop"
+    _parent_path_str = 'scattercarpet.marker.colorbar'
+    _path_str = 'scattercarpet.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.scattercarpet.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/marker/colorbar/_title.py b/plotly/graph_objs/scattercarpet/marker/colorbar/_title.py
index 937455bef70..4f3548b9dd8 100644
--- a/plotly/graph_objs/scattercarpet/marker/colorbar/_title.py
+++ b/plotly/graph_objs/scattercarpet/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet.marker.colorbar"
-    _path_str = "scattercarpet.marker.colorbar.title"
+    _parent_path_str = 'scattercarpet.marker.colorbar'
+    _path_str = 'scattercarpet.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scattercarpet.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.scattercarpet.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/marker/colorbar/title/__init__.py b/plotly/graph_objs/scattercarpet/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattercarpet/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/scattercarpet/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattercarpet/marker/colorbar/title/_font.py b/plotly/graph_objs/scattercarpet/marker/colorbar/title/_font.py
index 8f84fd36616..9d6ed99713c 100644
--- a/plotly/graph_objs/scattercarpet/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/scattercarpet/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet.marker.colorbar.title"
-    _path_str = "scattercarpet.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattercarpet.marker.colorbar.title'
+    _path_str = 'scattercarpet.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattercarpet.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/selected/__init__.py b/plotly/graph_objs/scattercarpet/selected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/scattercarpet/selected/__init__.py
+++ b/plotly/graph_objs/scattercarpet/selected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/scattercarpet/selected/_marker.py b/plotly/graph_objs/scattercarpet/selected/_marker.py
index e43d198c4ed..9eab4251cf9 100644
--- a/plotly/graph_objs/scattercarpet/selected/_marker.py
+++ b/plotly/graph_objs/scattercarpet/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet.selected"
-    _path_str = "scattercarpet.selected.marker"
+    _parent_path_str = 'scattercarpet.selected'
+    _path_str = 'scattercarpet.selected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         size
             Sets the marker size of selected points.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scattercarpet.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/selected/_textfont.py b/plotly/graph_objs/scattercarpet/selected/_textfont.py
index 6c4337e3fb1..005f32d561d 100644
--- a/plotly/graph_objs/scattercarpet/selected/_textfont.py
+++ b/plotly/graph_objs/scattercarpet/selected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet.selected"
-    _path_str = "scattercarpet.selected.textfont"
+    _parent_path_str = 'scattercarpet.selected'
+    _path_str = 'scattercarpet.selected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -39,8 +43,11 @@ def _prop_descriptions(self):
         color
             Sets the text font color of selected points.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -57,9 +64,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -69,16 +76,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.selected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.selected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scattercarpet.selected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/unselected/__init__.py b/plotly/graph_objs/scattercarpet/unselected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/scattercarpet/unselected/__init__.py
+++ b/plotly/graph_objs/scattercarpet/unselected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/scattercarpet/unselected/_marker.py b/plotly/graph_objs/scattercarpet/unselected/_marker.py
index 5f63108bd97..27b9f0c3cb9 100644
--- a/plotly/graph_objs/scattercarpet/unselected/_marker.py
+++ b/plotly/graph_objs/scattercarpet/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet.unselected"
-    _path_str = "scattercarpet.unselected.marker"
+    _parent_path_str = 'scattercarpet.unselected'
+    _path_str = 'scattercarpet.unselected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -47,11 +51,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -66,11 +70,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
             Sets the marker size of unselected points, applied only
             when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scattercarpet.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattercarpet/unselected/_textfont.py b/plotly/graph_objs/scattercarpet/unselected/_textfont.py
index b39b308db6e..21572381a83 100644
--- a/plotly/graph_objs/scattercarpet/unselected/_textfont.py
+++ b/plotly/graph_objs/scattercarpet/unselected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattercarpet.unselected"
-    _path_str = "scattercarpet.unselected.textfont"
+    _parent_path_str = 'scattercarpet.unselected'
+    _path_str = 'scattercarpet.unselected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -41,8 +45,11 @@ def _prop_descriptions(self):
             Sets the text font color of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -60,9 +67,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -72,16 +79,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattercarpet.unselected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattercarpet.unselected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scattercarpet.unselected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/__init__.py b/plotly/graph_objs/scattergeo/__init__.py
index 7cc31d4831a..9103ab10864 100644
--- a/plotly/graph_objs/scattergeo/__init__.py
+++ b/plotly/graph_objs/scattergeo/__init__.py
@@ -1,17 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._marker import Marker
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._unselected import Unselected
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._marker.Marker', '._selected.Selected', '._stream.Stream', '._textfont.Textfont', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".selected", ".unselected"],
-    [
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._marker.Marker",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/scattergeo/_hoverlabel.py b/plotly/graph_objs/scattergeo/_hoverlabel.py
index 4120c553775..71723792b2f 100644
--- a/plotly/graph_objs/scattergeo/_hoverlabel.py
+++ b/plotly/graph_objs/scattergeo/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo"
-    _path_str = "scattergeo.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'scattergeo'
+    _path_str = 'scattergeo.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.scattergeo.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.scattergeo.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/_legendgrouptitle.py b/plotly/graph_objs/scattergeo/_legendgrouptitle.py
index fdc17073c6b..e24b317530e 100644
--- a/plotly/graph_objs/scattergeo/_legendgrouptitle.py
+++ b/plotly/graph_objs/scattergeo/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo"
-    _path_str = "scattergeo.legendgrouptitle"
+    _parent_path_str = 'scattergeo'
+    _path_str = 'scattergeo.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scattergeo.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergeo.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/_line.py b/plotly/graph_objs/scattergeo/_line.py
index 0299f42e7c6..a29190d9403 100644
--- a/plotly/graph_objs/scattergeo/_line.py
+++ b/plotly/graph_objs/scattergeo/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo"
-    _path_str = "scattergeo.line"
+    _parent_path_str = 'scattergeo'
+    _path_str = 'scattergeo.line'
     _valid_props = {"color", "dash", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -51,11 +55,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def width(self):
@@ -69,11 +73,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -88,8 +92,13 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dash=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -113,9 +122,9 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -125,18 +134,18 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergeo.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/_marker.py b/plotly/graph_objs/scattergeo/_marker.py
index f3b56d6bc7a..1cf3a21594f 100644
--- a/plotly/graph_objs/scattergeo/_marker.py
+++ b/plotly/graph_objs/scattergeo/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,38 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo"
-    _path_str = "scattergeo.marker"
-    _valid_props = {
-        "angle",
-        "angleref",
-        "anglesrc",
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "gradient",
-        "line",
-        "opacity",
-        "opacitysrc",
-        "reversescale",
-        "showscale",
-        "size",
-        "sizemin",
-        "sizemode",
-        "sizeref",
-        "sizesrc",
-        "standoff",
-        "standoffsrc",
-        "symbol",
-        "symbolsrc",
-    }
+    _parent_path_str = 'scattergeo'
+    _path_str = 'scattergeo.marker'
+    _valid_props = {"angle", "angleref", "anglesrc", "autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "gradient", "line", "opacity", "opacitysrc", "reversescale", "showscale", "size", "sizemin", "sizemode", "sizeref", "sizesrc", "standoff", "standoffsrc", "symbol", "symbolsrc"}
 
     @property
     def angle(self):
@@ -54,11 +29,11 @@ def angle(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["angle"]
+        return self['angle']
 
     @angle.setter
     def angle(self, val):
-        self["angle"] = val
+        self['angle'] = val
 
     @property
     def angleref(self):
@@ -77,11 +52,11 @@ def angleref(self):
         -------
         Any
         """
-        return self["angleref"]
+        return self['angleref']
 
     @angleref.setter
     def angleref(self, val):
-        self["angleref"] = val
+        self['angleref'] = val
 
     @property
     def anglesrc(self):
@@ -95,11 +70,11 @@ def anglesrc(self):
         -------
         str
         """
-        return self["anglesrc"]
+        return self['anglesrc']
 
     @anglesrc.setter
     def anglesrc(self, val):
-        self["anglesrc"] = val
+        self['anglesrc'] = val
 
     @property
     def autocolorscale(self):
@@ -119,11 +94,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -142,11 +117,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -163,11 +138,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -185,11 +160,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -206,11 +181,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -234,11 +209,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -259,11 +234,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -278,11 +253,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.scattergeo.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -330,11 +305,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -348,11 +323,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def gradient(self):
@@ -367,11 +342,11 @@ def gradient(self):
         -------
         plotly.graph_objs.scattergeo.marker.Gradient
         """
-        return self["gradient"]
+        return self['gradient']
 
     @gradient.setter
     def gradient(self, val):
-        self["gradient"] = val
+        self['gradient'] = val
 
     @property
     def line(self):
@@ -386,11 +361,11 @@ def line(self):
         -------
         plotly.graph_objs.scattergeo.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def opacity(self):
@@ -405,11 +380,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -423,11 +398,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def reversescale(self):
@@ -444,11 +419,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -464,11 +439,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def size(self):
@@ -483,11 +458,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizemin(self):
@@ -503,11 +478,11 @@ def sizemin(self):
         -------
         int|float
         """
-        return self["sizemin"]
+        return self['sizemin']
 
     @sizemin.setter
     def sizemin(self, val):
-        self["sizemin"] = val
+        self['sizemin'] = val
 
     @property
     def sizemode(self):
@@ -524,11 +499,11 @@ def sizemode(self):
         -------
         Any
         """
-        return self["sizemode"]
+        return self['sizemode']
 
     @sizemode.setter
     def sizemode(self, val):
-        self["sizemode"] = val
+        self['sizemode'] = val
 
     @property
     def sizeref(self):
@@ -544,11 +519,11 @@ def sizeref(self):
         -------
         int|float
         """
-        return self["sizeref"]
+        return self['sizeref']
 
     @sizeref.setter
     def sizeref(self, val):
-        self["sizeref"] = val
+        self['sizeref'] = val
 
     @property
     def sizesrc(self):
@@ -562,11 +537,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def standoff(self):
@@ -584,11 +559,11 @@ def standoff(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["standoff"]
+        return self['standoff']
 
     @standoff.setter
     def standoff(self, val):
-        self["standoff"] = val
+        self['standoff'] = val
 
     @property
     def standoffsrc(self):
@@ -602,11 +577,11 @@ def standoffsrc(self):
         -------
         str
         """
-        return self["standoffsrc"]
+        return self['standoffsrc']
 
     @standoffsrc.setter
     def standoffsrc(self, val):
-        self["standoffsrc"] = val
+        self['standoffsrc'] = val
 
     @property
     def symbol(self):
@@ -713,11 +688,11 @@ def symbol(self):
         -------
         Any|numpy.ndarray
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def symbolsrc(self):
@@ -731,11 +706,11 @@ def symbolsrc(self):
         -------
         str
         """
-        return self["symbolsrc"]
+        return self['symbolsrc']
 
     @symbolsrc.setter
     def symbolsrc(self, val):
-        self["symbolsrc"] = val
+        self['symbolsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -874,40 +849,38 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `symbol`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        angle=None,
-        angleref=None,
-        anglesrc=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        gradient=None,
-        line=None,
-        opacity=None,
-        opacitysrc=None,
-        reversescale=None,
-        showscale=None,
-        size=None,
-        sizemin=None,
-        sizemode=None,
-        sizeref=None,
-        sizesrc=None,
-        standoff=None,
-        standoffsrc=None,
-        symbol=None,
-        symbolsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            angle=None,
+            angleref=None,
+            anglesrc=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            gradient=None,
+            line=None,
+            opacity=None,
+            opacitysrc=None,
+            reversescale=None,
+            showscale=None,
+            size=None,
+            sizemin=None,
+            sizemode=None,
+            sizeref=None,
+            sizesrc=None,
+            standoff=None,
+            standoffsrc=None,
+            symbol=None,
+            symbolsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -1055,9 +1028,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1067,43 +1040,43 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("angle", arg, angle)
-        self._set_property("angleref", arg, angleref)
-        self._set_property("anglesrc", arg, anglesrc)
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("gradient", arg, gradient)
-        self._set_property("line", arg, line)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("size", arg, size)
-        self._set_property("sizemin", arg, sizemin)
-        self._set_property("sizemode", arg, sizemode)
-        self._set_property("sizeref", arg, sizeref)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("standoff", arg, standoff)
-        self._set_property("standoffsrc", arg, standoffsrc)
-        self._set_property("symbol", arg, symbol)
-        self._set_property("symbolsrc", arg, symbolsrc)
+an instance of :class:`plotly.graph_objs.scattergeo.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('angle', arg, angle)
+        self._set_property('angleref', arg, angleref)
+        self._set_property('anglesrc', arg, anglesrc)
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('gradient', arg, gradient)
+        self._set_property('line', arg, line)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('size', arg, size)
+        self._set_property('sizemin', arg, sizemin)
+        self._set_property('sizemode', arg, sizemode)
+        self._set_property('sizeref', arg, sizeref)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('standoff', arg, standoff)
+        self._set_property('standoffsrc', arg, standoffsrc)
+        self._set_property('symbol', arg, symbol)
+        self._set_property('symbolsrc', arg, symbolsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/_selected.py b/plotly/graph_objs/scattergeo/_selected.py
index cca85d4a7ba..742cc172b50 100644
--- a/plotly/graph_objs/scattergeo/_selected.py
+++ b/plotly/graph_objs/scattergeo/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo"
-    _path_str = "scattergeo.selected"
+    _parent_path_str = 'scattergeo'
+    _path_str = 'scattergeo.selected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattergeo.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scattergeo.selected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scattergeo.selected.Textfo
             nt` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergeo.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/_stream.py b/plotly/graph_objs/scattergeo/_stream.py
index 9eb70b909ee..744229f07fb 100644
--- a/plotly/graph_objs/scattergeo/_stream.py
+++ b/plotly/graph_objs/scattergeo/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo"
-    _path_str = "scattergeo.stream"
+    _parent_path_str = 'scattergeo'
+    _path_str = 'scattergeo.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergeo.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/_textfont.py b/plotly/graph_objs/scattergeo/_textfont.py
index d1450a148ab..bdeee5a148d 100644
--- a/plotly/graph_objs/scattergeo/_textfont.py
+++ b/plotly/graph_objs/scattergeo/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo"
-    _path_str = "scattergeo.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scattergeo'
+    _path_str = 'scattergeo.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scattergeo.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/_unselected.py b/plotly/graph_objs/scattergeo/_unselected.py
index 0bd34ac33f5..9de0ebefa07 100644
--- a/plotly/graph_objs/scattergeo/_unselected.py
+++ b/plotly/graph_objs/scattergeo/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo"
-    _path_str = "scattergeo.unselected"
+    _parent_path_str = 'scattergeo'
+    _path_str = 'scattergeo.unselected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattergeo.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scattergeo.unselected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scattergeo.unselected.Text
             font` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergeo.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/hoverlabel/__init__.py b/plotly/graph_objs/scattergeo/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattergeo/hoverlabel/__init__.py
+++ b/plotly/graph_objs/scattergeo/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattergeo/hoverlabel/_font.py b/plotly/graph_objs/scattergeo/hoverlabel/_font.py
index 5912282f38f..2230b369902 100644
--- a/plotly/graph_objs/scattergeo/hoverlabel/_font.py
+++ b/plotly/graph_objs/scattergeo/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo.hoverlabel"
-    _path_str = "scattergeo.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scattergeo.hoverlabel'
+    _path_str = 'scattergeo.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scattergeo.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/legendgrouptitle/__init__.py b/plotly/graph_objs/scattergeo/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattergeo/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/scattergeo/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattergeo/legendgrouptitle/_font.py b/plotly/graph_objs/scattergeo/legendgrouptitle/_font.py
index 6671c9faf3a..5dd591622c1 100644
--- a/plotly/graph_objs/scattergeo/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/scattergeo/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo.legendgrouptitle"
-    _path_str = "scattergeo.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattergeo.legendgrouptitle'
+    _path_str = 'scattergeo.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattergeo.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/marker/__init__.py b/plotly/graph_objs/scattergeo/marker/__init__.py
index f9d889ecb9b..b07f6ce198a 100644
--- a/plotly/graph_objs/scattergeo/marker/__init__.py
+++ b/plotly/graph_objs/scattergeo/marker/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._gradient import Gradient
+    from ._line import Line
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._gradient.Gradient', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar"],
-    ["._colorbar.ColorBar", "._gradient.Gradient", "._line.Line"],
-)
diff --git a/plotly/graph_objs/scattergeo/marker/_colorbar.py b/plotly/graph_objs/scattergeo/marker/_colorbar.py
index 16d225e32af..a135ee8188d 100644
--- a/plotly/graph_objs/scattergeo/marker/_colorbar.py
+++ b/plotly/graph_objs/scattergeo/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo.marker"
-    _path_str = "scattergeo.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'scattergeo.marker'
+    _path_str = 'scattergeo.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.scattergeo.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.scattergeo.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.scattergeo.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.scattergeo.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.scattergeo.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/marker/_gradient.py b/plotly/graph_objs/scattergeo/marker/_gradient.py
index a4931635bcf..e4ae6fb0f23 100644
--- a/plotly/graph_objs/scattergeo/marker/_gradient.py
+++ b/plotly/graph_objs/scattergeo/marker/_gradient.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Gradient(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo.marker"
-    _path_str = "scattergeo.marker.gradient"
+    _parent_path_str = 'scattergeo.marker'
+    _path_str = 'scattergeo.marker.gradient'
     _valid_props = {"color", "colorsrc", "type", "typesrc"}
 
     @property
@@ -29,11 +33,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -47,11 +51,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def type(self):
@@ -67,11 +71,11 @@ def type(self):
         -------
         Any|numpy.ndarray
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def typesrc(self):
@@ -85,11 +89,11 @@ def typesrc(self):
         -------
         str
         """
-        return self["typesrc"]
+        return self['typesrc']
 
     @typesrc.setter
     def typesrc(self, val):
-        self["typesrc"] = val
+        self['typesrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -107,10 +111,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `type`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, type=None, typesrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            type=None,
+            typesrc=None,
+            **kwargs
+        ):
         """
         Construct a new Gradient object
 
@@ -137,9 +145,9 @@ def __init__(
         -------
         Gradient
         """
-        super().__init__("gradient")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('gradient')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -149,19 +157,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.marker.Gradient
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.marker.Gradient`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergeo.marker.Gradient`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("type", arg, type)
-        self._set_property("typesrc", arg, typesrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('type', arg, type)
+        self._set_property('typesrc', arg, typesrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/marker/_line.py b/plotly/graph_objs/scattergeo/marker/_line.py
index 72d3e119cab..7600a2283f9 100644
--- a/plotly/graph_objs/scattergeo/marker/_line.py
+++ b/plotly/graph_objs/scattergeo/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo.marker"
-    _path_str = "scattergeo.marker.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorscale",
-        "colorsrc",
-        "reversescale",
-        "width",
-        "widthsrc",
-    }
+    _parent_path_str = 'scattergeo.marker'
+    _path_str = 'scattergeo.marker.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorscale", "colorsrc", "reversescale", "width", "widthsrc"}
 
     @property
     def autocolorscale(self):
@@ -42,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -65,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -86,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -109,11 +100,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -130,11 +121,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -158,11 +149,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -183,11 +174,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorscale(self):
@@ -236,11 +227,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -254,11 +245,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def reversescale(self):
@@ -276,11 +267,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def width(self):
@@ -295,11 +286,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -313,11 +304,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -401,24 +392,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorscale=None,
-        colorsrc=None,
-        reversescale=None,
-        width=None,
-        widthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorscale=None,
+            colorsrc=None,
+            reversescale=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -511,9 +500,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -523,27 +512,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.marker.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+an instance of :class:`plotly.graph_objs.scattergeo.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/marker/colorbar/__init__.py b/plotly/graph_objs/scattergeo/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/scattergeo/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/scattergeo/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/scattergeo/marker/colorbar/_tickfont.py b/plotly/graph_objs/scattergeo/marker/colorbar/_tickfont.py
index 94163453779..e65ea3dcaef 100644
--- a/plotly/graph_objs/scattergeo/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/scattergeo/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo.marker.colorbar"
-    _path_str = "scattergeo.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattergeo.marker.colorbar'
+    _path_str = 'scattergeo.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattergeo.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/scattergeo/marker/colorbar/_tickformatstop.py
index 2b21f5972ac..cf9355c4480 100644
--- a/plotly/graph_objs/scattergeo/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/scattergeo/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo.marker.colorbar"
-    _path_str = "scattergeo.marker.colorbar.tickformatstop"
+    _parent_path_str = 'scattergeo.marker.colorbar'
+    _path_str = 'scattergeo.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergeo.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/marker/colorbar/_title.py b/plotly/graph_objs/scattergeo/marker/colorbar/_title.py
index 2e08a80e3c0..68c12e5c7ae 100644
--- a/plotly/graph_objs/scattergeo/marker/colorbar/_title.py
+++ b/plotly/graph_objs/scattergeo/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo.marker.colorbar"
-    _path_str = "scattergeo.marker.colorbar.title"
+    _parent_path_str = 'scattergeo.marker.colorbar'
+    _path_str = 'scattergeo.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scattergeo.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergeo.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/marker/colorbar/title/__init__.py b/plotly/graph_objs/scattergeo/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattergeo/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/scattergeo/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattergeo/marker/colorbar/title/_font.py b/plotly/graph_objs/scattergeo/marker/colorbar/title/_font.py
index c6e9a31259b..c1aef2850e8 100644
--- a/plotly/graph_objs/scattergeo/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/scattergeo/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo.marker.colorbar.title"
-    _path_str = "scattergeo.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattergeo.marker.colorbar.title'
+    _path_str = 'scattergeo.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattergeo.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/selected/__init__.py b/plotly/graph_objs/scattergeo/selected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/scattergeo/selected/__init__.py
+++ b/plotly/graph_objs/scattergeo/selected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/scattergeo/selected/_marker.py b/plotly/graph_objs/scattergeo/selected/_marker.py
index 301576c7666..c7e6c54136e 100644
--- a/plotly/graph_objs/scattergeo/selected/_marker.py
+++ b/plotly/graph_objs/scattergeo/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo.selected"
-    _path_str = "scattergeo.selected.marker"
+    _parent_path_str = 'scattergeo.selected'
+    _path_str = 'scattergeo.selected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         size
             Sets the marker size of selected points.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergeo.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/selected/_textfont.py b/plotly/graph_objs/scattergeo/selected/_textfont.py
index 6a56e33d3a5..172f596c659 100644
--- a/plotly/graph_objs/scattergeo/selected/_textfont.py
+++ b/plotly/graph_objs/scattergeo/selected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo.selected"
-    _path_str = "scattergeo.selected.textfont"
+    _parent_path_str = 'scattergeo.selected'
+    _path_str = 'scattergeo.selected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -39,8 +43,11 @@ def _prop_descriptions(self):
         color
             Sets the text font color of selected points.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -57,9 +64,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -69,16 +76,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.selected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.selected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergeo.selected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/unselected/__init__.py b/plotly/graph_objs/scattergeo/unselected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/scattergeo/unselected/__init__.py
+++ b/plotly/graph_objs/scattergeo/unselected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/scattergeo/unselected/_marker.py b/plotly/graph_objs/scattergeo/unselected/_marker.py
index cd5f878018d..a02688eec91 100644
--- a/plotly/graph_objs/scattergeo/unselected/_marker.py
+++ b/plotly/graph_objs/scattergeo/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo.unselected"
-    _path_str = "scattergeo.unselected.marker"
+    _parent_path_str = 'scattergeo.unselected'
+    _path_str = 'scattergeo.unselected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -47,11 +51,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -66,11 +70,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
             Sets the marker size of unselected points, applied only
             when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergeo.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergeo/unselected/_textfont.py b/plotly/graph_objs/scattergeo/unselected/_textfont.py
index 4b0cc73bf3f..ee40b58d077 100644
--- a/plotly/graph_objs/scattergeo/unselected/_textfont.py
+++ b/plotly/graph_objs/scattergeo/unselected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergeo.unselected"
-    _path_str = "scattergeo.unselected.textfont"
+    _parent_path_str = 'scattergeo.unselected'
+    _path_str = 'scattergeo.unselected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -41,8 +45,11 @@ def _prop_descriptions(self):
             Sets the text font color of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -60,9 +67,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -72,16 +79,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergeo.unselected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergeo.unselected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergeo.unselected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/__init__.py b/plotly/graph_objs/scattergl/__init__.py
index 70041375deb..374669a13c8 100644
--- a/plotly/graph_objs/scattergl/__init__.py
+++ b/plotly/graph_objs/scattergl/__init__.py
@@ -1,19 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._error_x import ErrorX
+    from ._error_y import ErrorY
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._marker import Marker
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._unselected import Unselected
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._error_x.ErrorX', '._error_y.ErrorY', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._marker.Marker', '._selected.Selected', '._stream.Stream', '._textfont.Textfont', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".selected", ".unselected"],
-    [
-        "._error_x.ErrorX",
-        "._error_y.ErrorY",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._marker.Marker",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/scattergl/_error_x.py b/plotly/graph_objs/scattergl/_error_x.py
index 65103fa6f0a..a0f47f7045d 100644
--- a/plotly/graph_objs/scattergl/_error_x.py
+++ b/plotly/graph_objs/scattergl/_error_x.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,25 +11,9 @@
 
 class ErrorX(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl"
-    _path_str = "scattergl.error_x"
-    _valid_props = {
-        "array",
-        "arrayminus",
-        "arrayminussrc",
-        "arraysrc",
-        "color",
-        "copy_ystyle",
-        "symmetric",
-        "thickness",
-        "traceref",
-        "tracerefminus",
-        "type",
-        "value",
-        "valueminus",
-        "visible",
-        "width",
-    }
+    _parent_path_str = 'scattergl'
+    _path_str = 'scattergl.error_x'
+    _valid_props = {"array", "arrayminus", "arrayminussrc", "arraysrc", "color", "copy_ystyle", "symmetric", "thickness", "traceref", "tracerefminus", "type", "value", "valueminus", "visible", "width"}
 
     @property
     def array(self):
@@ -40,11 +28,11 @@ def array(self):
         -------
         numpy.ndarray
         """
-        return self["array"]
+        return self['array']
 
     @array.setter
     def array(self, val):
-        self["array"] = val
+        self['array'] = val
 
     @property
     def arrayminus(self):
@@ -60,11 +48,11 @@ def arrayminus(self):
         -------
         numpy.ndarray
         """
-        return self["arrayminus"]
+        return self['arrayminus']
 
     @arrayminus.setter
     def arrayminus(self, val):
-        self["arrayminus"] = val
+        self['arrayminus'] = val
 
     @property
     def arrayminussrc(self):
@@ -79,11 +67,11 @@ def arrayminussrc(self):
         -------
         str
         """
-        return self["arrayminussrc"]
+        return self['arrayminussrc']
 
     @arrayminussrc.setter
     def arrayminussrc(self, val):
-        self["arrayminussrc"] = val
+        self['arrayminussrc'] = val
 
     @property
     def arraysrc(self):
@@ -97,11 +85,11 @@ def arraysrc(self):
         -------
         str
         """
-        return self["arraysrc"]
+        return self['arraysrc']
 
     @arraysrc.setter
     def arraysrc(self, val):
-        self["arraysrc"] = val
+        self['arraysrc'] = val
 
     @property
     def color(self):
@@ -119,11 +107,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def copy_ystyle(self):
@@ -135,11 +123,11 @@ def copy_ystyle(self):
         -------
         bool
         """
-        return self["copy_ystyle"]
+        return self['copy_ystyle']
 
     @copy_ystyle.setter
     def copy_ystyle(self, val):
-        self["copy_ystyle"] = val
+        self['copy_ystyle'] = val
 
     @property
     def symmetric(self):
@@ -155,11 +143,11 @@ def symmetric(self):
         -------
         bool
         """
-        return self["symmetric"]
+        return self['symmetric']
 
     @symmetric.setter
     def symmetric(self, val):
-        self["symmetric"] = val
+        self['symmetric'] = val
 
     @property
     def thickness(self):
@@ -173,11 +161,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def traceref(self):
@@ -190,11 +178,11 @@ def traceref(self):
         -------
         int
         """
-        return self["traceref"]
+        return self['traceref']
 
     @traceref.setter
     def traceref(self, val):
-        self["traceref"] = val
+        self['traceref'] = val
 
     @property
     def tracerefminus(self):
@@ -207,11 +195,11 @@ def tracerefminus(self):
         -------
         int
         """
-        return self["tracerefminus"]
+        return self['tracerefminus']
 
     @tracerefminus.setter
     def tracerefminus(self, val):
-        self["tracerefminus"] = val
+        self['tracerefminus'] = val
 
     @property
     def type(self):
@@ -232,11 +220,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def value(self):
@@ -252,11 +240,11 @@ def value(self):
         -------
         int|float
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def valueminus(self):
@@ -273,11 +261,11 @@ def valueminus(self):
         -------
         int|float
         """
-        return self["valueminus"]
+        return self['valueminus']
 
     @valueminus.setter
     def valueminus(self, val):
-        self["valueminus"] = val
+        self['valueminus'] = val
 
     @property
     def visible(self):
@@ -291,11 +279,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -310,11 +298,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -375,27 +363,25 @@ def _prop_descriptions(self):
             Sets the width (in px) of the cross-bar at both ends of
             the error bars.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        array=None,
-        arrayminus=None,
-        arrayminussrc=None,
-        arraysrc=None,
-        color=None,
-        copy_ystyle=None,
-        symmetric=None,
-        thickness=None,
-        traceref=None,
-        tracerefminus=None,
-        type=None,
-        value=None,
-        valueminus=None,
-        visible=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            array=None,
+            arrayminus=None,
+            arrayminussrc=None,
+            arraysrc=None,
+            color=None,
+            copy_ystyle=None,
+            symmetric=None,
+            thickness=None,
+            traceref=None,
+            tracerefminus=None,
+            type=None,
+            value=None,
+            valueminus=None,
+            visible=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new ErrorX object
 
@@ -465,9 +451,9 @@ def __init__(
         -------
         ErrorX
         """
-        super().__init__("error_x")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('error_x')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -477,30 +463,30 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.ErrorX
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.ErrorX`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("array", arg, array)
-        self._set_property("arrayminus", arg, arrayminus)
-        self._set_property("arrayminussrc", arg, arrayminussrc)
-        self._set_property("arraysrc", arg, arraysrc)
-        self._set_property("color", arg, color)
-        self._set_property("copy_ystyle", arg, copy_ystyle)
-        self._set_property("symmetric", arg, symmetric)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("traceref", arg, traceref)
-        self._set_property("tracerefminus", arg, tracerefminus)
-        self._set_property("type", arg, type)
-        self._set_property("value", arg, value)
-        self._set_property("valueminus", arg, valueminus)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.scattergl.ErrorX`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('array', arg, array)
+        self._set_property('arrayminus', arg, arrayminus)
+        self._set_property('arrayminussrc', arg, arrayminussrc)
+        self._set_property('arraysrc', arg, arraysrc)
+        self._set_property('color', arg, color)
+        self._set_property('copy_ystyle', arg, copy_ystyle)
+        self._set_property('symmetric', arg, symmetric)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('traceref', arg, traceref)
+        self._set_property('tracerefminus', arg, tracerefminus)
+        self._set_property('type', arg, type)
+        self._set_property('value', arg, value)
+        self._set_property('valueminus', arg, valueminus)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/_error_y.py b/plotly/graph_objs/scattergl/_error_y.py
index 885979fbc47..51174af34ea 100644
--- a/plotly/graph_objs/scattergl/_error_y.py
+++ b/plotly/graph_objs/scattergl/_error_y.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,24 +11,9 @@
 
 class ErrorY(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl"
-    _path_str = "scattergl.error_y"
-    _valid_props = {
-        "array",
-        "arrayminus",
-        "arrayminussrc",
-        "arraysrc",
-        "color",
-        "symmetric",
-        "thickness",
-        "traceref",
-        "tracerefminus",
-        "type",
-        "value",
-        "valueminus",
-        "visible",
-        "width",
-    }
+    _parent_path_str = 'scattergl'
+    _path_str = 'scattergl.error_y'
+    _valid_props = {"array", "arrayminus", "arrayminussrc", "arraysrc", "color", "symmetric", "thickness", "traceref", "tracerefminus", "type", "value", "valueminus", "visible", "width"}
 
     @property
     def array(self):
@@ -39,11 +28,11 @@ def array(self):
         -------
         numpy.ndarray
         """
-        return self["array"]
+        return self['array']
 
     @array.setter
     def array(self, val):
-        self["array"] = val
+        self['array'] = val
 
     @property
     def arrayminus(self):
@@ -59,11 +48,11 @@ def arrayminus(self):
         -------
         numpy.ndarray
         """
-        return self["arrayminus"]
+        return self['arrayminus']
 
     @arrayminus.setter
     def arrayminus(self, val):
-        self["arrayminus"] = val
+        self['arrayminus'] = val
 
     @property
     def arrayminussrc(self):
@@ -78,11 +67,11 @@ def arrayminussrc(self):
         -------
         str
         """
-        return self["arrayminussrc"]
+        return self['arrayminussrc']
 
     @arrayminussrc.setter
     def arrayminussrc(self, val):
-        self["arrayminussrc"] = val
+        self['arrayminussrc'] = val
 
     @property
     def arraysrc(self):
@@ -96,11 +85,11 @@ def arraysrc(self):
         -------
         str
         """
-        return self["arraysrc"]
+        return self['arraysrc']
 
     @arraysrc.setter
     def arraysrc(self, val):
-        self["arraysrc"] = val
+        self['arraysrc'] = val
 
     @property
     def color(self):
@@ -118,11 +107,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def symmetric(self):
@@ -138,11 +127,11 @@ def symmetric(self):
         -------
         bool
         """
-        return self["symmetric"]
+        return self['symmetric']
 
     @symmetric.setter
     def symmetric(self, val):
-        self["symmetric"] = val
+        self['symmetric'] = val
 
     @property
     def thickness(self):
@@ -156,11 +145,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def traceref(self):
@@ -173,11 +162,11 @@ def traceref(self):
         -------
         int
         """
-        return self["traceref"]
+        return self['traceref']
 
     @traceref.setter
     def traceref(self, val):
-        self["traceref"] = val
+        self['traceref'] = val
 
     @property
     def tracerefminus(self):
@@ -190,11 +179,11 @@ def tracerefminus(self):
         -------
         int
         """
-        return self["tracerefminus"]
+        return self['tracerefminus']
 
     @tracerefminus.setter
     def tracerefminus(self, val):
-        self["tracerefminus"] = val
+        self['tracerefminus'] = val
 
     @property
     def type(self):
@@ -215,11 +204,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def value(self):
@@ -235,11 +224,11 @@ def value(self):
         -------
         int|float
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def valueminus(self):
@@ -256,11 +245,11 @@ def valueminus(self):
         -------
         int|float
         """
-        return self["valueminus"]
+        return self['valueminus']
 
     @valueminus.setter
     def valueminus(self, val):
-        self["valueminus"] = val
+        self['valueminus'] = val
 
     @property
     def visible(self):
@@ -274,11 +263,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -293,11 +282,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -356,26 +345,24 @@ def _prop_descriptions(self):
             Sets the width (in px) of the cross-bar at both ends of
             the error bars.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        array=None,
-        arrayminus=None,
-        arrayminussrc=None,
-        arraysrc=None,
-        color=None,
-        symmetric=None,
-        thickness=None,
-        traceref=None,
-        tracerefminus=None,
-        type=None,
-        value=None,
-        valueminus=None,
-        visible=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            array=None,
+            arrayminus=None,
+            arrayminussrc=None,
+            arraysrc=None,
+            color=None,
+            symmetric=None,
+            thickness=None,
+            traceref=None,
+            tracerefminus=None,
+            type=None,
+            value=None,
+            valueminus=None,
+            visible=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new ErrorY object
 
@@ -443,9 +430,9 @@ def __init__(
         -------
         ErrorY
         """
-        super().__init__("error_y")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('error_y')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -455,29 +442,29 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.ErrorY
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.ErrorY`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("array", arg, array)
-        self._set_property("arrayminus", arg, arrayminus)
-        self._set_property("arrayminussrc", arg, arrayminussrc)
-        self._set_property("arraysrc", arg, arraysrc)
-        self._set_property("color", arg, color)
-        self._set_property("symmetric", arg, symmetric)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("traceref", arg, traceref)
-        self._set_property("tracerefminus", arg, tracerefminus)
-        self._set_property("type", arg, type)
-        self._set_property("value", arg, value)
-        self._set_property("valueminus", arg, valueminus)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.scattergl.ErrorY`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('array', arg, array)
+        self._set_property('arrayminus', arg, arrayminus)
+        self._set_property('arrayminussrc', arg, arrayminussrc)
+        self._set_property('arraysrc', arg, arraysrc)
+        self._set_property('color', arg, color)
+        self._set_property('symmetric', arg, symmetric)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('traceref', arg, traceref)
+        self._set_property('tracerefminus', arg, tracerefminus)
+        self._set_property('type', arg, type)
+        self._set_property('value', arg, value)
+        self._set_property('valueminus', arg, valueminus)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/_hoverlabel.py b/plotly/graph_objs/scattergl/_hoverlabel.py
index 0caa4ab7fe9..6c85081bb0e 100644
--- a/plotly/graph_objs/scattergl/_hoverlabel.py
+++ b/plotly/graph_objs/scattergl/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl"
-    _path_str = "scattergl.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'scattergl'
+    _path_str = 'scattergl.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.scattergl.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.scattergl.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/_legendgrouptitle.py b/plotly/graph_objs/scattergl/_legendgrouptitle.py
index 916787fdef1..7e54a2606c6 100644
--- a/plotly/graph_objs/scattergl/_legendgrouptitle.py
+++ b/plotly/graph_objs/scattergl/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl"
-    _path_str = "scattergl.legendgrouptitle"
+    _parent_path_str = 'scattergl'
+    _path_str = 'scattergl.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scattergl.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergl.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/_line.py b/plotly/graph_objs/scattergl/_line.py
index 013c115e95f..a35824d4c7b 100644
--- a/plotly/graph_objs/scattergl/_line.py
+++ b/plotly/graph_objs/scattergl/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl"
-    _path_str = "scattergl.line"
+    _parent_path_str = 'scattergl'
+    _path_str = 'scattergl.line'
     _valid_props = {"color", "dash", "shape", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -47,11 +51,11 @@ def dash(self):
         -------
         Any
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def shape(self):
@@ -67,11 +71,11 @@ def shape(self):
         -------
         Any
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def width(self):
@@ -85,11 +89,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -104,10 +108,14 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(
-        self, arg=None, color=None, dash=None, shape=None, width=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dash=None,
+            shape=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -131,9 +139,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -143,19 +151,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergl.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("shape", arg, shape)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('shape', arg, shape)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/_marker.py b/plotly/graph_objs/scattergl/_marker.py
index 2b4861660af..81fe54ac44a 100644
--- a/plotly/graph_objs/scattergl/_marker.py
+++ b/plotly/graph_objs/scattergl/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,34 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl"
-    _path_str = "scattergl.marker"
-    _valid_props = {
-        "angle",
-        "anglesrc",
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "line",
-        "opacity",
-        "opacitysrc",
-        "reversescale",
-        "showscale",
-        "size",
-        "sizemin",
-        "sizemode",
-        "sizeref",
-        "sizesrc",
-        "symbol",
-        "symbolsrc",
-    }
+    _parent_path_str = 'scattergl'
+    _path_str = 'scattergl.marker'
+    _valid_props = {"angle", "anglesrc", "autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "line", "opacity", "opacitysrc", "reversescale", "showscale", "size", "sizemin", "sizemode", "sizeref", "sizesrc", "symbol", "symbolsrc"}
 
     @property
     def angle(self):
@@ -50,11 +29,11 @@ def angle(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["angle"]
+        return self['angle']
 
     @angle.setter
     def angle(self, val):
-        self["angle"] = val
+        self['angle'] = val
 
     @property
     def anglesrc(self):
@@ -68,11 +47,11 @@ def anglesrc(self):
         -------
         str
         """
-        return self["anglesrc"]
+        return self['anglesrc']
 
     @anglesrc.setter
     def anglesrc(self, val):
-        self["anglesrc"] = val
+        self['anglesrc'] = val
 
     @property
     def autocolorscale(self):
@@ -92,11 +71,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -115,11 +94,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -136,11 +115,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -158,11 +137,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -179,11 +158,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -207,11 +186,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -232,11 +211,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -251,11 +230,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.scattergl.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -303,11 +282,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -321,11 +300,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def line(self):
@@ -340,11 +319,11 @@ def line(self):
         -------
         plotly.graph_objs.scattergl.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def opacity(self):
@@ -359,11 +338,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -377,11 +356,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def reversescale(self):
@@ -398,11 +377,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -418,11 +397,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def size(self):
@@ -437,11 +416,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizemin(self):
@@ -457,11 +436,11 @@ def sizemin(self):
         -------
         int|float
         """
-        return self["sizemin"]
+        return self['sizemin']
 
     @sizemin.setter
     def sizemin(self, val):
-        self["sizemin"] = val
+        self['sizemin'] = val
 
     @property
     def sizemode(self):
@@ -478,11 +457,11 @@ def sizemode(self):
         -------
         Any
         """
-        return self["sizemode"]
+        return self['sizemode']
 
     @sizemode.setter
     def sizemode(self, val):
-        self["sizemode"] = val
+        self['sizemode'] = val
 
     @property
     def sizeref(self):
@@ -498,11 +477,11 @@ def sizeref(self):
         -------
         int|float
         """
-        return self["sizeref"]
+        return self['sizeref']
 
     @sizeref.setter
     def sizeref(self, val):
-        self["sizeref"] = val
+        self['sizeref'] = val
 
     @property
     def sizesrc(self):
@@ -516,11 +495,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def symbol(self):
@@ -627,11 +606,11 @@ def symbol(self):
         -------
         Any|numpy.ndarray
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def symbolsrc(self):
@@ -645,11 +624,11 @@ def symbolsrc(self):
         -------
         str
         """
-        return self["symbolsrc"]
+        return self['symbolsrc']
 
     @symbolsrc.setter
     def symbolsrc(self, val):
-        self["symbolsrc"] = val
+        self['symbolsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -771,36 +750,34 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `symbol`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        angle=None,
-        anglesrc=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        line=None,
-        opacity=None,
-        opacitysrc=None,
-        reversescale=None,
-        showscale=None,
-        size=None,
-        sizemin=None,
-        sizemode=None,
-        sizeref=None,
-        sizesrc=None,
-        symbol=None,
-        symbolsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            angle=None,
+            anglesrc=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            line=None,
+            opacity=None,
+            opacitysrc=None,
+            reversescale=None,
+            showscale=None,
+            size=None,
+            sizemin=None,
+            sizemode=None,
+            sizeref=None,
+            sizesrc=None,
+            symbol=None,
+            symbolsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -931,9 +908,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -943,39 +920,39 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("angle", arg, angle)
-        self._set_property("anglesrc", arg, anglesrc)
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("line", arg, line)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("size", arg, size)
-        self._set_property("sizemin", arg, sizemin)
-        self._set_property("sizemode", arg, sizemode)
-        self._set_property("sizeref", arg, sizeref)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("symbol", arg, symbol)
-        self._set_property("symbolsrc", arg, symbolsrc)
+an instance of :class:`plotly.graph_objs.scattergl.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('angle', arg, angle)
+        self._set_property('anglesrc', arg, anglesrc)
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('line', arg, line)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('size', arg, size)
+        self._set_property('sizemin', arg, sizemin)
+        self._set_property('sizemode', arg, sizemode)
+        self._set_property('sizeref', arg, sizeref)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('symbol', arg, symbol)
+        self._set_property('symbolsrc', arg, symbolsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/_selected.py b/plotly/graph_objs/scattergl/_selected.py
index f1a97da88da..8f2d4a248d9 100644
--- a/plotly/graph_objs/scattergl/_selected.py
+++ b/plotly/graph_objs/scattergl/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl"
-    _path_str = "scattergl.selected"
+    _parent_path_str = 'scattergl'
+    _path_str = 'scattergl.selected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattergl.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scattergl.selected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scattergl.selected.Textfon
             t` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergl.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/_stream.py b/plotly/graph_objs/scattergl/_stream.py
index 76ec5afd1ff..4b5ec0f16aa 100644
--- a/plotly/graph_objs/scattergl/_stream.py
+++ b/plotly/graph_objs/scattergl/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl"
-    _path_str = "scattergl.stream"
+    _parent_path_str = 'scattergl'
+    _path_str = 'scattergl.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergl.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/_textfont.py b/plotly/graph_objs/scattergl/_textfont.py
index e7fc1cbd63c..30cc7755125 100644
--- a/plotly/graph_objs/scattergl/_textfont.py
+++ b/plotly/graph_objs/scattergl/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl"
-    _path_str = "scattergl.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scattergl'
+    _path_str = 'scattergl.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "size", "sizesrc", "style", "stylesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -39,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -57,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -80,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -98,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def size(self):
@@ -115,11 +106,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -133,11 +124,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -154,11 +145,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -172,11 +163,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def variant(self):
@@ -192,11 +183,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -210,11 +201,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -230,11 +221,11 @@ def weight(self):
         -------
         Any|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -248,11 +239,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -294,24 +285,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -364,9 +353,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -376,27 +365,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scattergl.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/_unselected.py b/plotly/graph_objs/scattergl/_unselected.py
index 02524fc047f..4f39db082b2 100644
--- a/plotly/graph_objs/scattergl/_unselected.py
+++ b/plotly/graph_objs/scattergl/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl"
-    _path_str = "scattergl.unselected"
+    _parent_path_str = 'scattergl'
+    _path_str = 'scattergl.unselected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattergl.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scattergl.unselected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scattergl.unselected.Textf
             ont` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergl.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/hoverlabel/__init__.py b/plotly/graph_objs/scattergl/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattergl/hoverlabel/__init__.py
+++ b/plotly/graph_objs/scattergl/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattergl/hoverlabel/_font.py b/plotly/graph_objs/scattergl/hoverlabel/_font.py
index e33371f02d6..500e2b92ee9 100644
--- a/plotly/graph_objs/scattergl/hoverlabel/_font.py
+++ b/plotly/graph_objs/scattergl/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl.hoverlabel"
-    _path_str = "scattergl.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scattergl.hoverlabel'
+    _path_str = 'scattergl.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scattergl.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/legendgrouptitle/__init__.py b/plotly/graph_objs/scattergl/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattergl/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/scattergl/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattergl/legendgrouptitle/_font.py b/plotly/graph_objs/scattergl/legendgrouptitle/_font.py
index 71e06dbe752..bbd64de2735 100644
--- a/plotly/graph_objs/scattergl/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/scattergl/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl.legendgrouptitle"
-    _path_str = "scattergl.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattergl.legendgrouptitle'
+    _path_str = 'scattergl.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattergl.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/marker/__init__.py b/plotly/graph_objs/scattergl/marker/__init__.py
index ff536ec8b25..60bb7edb6d5 100644
--- a/plotly/graph_objs/scattergl/marker/__init__.py
+++ b/plotly/graph_objs/scattergl/marker/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._line import Line
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".colorbar"], ["._colorbar.ColorBar", "._line.Line"]
-)
diff --git a/plotly/graph_objs/scattergl/marker/_colorbar.py b/plotly/graph_objs/scattergl/marker/_colorbar.py
index 33aa6ff92da..18fabd8c7d3 100644
--- a/plotly/graph_objs/scattergl/marker/_colorbar.py
+++ b/plotly/graph_objs/scattergl/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl.marker"
-    _path_str = "scattergl.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'scattergl.marker'
+    _path_str = 'scattergl.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.scattergl.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.scattergl.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.scattergl.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.scattergl.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.scattergl.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/marker/_line.py b/plotly/graph_objs/scattergl/marker/_line.py
index 862c23f0f4f..e3f73d12cde 100644
--- a/plotly/graph_objs/scattergl/marker/_line.py
+++ b/plotly/graph_objs/scattergl/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl.marker"
-    _path_str = "scattergl.marker.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorscale",
-        "colorsrc",
-        "reversescale",
-        "width",
-        "widthsrc",
-    }
+    _parent_path_str = 'scattergl.marker'
+    _path_str = 'scattergl.marker.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorscale", "colorsrc", "reversescale", "width", "widthsrc"}
 
     @property
     def autocolorscale(self):
@@ -42,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -65,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -86,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -109,11 +100,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -130,11 +121,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -158,11 +149,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -183,11 +174,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorscale(self):
@@ -236,11 +227,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -254,11 +245,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def reversescale(self):
@@ -276,11 +267,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def width(self):
@@ -295,11 +286,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -313,11 +304,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -401,24 +392,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorscale=None,
-        colorsrc=None,
-        reversescale=None,
-        width=None,
-        widthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorscale=None,
+            colorsrc=None,
+            reversescale=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -511,9 +500,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -523,27 +512,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.marker.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+an instance of :class:`plotly.graph_objs.scattergl.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/marker/colorbar/__init__.py b/plotly/graph_objs/scattergl/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/scattergl/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/scattergl/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/scattergl/marker/colorbar/_tickfont.py b/plotly/graph_objs/scattergl/marker/colorbar/_tickfont.py
index 2510ee3ecda..7cc18a06a7a 100644
--- a/plotly/graph_objs/scattergl/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/scattergl/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl.marker.colorbar"
-    _path_str = "scattergl.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattergl.marker.colorbar'
+    _path_str = 'scattergl.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattergl.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/scattergl/marker/colorbar/_tickformatstop.py
index ddf5d0ac5f2..992cae630e4 100644
--- a/plotly/graph_objs/scattergl/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/scattergl/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl.marker.colorbar"
-    _path_str = "scattergl.marker.colorbar.tickformatstop"
+    _parent_path_str = 'scattergl.marker.colorbar'
+    _path_str = 'scattergl.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergl.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/marker/colorbar/_title.py b/plotly/graph_objs/scattergl/marker/colorbar/_title.py
index 51badd91a30..81c86aa421e 100644
--- a/plotly/graph_objs/scattergl/marker/colorbar/_title.py
+++ b/plotly/graph_objs/scattergl/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl.marker.colorbar"
-    _path_str = "scattergl.marker.colorbar.title"
+    _parent_path_str = 'scattergl.marker.colorbar'
+    _path_str = 'scattergl.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scattergl.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergl.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/marker/colorbar/title/__init__.py b/plotly/graph_objs/scattergl/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattergl/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/scattergl/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattergl/marker/colorbar/title/_font.py b/plotly/graph_objs/scattergl/marker/colorbar/title/_font.py
index 8b1ec88e797..f04bf725967 100644
--- a/plotly/graph_objs/scattergl/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/scattergl/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl.marker.colorbar.title"
-    _path_str = "scattergl.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattergl.marker.colorbar.title'
+    _path_str = 'scattergl.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattergl.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/selected/__init__.py b/plotly/graph_objs/scattergl/selected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/scattergl/selected/__init__.py
+++ b/plotly/graph_objs/scattergl/selected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/scattergl/selected/_marker.py b/plotly/graph_objs/scattergl/selected/_marker.py
index 36978eb840c..bd9adab5382 100644
--- a/plotly/graph_objs/scattergl/selected/_marker.py
+++ b/plotly/graph_objs/scattergl/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl.selected"
-    _path_str = "scattergl.selected.marker"
+    _parent_path_str = 'scattergl.selected'
+    _path_str = 'scattergl.selected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         size
             Sets the marker size of selected points.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergl.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/selected/_textfont.py b/plotly/graph_objs/scattergl/selected/_textfont.py
index 57e3b59aa4e..e4bead330f3 100644
--- a/plotly/graph_objs/scattergl/selected/_textfont.py
+++ b/plotly/graph_objs/scattergl/selected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl.selected"
-    _path_str = "scattergl.selected.textfont"
+    _parent_path_str = 'scattergl.selected'
+    _path_str = 'scattergl.selected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -39,8 +43,11 @@ def _prop_descriptions(self):
         color
             Sets the text font color of selected points.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -57,9 +64,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -69,16 +76,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.selected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.selected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergl.selected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/unselected/__init__.py b/plotly/graph_objs/scattergl/unselected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/scattergl/unselected/__init__.py
+++ b/plotly/graph_objs/scattergl/unselected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/scattergl/unselected/_marker.py b/plotly/graph_objs/scattergl/unselected/_marker.py
index 6f44c3a35e5..c4d4a23a2da 100644
--- a/plotly/graph_objs/scattergl/unselected/_marker.py
+++ b/plotly/graph_objs/scattergl/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl.unselected"
-    _path_str = "scattergl.unselected.marker"
+    _parent_path_str = 'scattergl.unselected'
+    _path_str = 'scattergl.unselected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -47,11 +51,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -66,11 +70,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
             Sets the marker size of unselected points, applied only
             when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergl.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattergl/unselected/_textfont.py b/plotly/graph_objs/scattergl/unselected/_textfont.py
index fb7a2a63032..170604a0610 100644
--- a/plotly/graph_objs/scattergl/unselected/_textfont.py
+++ b/plotly/graph_objs/scattergl/unselected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattergl.unselected"
-    _path_str = "scattergl.unselected.textfont"
+    _parent_path_str = 'scattergl.unselected'
+    _path_str = 'scattergl.unselected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -41,8 +45,11 @@ def _prop_descriptions(self):
             Sets the text font color of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -60,9 +67,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -72,16 +79,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattergl.unselected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattergl.unselected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scattergl.unselected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/__init__.py b/plotly/graph_objs/scattermap/__init__.py
index b1056d2ce46..dc08dfdaa14 100644
--- a/plotly/graph_objs/scattermap/__init__.py
+++ b/plotly/graph_objs/scattermap/__init__.py
@@ -1,18 +1,26 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._cluster import Cluster
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._marker import Marker
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._unselected import Unselected
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._cluster.Cluster', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._marker.Marker', '._selected.Selected', '._stream.Stream', '._textfont.Textfont', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".selected", ".unselected"],
-    [
-        "._cluster.Cluster",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._marker.Marker",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/scattermap/_cluster.py b/plotly/graph_objs/scattermap/_cluster.py
index 154b3b60de0..c7adc57e291 100644
--- a/plotly/graph_objs/scattermap/_cluster.py
+++ b/plotly/graph_objs/scattermap/_cluster.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,20 +11,9 @@
 
 class Cluster(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap"
-    _path_str = "scattermap.cluster"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "enabled",
-        "maxzoom",
-        "opacity",
-        "opacitysrc",
-        "size",
-        "sizesrc",
-        "step",
-        "stepsrc",
-    }
+    _parent_path_str = 'scattermap'
+    _path_str = 'scattermap.cluster'
+    _valid_props = {"color", "colorsrc", "enabled", "maxzoom", "opacity", "opacitysrc", "size", "sizesrc", "step", "stepsrc"}
 
     @property
     def color(self):
@@ -39,11 +32,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -57,11 +50,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def enabled(self):
@@ -75,11 +68,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def maxzoom(self):
@@ -94,11 +87,11 @@ def maxzoom(self):
         -------
         int|float
         """
-        return self["maxzoom"]
+        return self['maxzoom']
 
     @maxzoom.setter
     def maxzoom(self, val):
-        self["maxzoom"] = val
+        self['maxzoom'] = val
 
     @property
     def opacity(self):
@@ -113,11 +106,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -131,11 +124,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def size(self):
@@ -150,11 +143,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -168,11 +161,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def step(self):
@@ -191,11 +184,11 @@ def step(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["step"]
+        return self['step']
 
     @step.setter
     def step(self, val):
-        self["step"] = val
+        self['step'] = val
 
     @property
     def stepsrc(self):
@@ -209,11 +202,11 @@ def stepsrc(self):
         -------
         str
         """
-        return self["stepsrc"]
+        return self['stepsrc']
 
     @stepsrc.setter
     def stepsrc(self, val):
-        self["stepsrc"] = val
+        self['stepsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -249,22 +242,20 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `step`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        enabled=None,
-        maxzoom=None,
-        opacity=None,
-        opacitysrc=None,
-        size=None,
-        sizesrc=None,
-        step=None,
-        stepsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            enabled=None,
+            maxzoom=None,
+            opacity=None,
+            opacitysrc=None,
+            size=None,
+            sizesrc=None,
+            step=None,
+            stepsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Cluster object
 
@@ -309,9 +300,9 @@ def __init__(
         -------
         Cluster
         """
-        super().__init__("cluster")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('cluster')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -321,25 +312,25 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.Cluster
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.Cluster`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("maxzoom", arg, maxzoom)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("step", arg, step)
-        self._set_property("stepsrc", arg, stepsrc)
+an instance of :class:`plotly.graph_objs.scattermap.Cluster`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('maxzoom', arg, maxzoom)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('step', arg, step)
+        self._set_property('stepsrc', arg, stepsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/_hoverlabel.py b/plotly/graph_objs/scattermap/_hoverlabel.py
index 4e6a7017657..9a511e52a20 100644
--- a/plotly/graph_objs/scattermap/_hoverlabel.py
+++ b/plotly/graph_objs/scattermap/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap"
-    _path_str = "scattermap.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'scattermap'
+    _path_str = 'scattermap.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.scattermap.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.scattermap.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/_legendgrouptitle.py b/plotly/graph_objs/scattermap/_legendgrouptitle.py
index 5db1684911c..f5a13bd1661 100644
--- a/plotly/graph_objs/scattermap/_legendgrouptitle.py
+++ b/plotly/graph_objs/scattermap/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap"
-    _path_str = "scattermap.legendgrouptitle"
+    _parent_path_str = 'scattermap'
+    _path_str = 'scattermap.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scattermap.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermap.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/_line.py b/plotly/graph_objs/scattermap/_line.py
index 8d1c8127b63..ba536975a58 100644
--- a/plotly/graph_objs/scattermap/_line.py
+++ b/plotly/graph_objs/scattermap/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap"
-    _path_str = "scattermap.line"
+    _parent_path_str = 'scattermap'
+    _path_str = 'scattermap.line'
     _valid_props = {"color", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def width(self):
@@ -45,11 +49,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(self, arg=None, color=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermap.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/_marker.py b/plotly/graph_objs/scattermap/_marker.py
index 904c9867e19..75efec79117 100644
--- a/plotly/graph_objs/scattermap/_marker.py
+++ b/plotly/graph_objs/scattermap/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,34 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap"
-    _path_str = "scattermap.marker"
-    _valid_props = {
-        "allowoverlap",
-        "angle",
-        "anglesrc",
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "opacity",
-        "opacitysrc",
-        "reversescale",
-        "showscale",
-        "size",
-        "sizemin",
-        "sizemode",
-        "sizeref",
-        "sizesrc",
-        "symbol",
-        "symbolsrc",
-    }
+    _parent_path_str = 'scattermap'
+    _path_str = 'scattermap.marker'
+    _valid_props = {"allowoverlap", "angle", "anglesrc", "autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "opacity", "opacitysrc", "reversescale", "showscale", "size", "sizemin", "sizemode", "sizeref", "sizesrc", "symbol", "symbolsrc"}
 
     @property
     def allowoverlap(self):
@@ -48,11 +27,11 @@ def allowoverlap(self):
         -------
         bool
         """
-        return self["allowoverlap"]
+        return self['allowoverlap']
 
     @allowoverlap.setter
     def allowoverlap(self, val):
-        self["allowoverlap"] = val
+        self['allowoverlap'] = val
 
     @property
     def angle(self):
@@ -70,11 +49,11 @@ def angle(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["angle"]
+        return self['angle']
 
     @angle.setter
     def angle(self, val):
-        self["angle"] = val
+        self['angle'] = val
 
     @property
     def anglesrc(self):
@@ -88,11 +67,11 @@ def anglesrc(self):
         -------
         str
         """
-        return self["anglesrc"]
+        return self['anglesrc']
 
     @anglesrc.setter
     def anglesrc(self, val):
-        self["anglesrc"] = val
+        self['anglesrc'] = val
 
     @property
     def autocolorscale(self):
@@ -112,11 +91,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -135,11 +114,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -156,11 +135,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -178,11 +157,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -199,11 +178,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -227,11 +206,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -252,11 +231,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -271,11 +250,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.scattermap.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -323,11 +302,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -341,11 +320,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def opacity(self):
@@ -360,11 +339,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -378,11 +357,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def reversescale(self):
@@ -399,11 +378,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -419,11 +398,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def size(self):
@@ -438,11 +417,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizemin(self):
@@ -458,11 +437,11 @@ def sizemin(self):
         -------
         int|float
         """
-        return self["sizemin"]
+        return self['sizemin']
 
     @sizemin.setter
     def sizemin(self, val):
-        self["sizemin"] = val
+        self['sizemin'] = val
 
     @property
     def sizemode(self):
@@ -479,11 +458,11 @@ def sizemode(self):
         -------
         Any
         """
-        return self["sizemode"]
+        return self['sizemode']
 
     @sizemode.setter
     def sizemode(self, val):
-        self["sizemode"] = val
+        self['sizemode'] = val
 
     @property
     def sizeref(self):
@@ -499,11 +478,11 @@ def sizeref(self):
         -------
         int|float
         """
-        return self["sizeref"]
+        return self['sizeref']
 
     @sizeref.setter
     def sizeref(self, val):
-        self["sizeref"] = val
+        self['sizeref'] = val
 
     @property
     def sizesrc(self):
@@ -517,11 +496,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def symbol(self):
@@ -539,11 +518,11 @@ def symbol(self):
         -------
         str|numpy.ndarray
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def symbolsrc(self):
@@ -557,11 +536,11 @@ def symbolsrc(self):
         -------
         str
         """
-        return self["symbolsrc"]
+        return self['symbolsrc']
 
     @symbolsrc.setter
     def symbolsrc(self, val):
-        self["symbolsrc"] = val
+        self['symbolsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -684,36 +663,34 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `symbol`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        allowoverlap=None,
-        angle=None,
-        anglesrc=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        opacity=None,
-        opacitysrc=None,
-        reversescale=None,
-        showscale=None,
-        size=None,
-        sizemin=None,
-        sizemode=None,
-        sizeref=None,
-        sizesrc=None,
-        symbol=None,
-        symbolsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            allowoverlap=None,
+            angle=None,
+            anglesrc=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            opacity=None,
+            opacitysrc=None,
+            reversescale=None,
+            showscale=None,
+            size=None,
+            sizemin=None,
+            sizemode=None,
+            sizeref=None,
+            sizesrc=None,
+            symbol=None,
+            symbolsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -845,9 +822,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -857,39 +834,39 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("allowoverlap", arg, allowoverlap)
-        self._set_property("angle", arg, angle)
-        self._set_property("anglesrc", arg, anglesrc)
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("size", arg, size)
-        self._set_property("sizemin", arg, sizemin)
-        self._set_property("sizemode", arg, sizemode)
-        self._set_property("sizeref", arg, sizeref)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("symbol", arg, symbol)
-        self._set_property("symbolsrc", arg, symbolsrc)
+an instance of :class:`plotly.graph_objs.scattermap.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('allowoverlap', arg, allowoverlap)
+        self._set_property('angle', arg, angle)
+        self._set_property('anglesrc', arg, anglesrc)
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('size', arg, size)
+        self._set_property('sizemin', arg, sizemin)
+        self._set_property('sizemode', arg, sizemode)
+        self._set_property('sizeref', arg, sizeref)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('symbol', arg, symbol)
+        self._set_property('symbolsrc', arg, symbolsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/_selected.py b/plotly/graph_objs/scattermap/_selected.py
index bf88cb4c85a..78a868c8d8e 100644
--- a/plotly/graph_objs/scattermap/_selected.py
+++ b/plotly/graph_objs/scattermap/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap"
-    _path_str = "scattermap.selected"
+    _parent_path_str = 'scattermap'
+    _path_str = 'scattermap.selected'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattermap.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scattermap.selected.Marker
             ` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermap.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/_stream.py b/plotly/graph_objs/scattermap/_stream.py
index 9fbd73879aa..5c4027fbe2b 100644
--- a/plotly/graph_objs/scattermap/_stream.py
+++ b/plotly/graph_objs/scattermap/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap"
-    _path_str = "scattermap.stream"
+    _parent_path_str = 'scattermap'
+    _path_str = 'scattermap.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermap.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/_textfont.py b/plotly/graph_objs/scattermap/_textfont.py
index 9e65b7aefb7..afcccc188af 100644
--- a/plotly/graph_objs/scattermap/_textfont.py
+++ b/plotly/graph_objs/scattermap/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap"
-    _path_str = "scattermap.textfont"
+    _parent_path_str = 'scattermap'
+    _path_str = 'scattermap.textfont'
     _valid_props = {"color", "family", "size", "style", "weight"}
 
     @property
@@ -25,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -47,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -83,11 +87,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def weight(self):
@@ -103,11 +107,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -129,17 +133,15 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        size=None,
-        style=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            size=None,
+            style=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -174,9 +176,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -186,20 +188,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermap.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("weight", arg, weight)
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/_unselected.py b/plotly/graph_objs/scattermap/_unselected.py
index bc68c4df2a5..5e36b12162b 100644
--- a/plotly/graph_objs/scattermap/_unselected.py
+++ b/plotly/graph_objs/scattermap/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap"
-    _path_str = "scattermap.unselected"
+    _parent_path_str = 'scattermap'
+    _path_str = 'scattermap.unselected'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattermap.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scattermap.unselected.Mark
             er` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermap.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/hoverlabel/__init__.py b/plotly/graph_objs/scattermap/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattermap/hoverlabel/__init__.py
+++ b/plotly/graph_objs/scattermap/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattermap/hoverlabel/_font.py b/plotly/graph_objs/scattermap/hoverlabel/_font.py
index 03de7684952..9901e71e710 100644
--- a/plotly/graph_objs/scattermap/hoverlabel/_font.py
+++ b/plotly/graph_objs/scattermap/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap.hoverlabel"
-    _path_str = "scattermap.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scattermap.hoverlabel'
+    _path_str = 'scattermap.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scattermap.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/legendgrouptitle/__init__.py b/plotly/graph_objs/scattermap/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattermap/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/scattermap/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattermap/legendgrouptitle/_font.py b/plotly/graph_objs/scattermap/legendgrouptitle/_font.py
index 7f19d536a94..d8d1738854a 100644
--- a/plotly/graph_objs/scattermap/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/scattermap/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap.legendgrouptitle"
-    _path_str = "scattermap.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattermap.legendgrouptitle'
+    _path_str = 'scattermap.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattermap.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/marker/__init__.py b/plotly/graph_objs/scattermap/marker/__init__.py
index 5e1805d8fa8..c35de683492 100644
--- a/plotly/graph_objs/scattermap/marker/__init__.py
+++ b/plotly/graph_objs/scattermap/marker/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".colorbar"], ["._colorbar.ColorBar"]
-)
diff --git a/plotly/graph_objs/scattermap/marker/_colorbar.py b/plotly/graph_objs/scattermap/marker/_colorbar.py
index 9e935b73bb9..9f987c16978 100644
--- a/plotly/graph_objs/scattermap/marker/_colorbar.py
+++ b/plotly/graph_objs/scattermap/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap.marker"
-    _path_str = "scattermap.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'scattermap.marker'
+    _path_str = 'scattermap.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.scattermap.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.scattermap.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.scattermap.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.scattermap.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.scattermap.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/marker/colorbar/__init__.py b/plotly/graph_objs/scattermap/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/scattermap/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/scattermap/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/scattermap/marker/colorbar/_tickfont.py b/plotly/graph_objs/scattermap/marker/colorbar/_tickfont.py
index da8d633f9c5..09d4bb71cb2 100644
--- a/plotly/graph_objs/scattermap/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/scattermap/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap.marker.colorbar"
-    _path_str = "scattermap.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattermap.marker.colorbar'
+    _path_str = 'scattermap.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattermap.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/scattermap/marker/colorbar/_tickformatstop.py
index c081999b084..e37531e7f83 100644
--- a/plotly/graph_objs/scattermap/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/scattermap/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap.marker.colorbar"
-    _path_str = "scattermap.marker.colorbar.tickformatstop"
+    _parent_path_str = 'scattermap.marker.colorbar'
+    _path_str = 'scattermap.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermap.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/marker/colorbar/_title.py b/plotly/graph_objs/scattermap/marker/colorbar/_title.py
index 782d34a0d83..a4cd5aca6b3 100644
--- a/plotly/graph_objs/scattermap/marker/colorbar/_title.py
+++ b/plotly/graph_objs/scattermap/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap.marker.colorbar"
-    _path_str = "scattermap.marker.colorbar.title"
+    _parent_path_str = 'scattermap.marker.colorbar'
+    _path_str = 'scattermap.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scattermap.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermap.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/marker/colorbar/title/__init__.py b/plotly/graph_objs/scattermap/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattermap/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/scattermap/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattermap/marker/colorbar/title/_font.py b/plotly/graph_objs/scattermap/marker/colorbar/title/_font.py
index f563105f3bd..bbe734ee781 100644
--- a/plotly/graph_objs/scattermap/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/scattermap/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap.marker.colorbar.title"
-    _path_str = "scattermap.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattermap.marker.colorbar.title'
+    _path_str = 'scattermap.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattermap.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/selected/__init__.py b/plotly/graph_objs/scattermap/selected/__init__.py
index 17b6d670bc4..5abe297c1ca 100644
--- a/plotly/graph_objs/scattermap/selected/__init__.py
+++ b/plotly/graph_objs/scattermap/selected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._marker.Marker"])
diff --git a/plotly/graph_objs/scattermap/selected/_marker.py b/plotly/graph_objs/scattermap/selected/_marker.py
index 43003e69a82..511415d6a90 100644
--- a/plotly/graph_objs/scattermap/selected/_marker.py
+++ b/plotly/graph_objs/scattermap/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap.selected"
-    _path_str = "scattermap.selected.marker"
+    _parent_path_str = 'scattermap.selected'
+    _path_str = 'scattermap.selected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         size
             Sets the marker size of selected points.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermap.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermap/unselected/__init__.py b/plotly/graph_objs/scattermap/unselected/__init__.py
index 17b6d670bc4..5abe297c1ca 100644
--- a/plotly/graph_objs/scattermap/unselected/__init__.py
+++ b/plotly/graph_objs/scattermap/unselected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._marker.Marker"])
diff --git a/plotly/graph_objs/scattermap/unselected/_marker.py b/plotly/graph_objs/scattermap/unselected/_marker.py
index 78bca7e1f20..54d05e4dad8 100644
--- a/plotly/graph_objs/scattermap/unselected/_marker.py
+++ b/plotly/graph_objs/scattermap/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermap.unselected"
-    _path_str = "scattermap.unselected.marker"
+    _parent_path_str = 'scattermap.unselected'
+    _path_str = 'scattermap.unselected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -47,11 +51,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -66,11 +70,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
             Sets the marker size of unselected points, applied only
             when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermap.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermap.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermap.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/__init__.py b/plotly/graph_objs/scattermapbox/__init__.py
index b1056d2ce46..dc08dfdaa14 100644
--- a/plotly/graph_objs/scattermapbox/__init__.py
+++ b/plotly/graph_objs/scattermapbox/__init__.py
@@ -1,18 +1,26 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._cluster import Cluster
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._marker import Marker
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._unselected import Unselected
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._cluster.Cluster', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._marker.Marker', '._selected.Selected', '._stream.Stream', '._textfont.Textfont', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".selected", ".unselected"],
-    [
-        "._cluster.Cluster",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._marker.Marker",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/scattermapbox/_cluster.py b/plotly/graph_objs/scattermapbox/_cluster.py
index fc0c834a7de..bb08de1026f 100644
--- a/plotly/graph_objs/scattermapbox/_cluster.py
+++ b/plotly/graph_objs/scattermapbox/_cluster.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,20 +11,9 @@
 
 class Cluster(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox"
-    _path_str = "scattermapbox.cluster"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "enabled",
-        "maxzoom",
-        "opacity",
-        "opacitysrc",
-        "size",
-        "sizesrc",
-        "step",
-        "stepsrc",
-    }
+    _parent_path_str = 'scattermapbox'
+    _path_str = 'scattermapbox.cluster'
+    _valid_props = {"color", "colorsrc", "enabled", "maxzoom", "opacity", "opacitysrc", "size", "sizesrc", "step", "stepsrc"}
 
     @property
     def color(self):
@@ -39,11 +32,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -57,11 +50,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def enabled(self):
@@ -75,11 +68,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def maxzoom(self):
@@ -94,11 +87,11 @@ def maxzoom(self):
         -------
         int|float
         """
-        return self["maxzoom"]
+        return self['maxzoom']
 
     @maxzoom.setter
     def maxzoom(self, val):
-        self["maxzoom"] = val
+        self['maxzoom'] = val
 
     @property
     def opacity(self):
@@ -113,11 +106,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -131,11 +124,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def size(self):
@@ -150,11 +143,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -168,11 +161,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def step(self):
@@ -191,11 +184,11 @@ def step(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["step"]
+        return self['step']
 
     @step.setter
     def step(self, val):
-        self["step"] = val
+        self['step'] = val
 
     @property
     def stepsrc(self):
@@ -209,11 +202,11 @@ def stepsrc(self):
         -------
         str
         """
-        return self["stepsrc"]
+        return self['stepsrc']
 
     @stepsrc.setter
     def stepsrc(self, val):
-        self["stepsrc"] = val
+        self['stepsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -249,22 +242,20 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `step`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        enabled=None,
-        maxzoom=None,
-        opacity=None,
-        opacitysrc=None,
-        size=None,
-        sizesrc=None,
-        step=None,
-        stepsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            enabled=None,
+            maxzoom=None,
+            opacity=None,
+            opacitysrc=None,
+            size=None,
+            sizesrc=None,
+            step=None,
+            stepsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Cluster object
 
@@ -309,9 +300,9 @@ def __init__(
         -------
         Cluster
         """
-        super().__init__("cluster")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('cluster')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -321,25 +312,25 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.Cluster
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.Cluster`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("maxzoom", arg, maxzoom)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("step", arg, step)
-        self._set_property("stepsrc", arg, stepsrc)
+an instance of :class:`plotly.graph_objs.scattermapbox.Cluster`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('maxzoom', arg, maxzoom)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('step', arg, step)
+        self._set_property('stepsrc', arg, stepsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/_hoverlabel.py b/plotly/graph_objs/scattermapbox/_hoverlabel.py
index 40ed235086c..ef2aab79bad 100644
--- a/plotly/graph_objs/scattermapbox/_hoverlabel.py
+++ b/plotly/graph_objs/scattermapbox/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox"
-    _path_str = "scattermapbox.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'scattermapbox'
+    _path_str = 'scattermapbox.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.scattermapbox.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.scattermapbox.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/_legendgrouptitle.py b/plotly/graph_objs/scattermapbox/_legendgrouptitle.py
index a403b8bbce8..fc27472e471 100644
--- a/plotly/graph_objs/scattermapbox/_legendgrouptitle.py
+++ b/plotly/graph_objs/scattermapbox/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox"
-    _path_str = "scattermapbox.legendgrouptitle"
+    _parent_path_str = 'scattermapbox'
+    _path_str = 'scattermapbox.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scattermapbox.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermapbox.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/_line.py b/plotly/graph_objs/scattermapbox/_line.py
index d2263597aea..c9bfa0eac88 100644
--- a/plotly/graph_objs/scattermapbox/_line.py
+++ b/plotly/graph_objs/scattermapbox/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox"
-    _path_str = "scattermapbox.line"
+    _parent_path_str = 'scattermapbox'
+    _path_str = 'scattermapbox.line'
     _valid_props = {"color", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def width(self):
@@ -45,11 +49,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(self, arg=None, color=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermapbox.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/_marker.py b/plotly/graph_objs/scattermapbox/_marker.py
index 45bcccb3684..39c3bd8707f 100644
--- a/plotly/graph_objs/scattermapbox/_marker.py
+++ b/plotly/graph_objs/scattermapbox/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,34 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox"
-    _path_str = "scattermapbox.marker"
-    _valid_props = {
-        "allowoverlap",
-        "angle",
-        "anglesrc",
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "opacity",
-        "opacitysrc",
-        "reversescale",
-        "showscale",
-        "size",
-        "sizemin",
-        "sizemode",
-        "sizeref",
-        "sizesrc",
-        "symbol",
-        "symbolsrc",
-    }
+    _parent_path_str = 'scattermapbox'
+    _path_str = 'scattermapbox.marker'
+    _valid_props = {"allowoverlap", "angle", "anglesrc", "autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "opacity", "opacitysrc", "reversescale", "showscale", "size", "sizemin", "sizemode", "sizeref", "sizesrc", "symbol", "symbolsrc"}
 
     @property
     def allowoverlap(self):
@@ -48,11 +27,11 @@ def allowoverlap(self):
         -------
         bool
         """
-        return self["allowoverlap"]
+        return self['allowoverlap']
 
     @allowoverlap.setter
     def allowoverlap(self, val):
-        self["allowoverlap"] = val
+        self['allowoverlap'] = val
 
     @property
     def angle(self):
@@ -70,11 +49,11 @@ def angle(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["angle"]
+        return self['angle']
 
     @angle.setter
     def angle(self, val):
-        self["angle"] = val
+        self['angle'] = val
 
     @property
     def anglesrc(self):
@@ -88,11 +67,11 @@ def anglesrc(self):
         -------
         str
         """
-        return self["anglesrc"]
+        return self['anglesrc']
 
     @anglesrc.setter
     def anglesrc(self, val):
-        self["anglesrc"] = val
+        self['anglesrc'] = val
 
     @property
     def autocolorscale(self):
@@ -112,11 +91,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -135,11 +114,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -156,11 +135,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -178,11 +157,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -199,11 +178,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -227,11 +206,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -252,11 +231,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -271,11 +250,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.scattermapbox.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -323,11 +302,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -341,11 +320,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def opacity(self):
@@ -360,11 +339,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -378,11 +357,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def reversescale(self):
@@ -399,11 +378,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -419,11 +398,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def size(self):
@@ -438,11 +417,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizemin(self):
@@ -458,11 +437,11 @@ def sizemin(self):
         -------
         int|float
         """
-        return self["sizemin"]
+        return self['sizemin']
 
     @sizemin.setter
     def sizemin(self, val):
-        self["sizemin"] = val
+        self['sizemin'] = val
 
     @property
     def sizemode(self):
@@ -479,11 +458,11 @@ def sizemode(self):
         -------
         Any
         """
-        return self["sizemode"]
+        return self['sizemode']
 
     @sizemode.setter
     def sizemode(self, val):
-        self["sizemode"] = val
+        self['sizemode'] = val
 
     @property
     def sizeref(self):
@@ -499,11 +478,11 @@ def sizeref(self):
         -------
         int|float
         """
-        return self["sizeref"]
+        return self['sizeref']
 
     @sizeref.setter
     def sizeref(self, val):
-        self["sizeref"] = val
+        self['sizeref'] = val
 
     @property
     def sizesrc(self):
@@ -517,11 +496,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def symbol(self):
@@ -539,11 +518,11 @@ def symbol(self):
         -------
         str|numpy.ndarray
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def symbolsrc(self):
@@ -557,11 +536,11 @@ def symbolsrc(self):
         -------
         str
         """
-        return self["symbolsrc"]
+        return self['symbolsrc']
 
     @symbolsrc.setter
     def symbolsrc(self, val):
-        self["symbolsrc"] = val
+        self['symbolsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -684,36 +663,34 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `symbol`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        allowoverlap=None,
-        angle=None,
-        anglesrc=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        opacity=None,
-        opacitysrc=None,
-        reversescale=None,
-        showscale=None,
-        size=None,
-        sizemin=None,
-        sizemode=None,
-        sizeref=None,
-        sizesrc=None,
-        symbol=None,
-        symbolsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            allowoverlap=None,
+            angle=None,
+            anglesrc=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            opacity=None,
+            opacitysrc=None,
+            reversescale=None,
+            showscale=None,
+            size=None,
+            sizemin=None,
+            sizemode=None,
+            sizeref=None,
+            sizesrc=None,
+            symbol=None,
+            symbolsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -845,9 +822,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -857,39 +834,39 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("allowoverlap", arg, allowoverlap)
-        self._set_property("angle", arg, angle)
-        self._set_property("anglesrc", arg, anglesrc)
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("size", arg, size)
-        self._set_property("sizemin", arg, sizemin)
-        self._set_property("sizemode", arg, sizemode)
-        self._set_property("sizeref", arg, sizeref)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("symbol", arg, symbol)
-        self._set_property("symbolsrc", arg, symbolsrc)
+an instance of :class:`plotly.graph_objs.scattermapbox.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('allowoverlap', arg, allowoverlap)
+        self._set_property('angle', arg, angle)
+        self._set_property('anglesrc', arg, anglesrc)
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('size', arg, size)
+        self._set_property('sizemin', arg, sizemin)
+        self._set_property('sizemode', arg, sizemode)
+        self._set_property('sizeref', arg, sizeref)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('symbol', arg, symbol)
+        self._set_property('symbolsrc', arg, symbolsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/_selected.py b/plotly/graph_objs/scattermapbox/_selected.py
index cb161c2117e..a446661955b 100644
--- a/plotly/graph_objs/scattermapbox/_selected.py
+++ b/plotly/graph_objs/scattermapbox/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox"
-    _path_str = "scattermapbox.selected"
+    _parent_path_str = 'scattermapbox'
+    _path_str = 'scattermapbox.selected'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattermapbox.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scattermapbox.selected.Mar
             ker` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermapbox.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/_stream.py b/plotly/graph_objs/scattermapbox/_stream.py
index bbecfe37c04..6cf30a1f2b7 100644
--- a/plotly/graph_objs/scattermapbox/_stream.py
+++ b/plotly/graph_objs/scattermapbox/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox"
-    _path_str = "scattermapbox.stream"
+    _parent_path_str = 'scattermapbox'
+    _path_str = 'scattermapbox.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermapbox.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/_textfont.py b/plotly/graph_objs/scattermapbox/_textfont.py
index 22c764cb110..29d222cf9e5 100644
--- a/plotly/graph_objs/scattermapbox/_textfont.py
+++ b/plotly/graph_objs/scattermapbox/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox"
-    _path_str = "scattermapbox.textfont"
+    _parent_path_str = 'scattermapbox'
+    _path_str = 'scattermapbox.textfont'
     _valid_props = {"color", "family", "size", "style", "weight"}
 
     @property
@@ -25,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -47,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -83,11 +87,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def weight(self):
@@ -103,11 +107,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -129,17 +133,15 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        size=None,
-        style=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            size=None,
+            style=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -174,9 +176,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -186,20 +188,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermapbox.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("weight", arg, weight)
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/_unselected.py b/plotly/graph_objs/scattermapbox/_unselected.py
index 95c2f12cf4e..7c8cf5c2224 100644
--- a/plotly/graph_objs/scattermapbox/_unselected.py
+++ b/plotly/graph_objs/scattermapbox/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox"
-    _path_str = "scattermapbox.unselected"
+    _parent_path_str = 'scattermapbox'
+    _path_str = 'scattermapbox.unselected'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattermapbox.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scattermapbox.unselected.M
             arker` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermapbox.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/hoverlabel/__init__.py b/plotly/graph_objs/scattermapbox/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattermapbox/hoverlabel/__init__.py
+++ b/plotly/graph_objs/scattermapbox/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattermapbox/hoverlabel/_font.py b/plotly/graph_objs/scattermapbox/hoverlabel/_font.py
index b3c92b7da6d..976b203ade4 100644
--- a/plotly/graph_objs/scattermapbox/hoverlabel/_font.py
+++ b/plotly/graph_objs/scattermapbox/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox.hoverlabel"
-    _path_str = "scattermapbox.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scattermapbox.hoverlabel'
+    _path_str = 'scattermapbox.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scattermapbox.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/legendgrouptitle/__init__.py b/plotly/graph_objs/scattermapbox/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattermapbox/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/scattermapbox/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattermapbox/legendgrouptitle/_font.py b/plotly/graph_objs/scattermapbox/legendgrouptitle/_font.py
index f457b3a8514..6bcee87a6ea 100644
--- a/plotly/graph_objs/scattermapbox/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/scattermapbox/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox.legendgrouptitle"
-    _path_str = "scattermapbox.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattermapbox.legendgrouptitle'
+    _path_str = 'scattermapbox.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattermapbox.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/marker/__init__.py b/plotly/graph_objs/scattermapbox/marker/__init__.py
index 5e1805d8fa8..c35de683492 100644
--- a/plotly/graph_objs/scattermapbox/marker/__init__.py
+++ b/plotly/graph_objs/scattermapbox/marker/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".colorbar"], ["._colorbar.ColorBar"]
-)
diff --git a/plotly/graph_objs/scattermapbox/marker/_colorbar.py b/plotly/graph_objs/scattermapbox/marker/_colorbar.py
index 5ddf0f4da42..da727d65408 100644
--- a/plotly/graph_objs/scattermapbox/marker/_colorbar.py
+++ b/plotly/graph_objs/scattermapbox/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox.marker"
-    _path_str = "scattermapbox.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'scattermapbox.marker'
+    _path_str = 'scattermapbox.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.scattermapbox.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.scattermapbox.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.scattermapbox.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.scattermapbox.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.scattermapbox.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/marker/colorbar/__init__.py b/plotly/graph_objs/scattermapbox/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/scattermapbox/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/scattermapbox/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/scattermapbox/marker/colorbar/_tickfont.py b/plotly/graph_objs/scattermapbox/marker/colorbar/_tickfont.py
index 43b9e7c5f93..f2fa647a0ce 100644
--- a/plotly/graph_objs/scattermapbox/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/scattermapbox/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox.marker.colorbar"
-    _path_str = "scattermapbox.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattermapbox.marker.colorbar'
+    _path_str = 'scattermapbox.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattermapbox.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/scattermapbox/marker/colorbar/_tickformatstop.py
index 9938d321e2a..c1d86ef5c3b 100644
--- a/plotly/graph_objs/scattermapbox/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/scattermapbox/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox.marker.colorbar"
-    _path_str = "scattermapbox.marker.colorbar.tickformatstop"
+    _parent_path_str = 'scattermapbox.marker.colorbar'
+    _path_str = 'scattermapbox.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermapbox.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/marker/colorbar/_title.py b/plotly/graph_objs/scattermapbox/marker/colorbar/_title.py
index 23a73ff4e59..0f0d284c110 100644
--- a/plotly/graph_objs/scattermapbox/marker/colorbar/_title.py
+++ b/plotly/graph_objs/scattermapbox/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox.marker.colorbar"
-    _path_str = "scattermapbox.marker.colorbar.title"
+    _parent_path_str = 'scattermapbox.marker.colorbar'
+    _path_str = 'scattermapbox.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scattermapbox.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermapbox.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/marker/colorbar/title/__init__.py b/plotly/graph_objs/scattermapbox/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattermapbox/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/scattermapbox/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattermapbox/marker/colorbar/title/_font.py b/plotly/graph_objs/scattermapbox/marker/colorbar/title/_font.py
index ff7ae43cb42..295e11eb734 100644
--- a/plotly/graph_objs/scattermapbox/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/scattermapbox/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox.marker.colorbar.title"
-    _path_str = "scattermapbox.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattermapbox.marker.colorbar.title'
+    _path_str = 'scattermapbox.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattermapbox.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/selected/__init__.py b/plotly/graph_objs/scattermapbox/selected/__init__.py
index 17b6d670bc4..5abe297c1ca 100644
--- a/plotly/graph_objs/scattermapbox/selected/__init__.py
+++ b/plotly/graph_objs/scattermapbox/selected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._marker.Marker"])
diff --git a/plotly/graph_objs/scattermapbox/selected/_marker.py b/plotly/graph_objs/scattermapbox/selected/_marker.py
index ad01ff1a76e..cc60dd1b45a 100644
--- a/plotly/graph_objs/scattermapbox/selected/_marker.py
+++ b/plotly/graph_objs/scattermapbox/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox.selected"
-    _path_str = "scattermapbox.selected.marker"
+    _parent_path_str = 'scattermapbox.selected'
+    _path_str = 'scattermapbox.selected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         size
             Sets the marker size of selected points.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermapbox.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattermapbox/unselected/__init__.py b/plotly/graph_objs/scattermapbox/unselected/__init__.py
index 17b6d670bc4..5abe297c1ca 100644
--- a/plotly/graph_objs/scattermapbox/unselected/__init__.py
+++ b/plotly/graph_objs/scattermapbox/unselected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._marker.Marker"])
diff --git a/plotly/graph_objs/scattermapbox/unselected/_marker.py b/plotly/graph_objs/scattermapbox/unselected/_marker.py
index d7570b5dad5..02fbf9f0ca0 100644
--- a/plotly/graph_objs/scattermapbox/unselected/_marker.py
+++ b/plotly/graph_objs/scattermapbox/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattermapbox.unselected"
-    _path_str = "scattermapbox.unselected.marker"
+    _parent_path_str = 'scattermapbox.unselected'
+    _path_str = 'scattermapbox.unselected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -47,11 +51,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -66,11 +70,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
             Sets the marker size of unselected points, applied only
             when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattermapbox.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattermapbox.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scattermapbox.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/__init__.py b/plotly/graph_objs/scatterpolar/__init__.py
index 7cc31d4831a..9103ab10864 100644
--- a/plotly/graph_objs/scatterpolar/__init__.py
+++ b/plotly/graph_objs/scatterpolar/__init__.py
@@ -1,17 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._marker import Marker
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._unselected import Unselected
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._marker.Marker', '._selected.Selected', '._stream.Stream', '._textfont.Textfont', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".selected", ".unselected"],
-    [
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._marker.Marker",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/scatterpolar/_hoverlabel.py b/plotly/graph_objs/scatterpolar/_hoverlabel.py
index 0d77fa8c1d2..aafdfb737ff 100644
--- a/plotly/graph_objs/scatterpolar/_hoverlabel.py
+++ b/plotly/graph_objs/scatterpolar/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar"
-    _path_str = "scatterpolar.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'scatterpolar'
+    _path_str = 'scatterpolar.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.scatterpolar.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.scatterpolar.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/_legendgrouptitle.py b/plotly/graph_objs/scatterpolar/_legendgrouptitle.py
index 7f94eb8786e..6e70e4eb4b2 100644
--- a/plotly/graph_objs/scatterpolar/_legendgrouptitle.py
+++ b/plotly/graph_objs/scatterpolar/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar"
-    _path_str = "scatterpolar.legendgrouptitle"
+    _parent_path_str = 'scatterpolar'
+    _path_str = 'scatterpolar.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scatterpolar.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolar.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/_line.py b/plotly/graph_objs/scatterpolar/_line.py
index 0918f977048..bf5c1da5c66 100644
--- a/plotly/graph_objs/scatterpolar/_line.py
+++ b/plotly/graph_objs/scatterpolar/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,17 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar"
-    _path_str = "scatterpolar.line"
-    _valid_props = {
-        "backoff",
-        "backoffsrc",
-        "color",
-        "dash",
-        "shape",
-        "smoothing",
-        "width",
-    }
+    _parent_path_str = 'scatterpolar'
+    _path_str = 'scatterpolar.line'
+    _valid_props = {"backoff", "backoffsrc", "color", "dash", "shape", "smoothing", "width"}
 
     @property
     def backoff(self):
@@ -35,11 +31,11 @@ def backoff(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["backoff"]
+        return self['backoff']
 
     @backoff.setter
     def backoff(self, val):
-        self["backoff"] = val
+        self['backoff'] = val
 
     @property
     def backoffsrc(self):
@@ -53,11 +49,11 @@ def backoffsrc(self):
         -------
         str
         """
-        return self["backoffsrc"]
+        return self['backoffsrc']
 
     @backoffsrc.setter
     def backoffsrc(self, val):
-        self["backoffsrc"] = val
+        self['backoffsrc'] = val
 
     @property
     def color(self):
@@ -75,11 +71,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -99,11 +95,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def shape(self):
@@ -120,11 +116,11 @@ def shape(self):
         -------
         Any
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def smoothing(self):
@@ -140,11 +136,11 @@ def smoothing(self):
         -------
         int|float
         """
-        return self["smoothing"]
+        return self['smoothing']
 
     @smoothing.setter
     def smoothing(self, val):
-        self["smoothing"] = val
+        self['smoothing'] = val
 
     @property
     def width(self):
@@ -158,11 +154,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -194,19 +190,17 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        backoff=None,
-        backoffsrc=None,
-        color=None,
-        dash=None,
-        shape=None,
-        smoothing=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            backoff=None,
+            backoffsrc=None,
+            color=None,
+            dash=None,
+            shape=None,
+            smoothing=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -247,9 +241,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -259,22 +253,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("backoff", arg, backoff)
-        self._set_property("backoffsrc", arg, backoffsrc)
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("shape", arg, shape)
-        self._set_property("smoothing", arg, smoothing)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.scatterpolar.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('backoff', arg, backoff)
+        self._set_property('backoffsrc', arg, backoffsrc)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('shape', arg, shape)
+        self._set_property('smoothing', arg, smoothing)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/_marker.py b/plotly/graph_objs/scatterpolar/_marker.py
index 918172b9a9b..dd4a5fd630f 100644
--- a/plotly/graph_objs/scatterpolar/_marker.py
+++ b/plotly/graph_objs/scatterpolar/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,39 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar"
-    _path_str = "scatterpolar.marker"
-    _valid_props = {
-        "angle",
-        "angleref",
-        "anglesrc",
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "gradient",
-        "line",
-        "maxdisplayed",
-        "opacity",
-        "opacitysrc",
-        "reversescale",
-        "showscale",
-        "size",
-        "sizemin",
-        "sizemode",
-        "sizeref",
-        "sizesrc",
-        "standoff",
-        "standoffsrc",
-        "symbol",
-        "symbolsrc",
-    }
+    _parent_path_str = 'scatterpolar'
+    _path_str = 'scatterpolar.marker'
+    _valid_props = {"angle", "angleref", "anglesrc", "autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "gradient", "line", "maxdisplayed", "opacity", "opacitysrc", "reversescale", "showscale", "size", "sizemin", "sizemode", "sizeref", "sizesrc", "standoff", "standoffsrc", "symbol", "symbolsrc"}
 
     @property
     def angle(self):
@@ -55,11 +29,11 @@ def angle(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["angle"]
+        return self['angle']
 
     @angle.setter
     def angle(self, val):
-        self["angle"] = val
+        self['angle'] = val
 
     @property
     def angleref(self):
@@ -76,11 +50,11 @@ def angleref(self):
         -------
         Any
         """
-        return self["angleref"]
+        return self['angleref']
 
     @angleref.setter
     def angleref(self, val):
-        self["angleref"] = val
+        self['angleref'] = val
 
     @property
     def anglesrc(self):
@@ -94,11 +68,11 @@ def anglesrc(self):
         -------
         str
         """
-        return self["anglesrc"]
+        return self['anglesrc']
 
     @anglesrc.setter
     def anglesrc(self, val):
-        self["anglesrc"] = val
+        self['anglesrc'] = val
 
     @property
     def autocolorscale(self):
@@ -118,11 +92,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -141,11 +115,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -162,11 +136,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -184,11 +158,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -205,11 +179,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -233,11 +207,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -258,11 +232,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -277,11 +251,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.scatterpolar.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -329,11 +303,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -347,11 +321,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def gradient(self):
@@ -366,11 +340,11 @@ def gradient(self):
         -------
         plotly.graph_objs.scatterpolar.marker.Gradient
         """
-        return self["gradient"]
+        return self['gradient']
 
     @gradient.setter
     def gradient(self, val):
-        self["gradient"] = val
+        self['gradient'] = val
 
     @property
     def line(self):
@@ -385,11 +359,11 @@ def line(self):
         -------
         plotly.graph_objs.scatterpolar.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def maxdisplayed(self):
@@ -404,11 +378,11 @@ def maxdisplayed(self):
         -------
         int|float
         """
-        return self["maxdisplayed"]
+        return self['maxdisplayed']
 
     @maxdisplayed.setter
     def maxdisplayed(self, val):
-        self["maxdisplayed"] = val
+        self['maxdisplayed'] = val
 
     @property
     def opacity(self):
@@ -423,11 +397,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -441,11 +415,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def reversescale(self):
@@ -462,11 +436,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -482,11 +456,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def size(self):
@@ -501,11 +475,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizemin(self):
@@ -521,11 +495,11 @@ def sizemin(self):
         -------
         int|float
         """
-        return self["sizemin"]
+        return self['sizemin']
 
     @sizemin.setter
     def sizemin(self, val):
-        self["sizemin"] = val
+        self['sizemin'] = val
 
     @property
     def sizemode(self):
@@ -542,11 +516,11 @@ def sizemode(self):
         -------
         Any
         """
-        return self["sizemode"]
+        return self['sizemode']
 
     @sizemode.setter
     def sizemode(self, val):
-        self["sizemode"] = val
+        self['sizemode'] = val
 
     @property
     def sizeref(self):
@@ -562,11 +536,11 @@ def sizeref(self):
         -------
         int|float
         """
-        return self["sizeref"]
+        return self['sizeref']
 
     @sizeref.setter
     def sizeref(self, val):
-        self["sizeref"] = val
+        self['sizeref'] = val
 
     @property
     def sizesrc(self):
@@ -580,11 +554,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def standoff(self):
@@ -602,11 +576,11 @@ def standoff(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["standoff"]
+        return self['standoff']
 
     @standoff.setter
     def standoff(self, val):
-        self["standoff"] = val
+        self['standoff'] = val
 
     @property
     def standoffsrc(self):
@@ -620,11 +594,11 @@ def standoffsrc(self):
         -------
         str
         """
-        return self["standoffsrc"]
+        return self['standoffsrc']
 
     @standoffsrc.setter
     def standoffsrc(self, val):
-        self["standoffsrc"] = val
+        self['standoffsrc'] = val
 
     @property
     def symbol(self):
@@ -731,11 +705,11 @@ def symbol(self):
         -------
         Any|numpy.ndarray
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def symbolsrc(self):
@@ -749,11 +723,11 @@ def symbolsrc(self):
         -------
         str
         """
-        return self["symbolsrc"]
+        return self['symbolsrc']
 
     @symbolsrc.setter
     def symbolsrc(self, val):
-        self["symbolsrc"] = val
+        self['symbolsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -894,41 +868,39 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `symbol`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        angle=None,
-        angleref=None,
-        anglesrc=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        gradient=None,
-        line=None,
-        maxdisplayed=None,
-        opacity=None,
-        opacitysrc=None,
-        reversescale=None,
-        showscale=None,
-        size=None,
-        sizemin=None,
-        sizemode=None,
-        sizeref=None,
-        sizesrc=None,
-        standoff=None,
-        standoffsrc=None,
-        symbol=None,
-        symbolsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            angle=None,
+            angleref=None,
+            anglesrc=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            gradient=None,
+            line=None,
+            maxdisplayed=None,
+            opacity=None,
+            opacitysrc=None,
+            reversescale=None,
+            showscale=None,
+            size=None,
+            sizemin=None,
+            sizemode=None,
+            sizeref=None,
+            sizesrc=None,
+            standoff=None,
+            standoffsrc=None,
+            symbol=None,
+            symbolsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -1078,9 +1050,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1090,44 +1062,44 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("angle", arg, angle)
-        self._set_property("angleref", arg, angleref)
-        self._set_property("anglesrc", arg, anglesrc)
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("gradient", arg, gradient)
-        self._set_property("line", arg, line)
-        self._set_property("maxdisplayed", arg, maxdisplayed)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("size", arg, size)
-        self._set_property("sizemin", arg, sizemin)
-        self._set_property("sizemode", arg, sizemode)
-        self._set_property("sizeref", arg, sizeref)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("standoff", arg, standoff)
-        self._set_property("standoffsrc", arg, standoffsrc)
-        self._set_property("symbol", arg, symbol)
-        self._set_property("symbolsrc", arg, symbolsrc)
+an instance of :class:`plotly.graph_objs.scatterpolar.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('angle', arg, angle)
+        self._set_property('angleref', arg, angleref)
+        self._set_property('anglesrc', arg, anglesrc)
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('gradient', arg, gradient)
+        self._set_property('line', arg, line)
+        self._set_property('maxdisplayed', arg, maxdisplayed)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('size', arg, size)
+        self._set_property('sizemin', arg, sizemin)
+        self._set_property('sizemode', arg, sizemode)
+        self._set_property('sizeref', arg, sizeref)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('standoff', arg, standoff)
+        self._set_property('standoffsrc', arg, standoffsrc)
+        self._set_property('symbol', arg, symbol)
+        self._set_property('symbolsrc', arg, symbolsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/_selected.py b/plotly/graph_objs/scatterpolar/_selected.py
index 0648ef51449..65b751d0319 100644
--- a/plotly/graph_objs/scatterpolar/_selected.py
+++ b/plotly/graph_objs/scatterpolar/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar"
-    _path_str = "scatterpolar.selected"
+    _parent_path_str = 'scatterpolar'
+    _path_str = 'scatterpolar.selected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scatterpolar.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scatterpolar.selected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scatterpolar.selected.Text
             font` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolar.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/_stream.py b/plotly/graph_objs/scatterpolar/_stream.py
index c85d3db7091..afc6e979f38 100644
--- a/plotly/graph_objs/scatterpolar/_stream.py
+++ b/plotly/graph_objs/scatterpolar/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar"
-    _path_str = "scatterpolar.stream"
+    _parent_path_str = 'scatterpolar'
+    _path_str = 'scatterpolar.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolar.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/_textfont.py b/plotly/graph_objs/scatterpolar/_textfont.py
index 9aa9d4442b4..d6590253713 100644
--- a/plotly/graph_objs/scatterpolar/_textfont.py
+++ b/plotly/graph_objs/scatterpolar/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar"
-    _path_str = "scatterpolar.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scatterpolar'
+    _path_str = 'scatterpolar.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scatterpolar.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/_unselected.py b/plotly/graph_objs/scatterpolar/_unselected.py
index deb2bb20663..53688869c9b 100644
--- a/plotly/graph_objs/scatterpolar/_unselected.py
+++ b/plotly/graph_objs/scatterpolar/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar"
-    _path_str = "scatterpolar.unselected"
+    _parent_path_str = 'scatterpolar'
+    _path_str = 'scatterpolar.unselected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scatterpolar.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scatterpolar.unselected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scatterpolar.unselected.Te
             xtfont` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolar.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/hoverlabel/__init__.py b/plotly/graph_objs/scatterpolar/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scatterpolar/hoverlabel/__init__.py
+++ b/plotly/graph_objs/scatterpolar/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scatterpolar/hoverlabel/_font.py b/plotly/graph_objs/scatterpolar/hoverlabel/_font.py
index 2ca7a574540..e6c8093cfea 100644
--- a/plotly/graph_objs/scatterpolar/hoverlabel/_font.py
+++ b/plotly/graph_objs/scatterpolar/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar.hoverlabel"
-    _path_str = "scatterpolar.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scatterpolar.hoverlabel'
+    _path_str = 'scatterpolar.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scatterpolar.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/legendgrouptitle/__init__.py b/plotly/graph_objs/scatterpolar/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scatterpolar/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/scatterpolar/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scatterpolar/legendgrouptitle/_font.py b/plotly/graph_objs/scatterpolar/legendgrouptitle/_font.py
index 8def746487a..5a837eda29a 100644
--- a/plotly/graph_objs/scatterpolar/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/scatterpolar/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar.legendgrouptitle"
-    _path_str = "scatterpolar.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatterpolar.legendgrouptitle'
+    _path_str = 'scatterpolar.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatterpolar.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/marker/__init__.py b/plotly/graph_objs/scatterpolar/marker/__init__.py
index f9d889ecb9b..b07f6ce198a 100644
--- a/plotly/graph_objs/scatterpolar/marker/__init__.py
+++ b/plotly/graph_objs/scatterpolar/marker/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._gradient import Gradient
+    from ._line import Line
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._gradient.Gradient', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar"],
-    ["._colorbar.ColorBar", "._gradient.Gradient", "._line.Line"],
-)
diff --git a/plotly/graph_objs/scatterpolar/marker/_colorbar.py b/plotly/graph_objs/scatterpolar/marker/_colorbar.py
index da061261a2b..1a4f6aefd73 100644
--- a/plotly/graph_objs/scatterpolar/marker/_colorbar.py
+++ b/plotly/graph_objs/scatterpolar/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar.marker"
-    _path_str = "scatterpolar.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'scatterpolar.marker'
+    _path_str = 'scatterpolar.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.scatterpolar.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.scatterpolar.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.scatterpolar.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.scatterpolar.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.scatterpolar.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/marker/_gradient.py b/plotly/graph_objs/scatterpolar/marker/_gradient.py
index 76f595326fa..a2e5df011be 100644
--- a/plotly/graph_objs/scatterpolar/marker/_gradient.py
+++ b/plotly/graph_objs/scatterpolar/marker/_gradient.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Gradient(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar.marker"
-    _path_str = "scatterpolar.marker.gradient"
+    _parent_path_str = 'scatterpolar.marker'
+    _path_str = 'scatterpolar.marker.gradient'
     _valid_props = {"color", "colorsrc", "type", "typesrc"}
 
     @property
@@ -29,11 +33,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -47,11 +51,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def type(self):
@@ -67,11 +71,11 @@ def type(self):
         -------
         Any|numpy.ndarray
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def typesrc(self):
@@ -85,11 +89,11 @@ def typesrc(self):
         -------
         str
         """
-        return self["typesrc"]
+        return self['typesrc']
 
     @typesrc.setter
     def typesrc(self, val):
-        self["typesrc"] = val
+        self['typesrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -107,10 +111,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `type`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, type=None, typesrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            type=None,
+            typesrc=None,
+            **kwargs
+        ):
         """
         Construct a new Gradient object
 
@@ -137,9 +145,9 @@ def __init__(
         -------
         Gradient
         """
-        super().__init__("gradient")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('gradient')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -149,19 +157,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.marker.Gradient
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.marker.Gradient`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolar.marker.Gradient`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("type", arg, type)
-        self._set_property("typesrc", arg, typesrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('type', arg, type)
+        self._set_property('typesrc', arg, typesrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/marker/_line.py b/plotly/graph_objs/scatterpolar/marker/_line.py
index 16ecb177880..101eb0a90ce 100644
--- a/plotly/graph_objs/scatterpolar/marker/_line.py
+++ b/plotly/graph_objs/scatterpolar/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar.marker"
-    _path_str = "scatterpolar.marker.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorscale",
-        "colorsrc",
-        "reversescale",
-        "width",
-        "widthsrc",
-    }
+    _parent_path_str = 'scatterpolar.marker'
+    _path_str = 'scatterpolar.marker.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorscale", "colorsrc", "reversescale", "width", "widthsrc"}
 
     @property
     def autocolorscale(self):
@@ -42,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -65,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -86,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -109,11 +100,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -130,11 +121,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -158,11 +149,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -183,11 +174,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorscale(self):
@@ -236,11 +227,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -254,11 +245,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def reversescale(self):
@@ -276,11 +267,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def width(self):
@@ -295,11 +286,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -313,11 +304,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -401,24 +392,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorscale=None,
-        colorsrc=None,
-        reversescale=None,
-        width=None,
-        widthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorscale=None,
+            colorsrc=None,
+            reversescale=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -511,9 +500,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -523,27 +512,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.marker.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+an instance of :class:`plotly.graph_objs.scatterpolar.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/marker/colorbar/__init__.py b/plotly/graph_objs/scatterpolar/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/scatterpolar/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/scatterpolar/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/scatterpolar/marker/colorbar/_tickfont.py b/plotly/graph_objs/scatterpolar/marker/colorbar/_tickfont.py
index c51649c6551..65fe42268ea 100644
--- a/plotly/graph_objs/scatterpolar/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/scatterpolar/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar.marker.colorbar"
-    _path_str = "scatterpolar.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatterpolar.marker.colorbar'
+    _path_str = 'scatterpolar.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatterpolar.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/scatterpolar/marker/colorbar/_tickformatstop.py
index 21862592a23..9a40a2dd457 100644
--- a/plotly/graph_objs/scatterpolar/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/scatterpolar/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar.marker.colorbar"
-    _path_str = "scatterpolar.marker.colorbar.tickformatstop"
+    _parent_path_str = 'scatterpolar.marker.colorbar'
+    _path_str = 'scatterpolar.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolar.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/marker/colorbar/_title.py b/plotly/graph_objs/scatterpolar/marker/colorbar/_title.py
index f4aa7726d96..77f972f67c5 100644
--- a/plotly/graph_objs/scatterpolar/marker/colorbar/_title.py
+++ b/plotly/graph_objs/scatterpolar/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar.marker.colorbar"
-    _path_str = "scatterpolar.marker.colorbar.title"
+    _parent_path_str = 'scatterpolar.marker.colorbar'
+    _path_str = 'scatterpolar.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scatterpolar.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolar.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/marker/colorbar/title/__init__.py b/plotly/graph_objs/scatterpolar/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scatterpolar/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/scatterpolar/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scatterpolar/marker/colorbar/title/_font.py b/plotly/graph_objs/scatterpolar/marker/colorbar/title/_font.py
index e679f5e8c09..72cd8654eec 100644
--- a/plotly/graph_objs/scatterpolar/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/scatterpolar/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar.marker.colorbar.title"
-    _path_str = "scatterpolar.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatterpolar.marker.colorbar.title'
+    _path_str = 'scatterpolar.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatterpolar.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/selected/__init__.py b/plotly/graph_objs/scatterpolar/selected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/scatterpolar/selected/__init__.py
+++ b/plotly/graph_objs/scatterpolar/selected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/scatterpolar/selected/_marker.py b/plotly/graph_objs/scatterpolar/selected/_marker.py
index e7be999e0a4..2652ced0e6e 100644
--- a/plotly/graph_objs/scatterpolar/selected/_marker.py
+++ b/plotly/graph_objs/scatterpolar/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar.selected"
-    _path_str = "scatterpolar.selected.marker"
+    _parent_path_str = 'scatterpolar.selected'
+    _path_str = 'scatterpolar.selected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         size
             Sets the marker size of selected points.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolar.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/selected/_textfont.py b/plotly/graph_objs/scatterpolar/selected/_textfont.py
index 53613c1b14f..0192401bda2 100644
--- a/plotly/graph_objs/scatterpolar/selected/_textfont.py
+++ b/plotly/graph_objs/scatterpolar/selected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar.selected"
-    _path_str = "scatterpolar.selected.textfont"
+    _parent_path_str = 'scatterpolar.selected'
+    _path_str = 'scatterpolar.selected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -39,8 +43,11 @@ def _prop_descriptions(self):
         color
             Sets the text font color of selected points.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -57,9 +64,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -69,16 +76,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.selected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.selected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolar.selected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/unselected/__init__.py b/plotly/graph_objs/scatterpolar/unselected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/scatterpolar/unselected/__init__.py
+++ b/plotly/graph_objs/scatterpolar/unselected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/scatterpolar/unselected/_marker.py b/plotly/graph_objs/scatterpolar/unselected/_marker.py
index 0a21fcabd5f..48b6cc35902 100644
--- a/plotly/graph_objs/scatterpolar/unselected/_marker.py
+++ b/plotly/graph_objs/scatterpolar/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar.unselected"
-    _path_str = "scatterpolar.unselected.marker"
+    _parent_path_str = 'scatterpolar.unselected'
+    _path_str = 'scatterpolar.unselected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -47,11 +51,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -66,11 +70,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
             Sets the marker size of unselected points, applied only
             when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolar.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolar/unselected/_textfont.py b/plotly/graph_objs/scatterpolar/unselected/_textfont.py
index c11ac8d3b23..18cb9b58204 100644
--- a/plotly/graph_objs/scatterpolar/unselected/_textfont.py
+++ b/plotly/graph_objs/scatterpolar/unselected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolar.unselected"
-    _path_str = "scatterpolar.unselected.textfont"
+    _parent_path_str = 'scatterpolar.unselected'
+    _path_str = 'scatterpolar.unselected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -41,8 +45,11 @@ def _prop_descriptions(self):
             Sets the text font color of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -60,9 +67,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -72,16 +79,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolar.unselected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolar.unselected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolar.unselected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/__init__.py b/plotly/graph_objs/scatterpolargl/__init__.py
index 7cc31d4831a..9103ab10864 100644
--- a/plotly/graph_objs/scatterpolargl/__init__.py
+++ b/plotly/graph_objs/scatterpolargl/__init__.py
@@ -1,17 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._marker import Marker
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._unselected import Unselected
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._marker.Marker', '._selected.Selected', '._stream.Stream', '._textfont.Textfont', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".selected", ".unselected"],
-    [
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._marker.Marker",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/scatterpolargl/_hoverlabel.py b/plotly/graph_objs/scatterpolargl/_hoverlabel.py
index e6ba2e2f81f..6a92d345022 100644
--- a/plotly/graph_objs/scatterpolargl/_hoverlabel.py
+++ b/plotly/graph_objs/scatterpolargl/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl"
-    _path_str = "scatterpolargl.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'scatterpolargl'
+    _path_str = 'scatterpolargl.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.scatterpolargl.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.scatterpolargl.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/_legendgrouptitle.py b/plotly/graph_objs/scatterpolargl/_legendgrouptitle.py
index 022e0509fdb..1fa148e9532 100644
--- a/plotly/graph_objs/scatterpolargl/_legendgrouptitle.py
+++ b/plotly/graph_objs/scatterpolargl/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl"
-    _path_str = "scatterpolargl.legendgrouptitle"
+    _parent_path_str = 'scatterpolargl'
+    _path_str = 'scatterpolargl.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scatterpolargl.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolargl.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/_line.py b/plotly/graph_objs/scatterpolargl/_line.py
index fd3304d4b5d..26fdc2528b4 100644
--- a/plotly/graph_objs/scatterpolargl/_line.py
+++ b/plotly/graph_objs/scatterpolargl/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl"
-    _path_str = "scatterpolargl.line"
+    _parent_path_str = 'scatterpolargl'
+    _path_str = 'scatterpolargl.line'
     _valid_props = {"color", "dash", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -47,11 +51,11 @@ def dash(self):
         -------
         Any
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def width(self):
@@ -65,11 +69,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -81,8 +85,13 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dash=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -103,9 +112,9 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -115,18 +124,18 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolargl.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/_marker.py b/plotly/graph_objs/scatterpolargl/_marker.py
index b79fd6113a6..ce03c64cd57 100644
--- a/plotly/graph_objs/scatterpolargl/_marker.py
+++ b/plotly/graph_objs/scatterpolargl/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,34 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl"
-    _path_str = "scatterpolargl.marker"
-    _valid_props = {
-        "angle",
-        "anglesrc",
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "line",
-        "opacity",
-        "opacitysrc",
-        "reversescale",
-        "showscale",
-        "size",
-        "sizemin",
-        "sizemode",
-        "sizeref",
-        "sizesrc",
-        "symbol",
-        "symbolsrc",
-    }
+    _parent_path_str = 'scatterpolargl'
+    _path_str = 'scatterpolargl.marker'
+    _valid_props = {"angle", "anglesrc", "autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "line", "opacity", "opacitysrc", "reversescale", "showscale", "size", "sizemin", "sizemode", "sizeref", "sizesrc", "symbol", "symbolsrc"}
 
     @property
     def angle(self):
@@ -50,11 +29,11 @@ def angle(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["angle"]
+        return self['angle']
 
     @angle.setter
     def angle(self, val):
-        self["angle"] = val
+        self['angle'] = val
 
     @property
     def anglesrc(self):
@@ -68,11 +47,11 @@ def anglesrc(self):
         -------
         str
         """
-        return self["anglesrc"]
+        return self['anglesrc']
 
     @anglesrc.setter
     def anglesrc(self, val):
-        self["anglesrc"] = val
+        self['anglesrc'] = val
 
     @property
     def autocolorscale(self):
@@ -92,11 +71,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -115,11 +94,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -136,11 +115,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -158,11 +137,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -179,11 +158,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -207,11 +186,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -232,11 +211,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -251,11 +230,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.scatterpolargl.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -303,11 +282,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -321,11 +300,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def line(self):
@@ -340,11 +319,11 @@ def line(self):
         -------
         plotly.graph_objs.scatterpolargl.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def opacity(self):
@@ -359,11 +338,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -377,11 +356,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def reversescale(self):
@@ -398,11 +377,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -418,11 +397,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def size(self):
@@ -437,11 +416,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizemin(self):
@@ -457,11 +436,11 @@ def sizemin(self):
         -------
         int|float
         """
-        return self["sizemin"]
+        return self['sizemin']
 
     @sizemin.setter
     def sizemin(self, val):
-        self["sizemin"] = val
+        self['sizemin'] = val
 
     @property
     def sizemode(self):
@@ -478,11 +457,11 @@ def sizemode(self):
         -------
         Any
         """
-        return self["sizemode"]
+        return self['sizemode']
 
     @sizemode.setter
     def sizemode(self, val):
-        self["sizemode"] = val
+        self['sizemode'] = val
 
     @property
     def sizeref(self):
@@ -498,11 +477,11 @@ def sizeref(self):
         -------
         int|float
         """
-        return self["sizeref"]
+        return self['sizeref']
 
     @sizeref.setter
     def sizeref(self, val):
-        self["sizeref"] = val
+        self['sizeref'] = val
 
     @property
     def sizesrc(self):
@@ -516,11 +495,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def symbol(self):
@@ -627,11 +606,11 @@ def symbol(self):
         -------
         Any|numpy.ndarray
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def symbolsrc(self):
@@ -645,11 +624,11 @@ def symbolsrc(self):
         -------
         str
         """
-        return self["symbolsrc"]
+        return self['symbolsrc']
 
     @symbolsrc.setter
     def symbolsrc(self, val):
-        self["symbolsrc"] = val
+        self['symbolsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -771,36 +750,34 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `symbol`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        angle=None,
-        anglesrc=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        line=None,
-        opacity=None,
-        opacitysrc=None,
-        reversescale=None,
-        showscale=None,
-        size=None,
-        sizemin=None,
-        sizemode=None,
-        sizeref=None,
-        sizesrc=None,
-        symbol=None,
-        symbolsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            angle=None,
+            anglesrc=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            line=None,
+            opacity=None,
+            opacitysrc=None,
+            reversescale=None,
+            showscale=None,
+            size=None,
+            sizemin=None,
+            sizemode=None,
+            sizeref=None,
+            sizesrc=None,
+            symbol=None,
+            symbolsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -931,9 +908,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -943,39 +920,39 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("angle", arg, angle)
-        self._set_property("anglesrc", arg, anglesrc)
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("line", arg, line)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("size", arg, size)
-        self._set_property("sizemin", arg, sizemin)
-        self._set_property("sizemode", arg, sizemode)
-        self._set_property("sizeref", arg, sizeref)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("symbol", arg, symbol)
-        self._set_property("symbolsrc", arg, symbolsrc)
+an instance of :class:`plotly.graph_objs.scatterpolargl.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('angle', arg, angle)
+        self._set_property('anglesrc', arg, anglesrc)
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('line', arg, line)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('size', arg, size)
+        self._set_property('sizemin', arg, sizemin)
+        self._set_property('sizemode', arg, sizemode)
+        self._set_property('sizeref', arg, sizeref)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('symbol', arg, symbol)
+        self._set_property('symbolsrc', arg, symbolsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/_selected.py b/plotly/graph_objs/scatterpolargl/_selected.py
index c89403512f8..2474bf0f29f 100644
--- a/plotly/graph_objs/scatterpolargl/_selected.py
+++ b/plotly/graph_objs/scatterpolargl/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl"
-    _path_str = "scatterpolargl.selected"
+    _parent_path_str = 'scatterpolargl'
+    _path_str = 'scatterpolargl.selected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scatterpolargl.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scatterpolargl.selected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scatterpolargl.selected.Te
             xtfont` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolargl.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/_stream.py b/plotly/graph_objs/scatterpolargl/_stream.py
index e97501f7311..74ba90ef1d5 100644
--- a/plotly/graph_objs/scatterpolargl/_stream.py
+++ b/plotly/graph_objs/scatterpolargl/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl"
-    _path_str = "scatterpolargl.stream"
+    _parent_path_str = 'scatterpolargl'
+    _path_str = 'scatterpolargl.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolargl.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/_textfont.py b/plotly/graph_objs/scatterpolargl/_textfont.py
index 0e324fac0d7..524ce359b70 100644
--- a/plotly/graph_objs/scatterpolargl/_textfont.py
+++ b/plotly/graph_objs/scatterpolargl/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl"
-    _path_str = "scatterpolargl.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scatterpolargl'
+    _path_str = 'scatterpolargl.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "size", "sizesrc", "style", "stylesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -39,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -57,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -80,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -98,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def size(self):
@@ -115,11 +106,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -133,11 +124,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -154,11 +145,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -172,11 +163,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def variant(self):
@@ -192,11 +183,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -210,11 +201,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -230,11 +221,11 @@ def weight(self):
         -------
         Any|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -248,11 +239,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -294,24 +285,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -364,9 +353,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -376,27 +365,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scatterpolargl.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/_unselected.py b/plotly/graph_objs/scatterpolargl/_unselected.py
index 817f5af64e3..a0c3005c3b1 100644
--- a/plotly/graph_objs/scatterpolargl/_unselected.py
+++ b/plotly/graph_objs/scatterpolargl/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl"
-    _path_str = "scatterpolargl.unselected"
+    _parent_path_str = 'scatterpolargl'
+    _path_str = 'scatterpolargl.unselected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scatterpolargl.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scatterpolargl.unselected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scatterpolargl.unselected.
             Textfont` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolargl.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/hoverlabel/__init__.py b/plotly/graph_objs/scatterpolargl/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scatterpolargl/hoverlabel/__init__.py
+++ b/plotly/graph_objs/scatterpolargl/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scatterpolargl/hoverlabel/_font.py b/plotly/graph_objs/scatterpolargl/hoverlabel/_font.py
index 788ef91accc..7a044e852f1 100644
--- a/plotly/graph_objs/scatterpolargl/hoverlabel/_font.py
+++ b/plotly/graph_objs/scatterpolargl/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl.hoverlabel"
-    _path_str = "scatterpolargl.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scatterpolargl.hoverlabel'
+    _path_str = 'scatterpolargl.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scatterpolargl.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/legendgrouptitle/__init__.py b/plotly/graph_objs/scatterpolargl/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scatterpolargl/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/scatterpolargl/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scatterpolargl/legendgrouptitle/_font.py b/plotly/graph_objs/scatterpolargl/legendgrouptitle/_font.py
index 64b1f921e52..c5d5498955e 100644
--- a/plotly/graph_objs/scatterpolargl/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/scatterpolargl/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl.legendgrouptitle"
-    _path_str = "scatterpolargl.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatterpolargl.legendgrouptitle'
+    _path_str = 'scatterpolargl.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatterpolargl.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/marker/__init__.py b/plotly/graph_objs/scatterpolargl/marker/__init__.py
index ff536ec8b25..60bb7edb6d5 100644
--- a/plotly/graph_objs/scatterpolargl/marker/__init__.py
+++ b/plotly/graph_objs/scatterpolargl/marker/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._line import Line
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".colorbar"], ["._colorbar.ColorBar", "._line.Line"]
-)
diff --git a/plotly/graph_objs/scatterpolargl/marker/_colorbar.py b/plotly/graph_objs/scatterpolargl/marker/_colorbar.py
index c5b05be4aea..00bfbc44cb3 100644
--- a/plotly/graph_objs/scatterpolargl/marker/_colorbar.py
+++ b/plotly/graph_objs/scatterpolargl/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl.marker"
-    _path_str = "scatterpolargl.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'scatterpolargl.marker'
+    _path_str = 'scatterpolargl.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.scatterpolargl.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.scatterpolargl.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.scatterpolargl.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.scatterpolargl.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.scatterpolargl.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/marker/_line.py b/plotly/graph_objs/scatterpolargl/marker/_line.py
index 28863c1b55d..ec9e5a525ce 100644
--- a/plotly/graph_objs/scatterpolargl/marker/_line.py
+++ b/plotly/graph_objs/scatterpolargl/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl.marker"
-    _path_str = "scatterpolargl.marker.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorscale",
-        "colorsrc",
-        "reversescale",
-        "width",
-        "widthsrc",
-    }
+    _parent_path_str = 'scatterpolargl.marker'
+    _path_str = 'scatterpolargl.marker.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorscale", "colorsrc", "reversescale", "width", "widthsrc"}
 
     @property
     def autocolorscale(self):
@@ -42,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -65,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -86,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -109,11 +100,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -130,11 +121,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -158,11 +149,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -183,11 +174,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorscale(self):
@@ -236,11 +227,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -254,11 +245,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def reversescale(self):
@@ -276,11 +267,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def width(self):
@@ -295,11 +286,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -313,11 +304,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -401,24 +392,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorscale=None,
-        colorsrc=None,
-        reversescale=None,
-        width=None,
-        widthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorscale=None,
+            colorsrc=None,
+            reversescale=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -511,9 +500,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -523,27 +512,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.marker.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+an instance of :class:`plotly.graph_objs.scatterpolargl.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/marker/colorbar/__init__.py b/plotly/graph_objs/scatterpolargl/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/scatterpolargl/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/scatterpolargl/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/scatterpolargl/marker/colorbar/_tickfont.py b/plotly/graph_objs/scatterpolargl/marker/colorbar/_tickfont.py
index d49a1c90eda..f365fa7fc55 100644
--- a/plotly/graph_objs/scatterpolargl/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/scatterpolargl/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl.marker.colorbar"
-    _path_str = "scatterpolargl.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatterpolargl.marker.colorbar'
+    _path_str = 'scatterpolargl.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatterpolargl.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/scatterpolargl/marker/colorbar/_tickformatstop.py
index 2eaf022cd0e..8ef4b3d842f 100644
--- a/plotly/graph_objs/scatterpolargl/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/scatterpolargl/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl.marker.colorbar"
-    _path_str = "scatterpolargl.marker.colorbar.tickformatstop"
+    _parent_path_str = 'scatterpolargl.marker.colorbar'
+    _path_str = 'scatterpolargl.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolargl.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/marker/colorbar/_title.py b/plotly/graph_objs/scatterpolargl/marker/colorbar/_title.py
index b8fef5e8d93..5a9de6f5b0e 100644
--- a/plotly/graph_objs/scatterpolargl/marker/colorbar/_title.py
+++ b/plotly/graph_objs/scatterpolargl/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl.marker.colorbar"
-    _path_str = "scatterpolargl.marker.colorbar.title"
+    _parent_path_str = 'scatterpolargl.marker.colorbar'
+    _path_str = 'scatterpolargl.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scatterpolargl.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolargl.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/marker/colorbar/title/__init__.py b/plotly/graph_objs/scatterpolargl/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scatterpolargl/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/scatterpolargl/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scatterpolargl/marker/colorbar/title/_font.py b/plotly/graph_objs/scatterpolargl/marker/colorbar/title/_font.py
index 2b23aff3a1c..f685796d2f4 100644
--- a/plotly/graph_objs/scatterpolargl/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/scatterpolargl/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl.marker.colorbar.title"
-    _path_str = "scatterpolargl.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatterpolargl.marker.colorbar.title'
+    _path_str = 'scatterpolargl.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatterpolargl.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/selected/__init__.py b/plotly/graph_objs/scatterpolargl/selected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/scatterpolargl/selected/__init__.py
+++ b/plotly/graph_objs/scatterpolargl/selected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/scatterpolargl/selected/_marker.py b/plotly/graph_objs/scatterpolargl/selected/_marker.py
index beaf722fa00..2da8ea89eaa 100644
--- a/plotly/graph_objs/scatterpolargl/selected/_marker.py
+++ b/plotly/graph_objs/scatterpolargl/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl.selected"
-    _path_str = "scatterpolargl.selected.marker"
+    _parent_path_str = 'scatterpolargl.selected'
+    _path_str = 'scatterpolargl.selected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         size
             Sets the marker size of selected points.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolargl.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/selected/_textfont.py b/plotly/graph_objs/scatterpolargl/selected/_textfont.py
index dd1832e5290..b1a383cbd4f 100644
--- a/plotly/graph_objs/scatterpolargl/selected/_textfont.py
+++ b/plotly/graph_objs/scatterpolargl/selected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl.selected"
-    _path_str = "scatterpolargl.selected.textfont"
+    _parent_path_str = 'scatterpolargl.selected'
+    _path_str = 'scatterpolargl.selected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -39,8 +43,11 @@ def _prop_descriptions(self):
         color
             Sets the text font color of selected points.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -57,9 +64,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -69,16 +76,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.selected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.selected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolargl.selected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/unselected/__init__.py b/plotly/graph_objs/scatterpolargl/unselected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/scatterpolargl/unselected/__init__.py
+++ b/plotly/graph_objs/scatterpolargl/unselected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/scatterpolargl/unselected/_marker.py b/plotly/graph_objs/scatterpolargl/unselected/_marker.py
index bf65f9b31a7..3841bde2910 100644
--- a/plotly/graph_objs/scatterpolargl/unselected/_marker.py
+++ b/plotly/graph_objs/scatterpolargl/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl.unselected"
-    _path_str = "scatterpolargl.unselected.marker"
+    _parent_path_str = 'scatterpolargl.unselected'
+    _path_str = 'scatterpolargl.unselected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -47,11 +51,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -66,11 +70,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
             Sets the marker size of unselected points, applied only
             when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolargl.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterpolargl/unselected/_textfont.py b/plotly/graph_objs/scatterpolargl/unselected/_textfont.py
index a803c62085d..75c0ce6fea2 100644
--- a/plotly/graph_objs/scatterpolargl/unselected/_textfont.py
+++ b/plotly/graph_objs/scatterpolargl/unselected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterpolargl.unselected"
-    _path_str = "scatterpolargl.unselected.textfont"
+    _parent_path_str = 'scatterpolargl.unselected'
+    _path_str = 'scatterpolargl.unselected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -41,8 +45,11 @@ def _prop_descriptions(self):
             Sets the text font color of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -60,9 +67,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -72,16 +79,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterpolargl.unselected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterpolargl.unselected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterpolargl.unselected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/__init__.py b/plotly/graph_objs/scattersmith/__init__.py
index 7cc31d4831a..9103ab10864 100644
--- a/plotly/graph_objs/scattersmith/__init__.py
+++ b/plotly/graph_objs/scattersmith/__init__.py
@@ -1,17 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._marker import Marker
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._unselected import Unselected
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._marker.Marker', '._selected.Selected', '._stream.Stream', '._textfont.Textfont', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".selected", ".unselected"],
-    [
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._marker.Marker",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/scattersmith/_hoverlabel.py b/plotly/graph_objs/scattersmith/_hoverlabel.py
index 4cc47981cce..441e4e22836 100644
--- a/plotly/graph_objs/scattersmith/_hoverlabel.py
+++ b/plotly/graph_objs/scattersmith/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith"
-    _path_str = "scattersmith.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'scattersmith'
+    _path_str = 'scattersmith.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.scattersmith.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.scattersmith.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/_legendgrouptitle.py b/plotly/graph_objs/scattersmith/_legendgrouptitle.py
index cc52ed093c1..837cfdc6a91 100644
--- a/plotly/graph_objs/scattersmith/_legendgrouptitle.py
+++ b/plotly/graph_objs/scattersmith/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith"
-    _path_str = "scattersmith.legendgrouptitle"
+    _parent_path_str = 'scattersmith'
+    _path_str = 'scattersmith.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scattersmith.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.scattersmith.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/_line.py b/plotly/graph_objs/scattersmith/_line.py
index cf22f609862..5e93af3b140 100644
--- a/plotly/graph_objs/scattersmith/_line.py
+++ b/plotly/graph_objs/scattersmith/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,17 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith"
-    _path_str = "scattersmith.line"
-    _valid_props = {
-        "backoff",
-        "backoffsrc",
-        "color",
-        "dash",
-        "shape",
-        "smoothing",
-        "width",
-    }
+    _parent_path_str = 'scattersmith'
+    _path_str = 'scattersmith.line'
+    _valid_props = {"backoff", "backoffsrc", "color", "dash", "shape", "smoothing", "width"}
 
     @property
     def backoff(self):
@@ -35,11 +31,11 @@ def backoff(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["backoff"]
+        return self['backoff']
 
     @backoff.setter
     def backoff(self, val):
-        self["backoff"] = val
+        self['backoff'] = val
 
     @property
     def backoffsrc(self):
@@ -53,11 +49,11 @@ def backoffsrc(self):
         -------
         str
         """
-        return self["backoffsrc"]
+        return self['backoffsrc']
 
     @backoffsrc.setter
     def backoffsrc(self, val):
-        self["backoffsrc"] = val
+        self['backoffsrc'] = val
 
     @property
     def color(self):
@@ -75,11 +71,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -99,11 +95,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def shape(self):
@@ -120,11 +116,11 @@ def shape(self):
         -------
         Any
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def smoothing(self):
@@ -140,11 +136,11 @@ def smoothing(self):
         -------
         int|float
         """
-        return self["smoothing"]
+        return self['smoothing']
 
     @smoothing.setter
     def smoothing(self, val):
-        self["smoothing"] = val
+        self['smoothing'] = val
 
     @property
     def width(self):
@@ -158,11 +154,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -194,19 +190,17 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        backoff=None,
-        backoffsrc=None,
-        color=None,
-        dash=None,
-        shape=None,
-        smoothing=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            backoff=None,
+            backoffsrc=None,
+            color=None,
+            dash=None,
+            shape=None,
+            smoothing=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -247,9 +241,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -259,22 +253,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("backoff", arg, backoff)
-        self._set_property("backoffsrc", arg, backoffsrc)
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("shape", arg, shape)
-        self._set_property("smoothing", arg, smoothing)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.scattersmith.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('backoff', arg, backoff)
+        self._set_property('backoffsrc', arg, backoffsrc)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('shape', arg, shape)
+        self._set_property('smoothing', arg, smoothing)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/_marker.py b/plotly/graph_objs/scattersmith/_marker.py
index 355db37e417..506fc8d2f25 100644
--- a/plotly/graph_objs/scattersmith/_marker.py
+++ b/plotly/graph_objs/scattersmith/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,39 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith"
-    _path_str = "scattersmith.marker"
-    _valid_props = {
-        "angle",
-        "angleref",
-        "anglesrc",
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "gradient",
-        "line",
-        "maxdisplayed",
-        "opacity",
-        "opacitysrc",
-        "reversescale",
-        "showscale",
-        "size",
-        "sizemin",
-        "sizemode",
-        "sizeref",
-        "sizesrc",
-        "standoff",
-        "standoffsrc",
-        "symbol",
-        "symbolsrc",
-    }
+    _parent_path_str = 'scattersmith'
+    _path_str = 'scattersmith.marker'
+    _valid_props = {"angle", "angleref", "anglesrc", "autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "gradient", "line", "maxdisplayed", "opacity", "opacitysrc", "reversescale", "showscale", "size", "sizemin", "sizemode", "sizeref", "sizesrc", "standoff", "standoffsrc", "symbol", "symbolsrc"}
 
     @property
     def angle(self):
@@ -55,11 +29,11 @@ def angle(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["angle"]
+        return self['angle']
 
     @angle.setter
     def angle(self, val):
-        self["angle"] = val
+        self['angle'] = val
 
     @property
     def angleref(self):
@@ -76,11 +50,11 @@ def angleref(self):
         -------
         Any
         """
-        return self["angleref"]
+        return self['angleref']
 
     @angleref.setter
     def angleref(self, val):
-        self["angleref"] = val
+        self['angleref'] = val
 
     @property
     def anglesrc(self):
@@ -94,11 +68,11 @@ def anglesrc(self):
         -------
         str
         """
-        return self["anglesrc"]
+        return self['anglesrc']
 
     @anglesrc.setter
     def anglesrc(self, val):
-        self["anglesrc"] = val
+        self['anglesrc'] = val
 
     @property
     def autocolorscale(self):
@@ -118,11 +92,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -141,11 +115,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -162,11 +136,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -184,11 +158,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -205,11 +179,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -233,11 +207,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -258,11 +232,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -277,11 +251,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.scattersmith.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -329,11 +303,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -347,11 +321,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def gradient(self):
@@ -366,11 +340,11 @@ def gradient(self):
         -------
         plotly.graph_objs.scattersmith.marker.Gradient
         """
-        return self["gradient"]
+        return self['gradient']
 
     @gradient.setter
     def gradient(self, val):
-        self["gradient"] = val
+        self['gradient'] = val
 
     @property
     def line(self):
@@ -385,11 +359,11 @@ def line(self):
         -------
         plotly.graph_objs.scattersmith.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def maxdisplayed(self):
@@ -404,11 +378,11 @@ def maxdisplayed(self):
         -------
         int|float
         """
-        return self["maxdisplayed"]
+        return self['maxdisplayed']
 
     @maxdisplayed.setter
     def maxdisplayed(self, val):
-        self["maxdisplayed"] = val
+        self['maxdisplayed'] = val
 
     @property
     def opacity(self):
@@ -423,11 +397,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -441,11 +415,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def reversescale(self):
@@ -462,11 +436,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -482,11 +456,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def size(self):
@@ -501,11 +475,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizemin(self):
@@ -521,11 +495,11 @@ def sizemin(self):
         -------
         int|float
         """
-        return self["sizemin"]
+        return self['sizemin']
 
     @sizemin.setter
     def sizemin(self, val):
-        self["sizemin"] = val
+        self['sizemin'] = val
 
     @property
     def sizemode(self):
@@ -542,11 +516,11 @@ def sizemode(self):
         -------
         Any
         """
-        return self["sizemode"]
+        return self['sizemode']
 
     @sizemode.setter
     def sizemode(self, val):
-        self["sizemode"] = val
+        self['sizemode'] = val
 
     @property
     def sizeref(self):
@@ -562,11 +536,11 @@ def sizeref(self):
         -------
         int|float
         """
-        return self["sizeref"]
+        return self['sizeref']
 
     @sizeref.setter
     def sizeref(self, val):
-        self["sizeref"] = val
+        self['sizeref'] = val
 
     @property
     def sizesrc(self):
@@ -580,11 +554,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def standoff(self):
@@ -602,11 +576,11 @@ def standoff(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["standoff"]
+        return self['standoff']
 
     @standoff.setter
     def standoff(self, val):
-        self["standoff"] = val
+        self['standoff'] = val
 
     @property
     def standoffsrc(self):
@@ -620,11 +594,11 @@ def standoffsrc(self):
         -------
         str
         """
-        return self["standoffsrc"]
+        return self['standoffsrc']
 
     @standoffsrc.setter
     def standoffsrc(self, val):
-        self["standoffsrc"] = val
+        self['standoffsrc'] = val
 
     @property
     def symbol(self):
@@ -731,11 +705,11 @@ def symbol(self):
         -------
         Any|numpy.ndarray
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def symbolsrc(self):
@@ -749,11 +723,11 @@ def symbolsrc(self):
         -------
         str
         """
-        return self["symbolsrc"]
+        return self['symbolsrc']
 
     @symbolsrc.setter
     def symbolsrc(self, val):
-        self["symbolsrc"] = val
+        self['symbolsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -894,41 +868,39 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `symbol`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        angle=None,
-        angleref=None,
-        anglesrc=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        gradient=None,
-        line=None,
-        maxdisplayed=None,
-        opacity=None,
-        opacitysrc=None,
-        reversescale=None,
-        showscale=None,
-        size=None,
-        sizemin=None,
-        sizemode=None,
-        sizeref=None,
-        sizesrc=None,
-        standoff=None,
-        standoffsrc=None,
-        symbol=None,
-        symbolsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            angle=None,
+            angleref=None,
+            anglesrc=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            gradient=None,
+            line=None,
+            maxdisplayed=None,
+            opacity=None,
+            opacitysrc=None,
+            reversescale=None,
+            showscale=None,
+            size=None,
+            sizemin=None,
+            sizemode=None,
+            sizeref=None,
+            sizesrc=None,
+            standoff=None,
+            standoffsrc=None,
+            symbol=None,
+            symbolsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -1078,9 +1050,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1090,44 +1062,44 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("angle", arg, angle)
-        self._set_property("angleref", arg, angleref)
-        self._set_property("anglesrc", arg, anglesrc)
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("gradient", arg, gradient)
-        self._set_property("line", arg, line)
-        self._set_property("maxdisplayed", arg, maxdisplayed)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("size", arg, size)
-        self._set_property("sizemin", arg, sizemin)
-        self._set_property("sizemode", arg, sizemode)
-        self._set_property("sizeref", arg, sizeref)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("standoff", arg, standoff)
-        self._set_property("standoffsrc", arg, standoffsrc)
-        self._set_property("symbol", arg, symbol)
-        self._set_property("symbolsrc", arg, symbolsrc)
+an instance of :class:`plotly.graph_objs.scattersmith.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('angle', arg, angle)
+        self._set_property('angleref', arg, angleref)
+        self._set_property('anglesrc', arg, anglesrc)
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('gradient', arg, gradient)
+        self._set_property('line', arg, line)
+        self._set_property('maxdisplayed', arg, maxdisplayed)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('size', arg, size)
+        self._set_property('sizemin', arg, sizemin)
+        self._set_property('sizemode', arg, sizemode)
+        self._set_property('sizeref', arg, sizeref)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('standoff', arg, standoff)
+        self._set_property('standoffsrc', arg, standoffsrc)
+        self._set_property('symbol', arg, symbol)
+        self._set_property('symbolsrc', arg, symbolsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/_selected.py b/plotly/graph_objs/scattersmith/_selected.py
index 7b1c3be58c8..9e4fcc95d47 100644
--- a/plotly/graph_objs/scattersmith/_selected.py
+++ b/plotly/graph_objs/scattersmith/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith"
-    _path_str = "scattersmith.selected"
+    _parent_path_str = 'scattersmith'
+    _path_str = 'scattersmith.selected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattersmith.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scattersmith.selected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scattersmith.selected.Text
             font` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.scattersmith.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/_stream.py b/plotly/graph_objs/scattersmith/_stream.py
index 136cc11b4ff..df52679cddd 100644
--- a/plotly/graph_objs/scattersmith/_stream.py
+++ b/plotly/graph_objs/scattersmith/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith"
-    _path_str = "scattersmith.stream"
+    _parent_path_str = 'scattersmith'
+    _path_str = 'scattersmith.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.scattersmith.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/_textfont.py b/plotly/graph_objs/scattersmith/_textfont.py
index f54bfbbb933..96f2c23d60a 100644
--- a/plotly/graph_objs/scattersmith/_textfont.py
+++ b/plotly/graph_objs/scattersmith/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith"
-    _path_str = "scattersmith.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scattersmith'
+    _path_str = 'scattersmith.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scattersmith.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/_unselected.py b/plotly/graph_objs/scattersmith/_unselected.py
index 19b9763f868..81b1bb087ef 100644
--- a/plotly/graph_objs/scattersmith/_unselected.py
+++ b/plotly/graph_objs/scattersmith/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith"
-    _path_str = "scattersmith.unselected"
+    _parent_path_str = 'scattersmith'
+    _path_str = 'scattersmith.unselected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scattersmith.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scattersmith.unselected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scattersmith.unselected.Te
             xtfont` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.scattersmith.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/hoverlabel/__init__.py b/plotly/graph_objs/scattersmith/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattersmith/hoverlabel/__init__.py
+++ b/plotly/graph_objs/scattersmith/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattersmith/hoverlabel/_font.py b/plotly/graph_objs/scattersmith/hoverlabel/_font.py
index ddae3273f67..b0928d750fc 100644
--- a/plotly/graph_objs/scattersmith/hoverlabel/_font.py
+++ b/plotly/graph_objs/scattersmith/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith.hoverlabel"
-    _path_str = "scattersmith.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scattersmith.hoverlabel'
+    _path_str = 'scattersmith.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scattersmith.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/legendgrouptitle/__init__.py b/plotly/graph_objs/scattersmith/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattersmith/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/scattersmith/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattersmith/legendgrouptitle/_font.py b/plotly/graph_objs/scattersmith/legendgrouptitle/_font.py
index 6f6777fea55..6745b36193d 100644
--- a/plotly/graph_objs/scattersmith/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/scattersmith/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith.legendgrouptitle"
-    _path_str = "scattersmith.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattersmith.legendgrouptitle'
+    _path_str = 'scattersmith.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattersmith.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/marker/__init__.py b/plotly/graph_objs/scattersmith/marker/__init__.py
index f9d889ecb9b..b07f6ce198a 100644
--- a/plotly/graph_objs/scattersmith/marker/__init__.py
+++ b/plotly/graph_objs/scattersmith/marker/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._gradient import Gradient
+    from ._line import Line
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._gradient.Gradient', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar"],
-    ["._colorbar.ColorBar", "._gradient.Gradient", "._line.Line"],
-)
diff --git a/plotly/graph_objs/scattersmith/marker/_colorbar.py b/plotly/graph_objs/scattersmith/marker/_colorbar.py
index f1eb39dfcd7..642ab4a1f16 100644
--- a/plotly/graph_objs/scattersmith/marker/_colorbar.py
+++ b/plotly/graph_objs/scattersmith/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith.marker"
-    _path_str = "scattersmith.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'scattersmith.marker'
+    _path_str = 'scattersmith.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.scattersmith.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.scattersmith.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.scattersmith.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.scattersmith.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.scattersmith.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/marker/_gradient.py b/plotly/graph_objs/scattersmith/marker/_gradient.py
index 743440f8be5..03b133fb441 100644
--- a/plotly/graph_objs/scattersmith/marker/_gradient.py
+++ b/plotly/graph_objs/scattersmith/marker/_gradient.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Gradient(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith.marker"
-    _path_str = "scattersmith.marker.gradient"
+    _parent_path_str = 'scattersmith.marker'
+    _path_str = 'scattersmith.marker.gradient'
     _valid_props = {"color", "colorsrc", "type", "typesrc"}
 
     @property
@@ -29,11 +33,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -47,11 +51,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def type(self):
@@ -67,11 +71,11 @@ def type(self):
         -------
         Any|numpy.ndarray
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def typesrc(self):
@@ -85,11 +89,11 @@ def typesrc(self):
         -------
         str
         """
-        return self["typesrc"]
+        return self['typesrc']
 
     @typesrc.setter
     def typesrc(self, val):
-        self["typesrc"] = val
+        self['typesrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -107,10 +111,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `type`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, type=None, typesrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            type=None,
+            typesrc=None,
+            **kwargs
+        ):
         """
         Construct a new Gradient object
 
@@ -137,9 +145,9 @@ def __init__(
         -------
         Gradient
         """
-        super().__init__("gradient")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('gradient')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -149,19 +157,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.marker.Gradient
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.marker.Gradient`"""
-            )
+an instance of :class:`plotly.graph_objs.scattersmith.marker.Gradient`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("type", arg, type)
-        self._set_property("typesrc", arg, typesrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('type', arg, type)
+        self._set_property('typesrc', arg, typesrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/marker/_line.py b/plotly/graph_objs/scattersmith/marker/_line.py
index d4768f4f64b..6a385a760b2 100644
--- a/plotly/graph_objs/scattersmith/marker/_line.py
+++ b/plotly/graph_objs/scattersmith/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith.marker"
-    _path_str = "scattersmith.marker.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorscale",
-        "colorsrc",
-        "reversescale",
-        "width",
-        "widthsrc",
-    }
+    _parent_path_str = 'scattersmith.marker'
+    _path_str = 'scattersmith.marker.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorscale", "colorsrc", "reversescale", "width", "widthsrc"}
 
     @property
     def autocolorscale(self):
@@ -42,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -65,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -86,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -109,11 +100,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -130,11 +121,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -158,11 +149,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -183,11 +174,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorscale(self):
@@ -236,11 +227,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -254,11 +245,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def reversescale(self):
@@ -276,11 +267,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def width(self):
@@ -295,11 +286,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -313,11 +304,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -401,24 +392,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorscale=None,
-        colorsrc=None,
-        reversescale=None,
-        width=None,
-        widthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorscale=None,
+            colorsrc=None,
+            reversescale=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -511,9 +500,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -523,27 +512,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.marker.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+an instance of :class:`plotly.graph_objs.scattersmith.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/marker/colorbar/__init__.py b/plotly/graph_objs/scattersmith/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/scattersmith/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/scattersmith/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/scattersmith/marker/colorbar/_tickfont.py b/plotly/graph_objs/scattersmith/marker/colorbar/_tickfont.py
index 2eaf5821da9..e72a553f8eb 100644
--- a/plotly/graph_objs/scattersmith/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/scattersmith/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith.marker.colorbar"
-    _path_str = "scattersmith.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattersmith.marker.colorbar'
+    _path_str = 'scattersmith.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattersmith.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/scattersmith/marker/colorbar/_tickformatstop.py
index 945cc01085d..94ea91c69c7 100644
--- a/plotly/graph_objs/scattersmith/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/scattersmith/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith.marker.colorbar"
-    _path_str = "scattersmith.marker.colorbar.tickformatstop"
+    _parent_path_str = 'scattersmith.marker.colorbar'
+    _path_str = 'scattersmith.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.scattersmith.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/marker/colorbar/_title.py b/plotly/graph_objs/scattersmith/marker/colorbar/_title.py
index e9f31d9550d..f73043fc48a 100644
--- a/plotly/graph_objs/scattersmith/marker/colorbar/_title.py
+++ b/plotly/graph_objs/scattersmith/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith.marker.colorbar"
-    _path_str = "scattersmith.marker.colorbar.title"
+    _parent_path_str = 'scattersmith.marker.colorbar'
+    _path_str = 'scattersmith.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scattersmith.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.scattersmith.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/marker/colorbar/title/__init__.py b/plotly/graph_objs/scattersmith/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scattersmith/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/scattersmith/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scattersmith/marker/colorbar/title/_font.py b/plotly/graph_objs/scattersmith/marker/colorbar/title/_font.py
index 338ecadf870..0b49549ee94 100644
--- a/plotly/graph_objs/scattersmith/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/scattersmith/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith.marker.colorbar.title"
-    _path_str = "scattersmith.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scattersmith.marker.colorbar.title'
+    _path_str = 'scattersmith.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scattersmith.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/selected/__init__.py b/plotly/graph_objs/scattersmith/selected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/scattersmith/selected/__init__.py
+++ b/plotly/graph_objs/scattersmith/selected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/scattersmith/selected/_marker.py b/plotly/graph_objs/scattersmith/selected/_marker.py
index febb75df771..483aadeffe7 100644
--- a/plotly/graph_objs/scattersmith/selected/_marker.py
+++ b/plotly/graph_objs/scattersmith/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith.selected"
-    _path_str = "scattersmith.selected.marker"
+    _parent_path_str = 'scattersmith.selected'
+    _path_str = 'scattersmith.selected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         size
             Sets the marker size of selected points.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scattersmith.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/selected/_textfont.py b/plotly/graph_objs/scattersmith/selected/_textfont.py
index 48315d84f7e..dcb0fa622e5 100644
--- a/plotly/graph_objs/scattersmith/selected/_textfont.py
+++ b/plotly/graph_objs/scattersmith/selected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith.selected"
-    _path_str = "scattersmith.selected.textfont"
+    _parent_path_str = 'scattersmith.selected'
+    _path_str = 'scattersmith.selected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -39,8 +43,11 @@ def _prop_descriptions(self):
         color
             Sets the text font color of selected points.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -57,9 +64,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -69,16 +76,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.selected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.selected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scattersmith.selected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/unselected/__init__.py b/plotly/graph_objs/scattersmith/unselected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/scattersmith/unselected/__init__.py
+++ b/plotly/graph_objs/scattersmith/unselected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/scattersmith/unselected/_marker.py b/plotly/graph_objs/scattersmith/unselected/_marker.py
index a99cf9ce51e..d906d447546 100644
--- a/plotly/graph_objs/scattersmith/unselected/_marker.py
+++ b/plotly/graph_objs/scattersmith/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith.unselected"
-    _path_str = "scattersmith.unselected.marker"
+    _parent_path_str = 'scattersmith.unselected'
+    _path_str = 'scattersmith.unselected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -47,11 +51,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -66,11 +70,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
             Sets the marker size of unselected points, applied only
             when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scattersmith.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scattersmith/unselected/_textfont.py b/plotly/graph_objs/scattersmith/unselected/_textfont.py
index 54e37af91b9..2b913dd6b90 100644
--- a/plotly/graph_objs/scattersmith/unselected/_textfont.py
+++ b/plotly/graph_objs/scattersmith/unselected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scattersmith.unselected"
-    _path_str = "scattersmith.unselected.textfont"
+    _parent_path_str = 'scattersmith.unselected'
+    _path_str = 'scattersmith.unselected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -41,8 +45,11 @@ def _prop_descriptions(self):
             Sets the text font color of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -60,9 +67,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -72,16 +79,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scattersmith.unselected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scattersmith.unselected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scattersmith.unselected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/__init__.py b/plotly/graph_objs/scatterternary/__init__.py
index 7cc31d4831a..9103ab10864 100644
--- a/plotly/graph_objs/scatterternary/__init__.py
+++ b/plotly/graph_objs/scatterternary/__init__.py
@@ -1,17 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._marker import Marker
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._unselected import Unselected
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._marker.Marker', '._selected.Selected', '._stream.Stream', '._textfont.Textfont', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".selected", ".unselected"],
-    [
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._marker.Marker",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/scatterternary/_hoverlabel.py b/plotly/graph_objs/scatterternary/_hoverlabel.py
index 1ca409cd53f..c2a24f8d468 100644
--- a/plotly/graph_objs/scatterternary/_hoverlabel.py
+++ b/plotly/graph_objs/scatterternary/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary"
-    _path_str = "scatterternary.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'scatterternary'
+    _path_str = 'scatterternary.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.scatterternary.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.scatterternary.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/_legendgrouptitle.py b/plotly/graph_objs/scatterternary/_legendgrouptitle.py
index a182d17b4ab..801f95c54c4 100644
--- a/plotly/graph_objs/scatterternary/_legendgrouptitle.py
+++ b/plotly/graph_objs/scatterternary/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary"
-    _path_str = "scatterternary.legendgrouptitle"
+    _parent_path_str = 'scatterternary'
+    _path_str = 'scatterternary.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scatterternary.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterternary.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/_line.py b/plotly/graph_objs/scatterternary/_line.py
index e30288c7e6b..3debedbcdf3 100644
--- a/plotly/graph_objs/scatterternary/_line.py
+++ b/plotly/graph_objs/scatterternary/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,17 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary"
-    _path_str = "scatterternary.line"
-    _valid_props = {
-        "backoff",
-        "backoffsrc",
-        "color",
-        "dash",
-        "shape",
-        "smoothing",
-        "width",
-    }
+    _parent_path_str = 'scatterternary'
+    _path_str = 'scatterternary.line'
+    _valid_props = {"backoff", "backoffsrc", "color", "dash", "shape", "smoothing", "width"}
 
     @property
     def backoff(self):
@@ -35,11 +31,11 @@ def backoff(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["backoff"]
+        return self['backoff']
 
     @backoff.setter
     def backoff(self, val):
-        self["backoff"] = val
+        self['backoff'] = val
 
     @property
     def backoffsrc(self):
@@ -53,11 +49,11 @@ def backoffsrc(self):
         -------
         str
         """
-        return self["backoffsrc"]
+        return self['backoffsrc']
 
     @backoffsrc.setter
     def backoffsrc(self, val):
-        self["backoffsrc"] = val
+        self['backoffsrc'] = val
 
     @property
     def color(self):
@@ -75,11 +71,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -99,11 +95,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def shape(self):
@@ -120,11 +116,11 @@ def shape(self):
         -------
         Any
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def smoothing(self):
@@ -140,11 +136,11 @@ def smoothing(self):
         -------
         int|float
         """
-        return self["smoothing"]
+        return self['smoothing']
 
     @smoothing.setter
     def smoothing(self, val):
-        self["smoothing"] = val
+        self['smoothing'] = val
 
     @property
     def width(self):
@@ -158,11 +154,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -194,19 +190,17 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(
-        self,
-        arg=None,
-        backoff=None,
-        backoffsrc=None,
-        color=None,
-        dash=None,
-        shape=None,
-        smoothing=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            backoff=None,
+            backoffsrc=None,
+            color=None,
+            dash=None,
+            shape=None,
+            smoothing=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -247,9 +241,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -259,22 +253,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("backoff", arg, backoff)
-        self._set_property("backoffsrc", arg, backoffsrc)
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("shape", arg, shape)
-        self._set_property("smoothing", arg, smoothing)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.scatterternary.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('backoff', arg, backoff)
+        self._set_property('backoffsrc', arg, backoffsrc)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('shape', arg, shape)
+        self._set_property('smoothing', arg, smoothing)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/_marker.py b/plotly/graph_objs/scatterternary/_marker.py
index 36c44512b7f..22c8490f727 100644
--- a/plotly/graph_objs/scatterternary/_marker.py
+++ b/plotly/graph_objs/scatterternary/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,39 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary"
-    _path_str = "scatterternary.marker"
-    _valid_props = {
-        "angle",
-        "angleref",
-        "anglesrc",
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "gradient",
-        "line",
-        "maxdisplayed",
-        "opacity",
-        "opacitysrc",
-        "reversescale",
-        "showscale",
-        "size",
-        "sizemin",
-        "sizemode",
-        "sizeref",
-        "sizesrc",
-        "standoff",
-        "standoffsrc",
-        "symbol",
-        "symbolsrc",
-    }
+    _parent_path_str = 'scatterternary'
+    _path_str = 'scatterternary.marker'
+    _valid_props = {"angle", "angleref", "anglesrc", "autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "gradient", "line", "maxdisplayed", "opacity", "opacitysrc", "reversescale", "showscale", "size", "sizemin", "sizemode", "sizeref", "sizesrc", "standoff", "standoffsrc", "symbol", "symbolsrc"}
 
     @property
     def angle(self):
@@ -55,11 +29,11 @@ def angle(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["angle"]
+        return self['angle']
 
     @angle.setter
     def angle(self, val):
-        self["angle"] = val
+        self['angle'] = val
 
     @property
     def angleref(self):
@@ -76,11 +50,11 @@ def angleref(self):
         -------
         Any
         """
-        return self["angleref"]
+        return self['angleref']
 
     @angleref.setter
     def angleref(self, val):
-        self["angleref"] = val
+        self['angleref'] = val
 
     @property
     def anglesrc(self):
@@ -94,11 +68,11 @@ def anglesrc(self):
         -------
         str
         """
-        return self["anglesrc"]
+        return self['anglesrc']
 
     @anglesrc.setter
     def anglesrc(self, val):
-        self["anglesrc"] = val
+        self['anglesrc'] = val
 
     @property
     def autocolorscale(self):
@@ -118,11 +92,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -141,11 +115,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -162,11 +136,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -184,11 +158,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -205,11 +179,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -233,11 +207,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -258,11 +232,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -277,11 +251,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.scatterternary.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -329,11 +303,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -347,11 +321,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def gradient(self):
@@ -366,11 +340,11 @@ def gradient(self):
         -------
         plotly.graph_objs.scatterternary.marker.Gradient
         """
-        return self["gradient"]
+        return self['gradient']
 
     @gradient.setter
     def gradient(self, val):
-        self["gradient"] = val
+        self['gradient'] = val
 
     @property
     def line(self):
@@ -385,11 +359,11 @@ def line(self):
         -------
         plotly.graph_objs.scatterternary.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def maxdisplayed(self):
@@ -404,11 +378,11 @@ def maxdisplayed(self):
         -------
         int|float
         """
-        return self["maxdisplayed"]
+        return self['maxdisplayed']
 
     @maxdisplayed.setter
     def maxdisplayed(self, val):
-        self["maxdisplayed"] = val
+        self['maxdisplayed'] = val
 
     @property
     def opacity(self):
@@ -423,11 +397,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -441,11 +415,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def reversescale(self):
@@ -462,11 +436,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -482,11 +456,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def size(self):
@@ -501,11 +475,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizemin(self):
@@ -521,11 +495,11 @@ def sizemin(self):
         -------
         int|float
         """
-        return self["sizemin"]
+        return self['sizemin']
 
     @sizemin.setter
     def sizemin(self, val):
-        self["sizemin"] = val
+        self['sizemin'] = val
 
     @property
     def sizemode(self):
@@ -542,11 +516,11 @@ def sizemode(self):
         -------
         Any
         """
-        return self["sizemode"]
+        return self['sizemode']
 
     @sizemode.setter
     def sizemode(self, val):
-        self["sizemode"] = val
+        self['sizemode'] = val
 
     @property
     def sizeref(self):
@@ -562,11 +536,11 @@ def sizeref(self):
         -------
         int|float
         """
-        return self["sizeref"]
+        return self['sizeref']
 
     @sizeref.setter
     def sizeref(self, val):
-        self["sizeref"] = val
+        self['sizeref'] = val
 
     @property
     def sizesrc(self):
@@ -580,11 +554,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def standoff(self):
@@ -602,11 +576,11 @@ def standoff(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["standoff"]
+        return self['standoff']
 
     @standoff.setter
     def standoff(self, val):
-        self["standoff"] = val
+        self['standoff'] = val
 
     @property
     def standoffsrc(self):
@@ -620,11 +594,11 @@ def standoffsrc(self):
         -------
         str
         """
-        return self["standoffsrc"]
+        return self['standoffsrc']
 
     @standoffsrc.setter
     def standoffsrc(self, val):
-        self["standoffsrc"] = val
+        self['standoffsrc'] = val
 
     @property
     def symbol(self):
@@ -731,11 +705,11 @@ def symbol(self):
         -------
         Any|numpy.ndarray
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def symbolsrc(self):
@@ -749,11 +723,11 @@ def symbolsrc(self):
         -------
         str
         """
-        return self["symbolsrc"]
+        return self['symbolsrc']
 
     @symbolsrc.setter
     def symbolsrc(self, val):
-        self["symbolsrc"] = val
+        self['symbolsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -894,41 +868,39 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `symbol`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        angle=None,
-        angleref=None,
-        anglesrc=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        gradient=None,
-        line=None,
-        maxdisplayed=None,
-        opacity=None,
-        opacitysrc=None,
-        reversescale=None,
-        showscale=None,
-        size=None,
-        sizemin=None,
-        sizemode=None,
-        sizeref=None,
-        sizesrc=None,
-        standoff=None,
-        standoffsrc=None,
-        symbol=None,
-        symbolsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            angle=None,
+            angleref=None,
+            anglesrc=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            gradient=None,
+            line=None,
+            maxdisplayed=None,
+            opacity=None,
+            opacitysrc=None,
+            reversescale=None,
+            showscale=None,
+            size=None,
+            sizemin=None,
+            sizemode=None,
+            sizeref=None,
+            sizesrc=None,
+            standoff=None,
+            standoffsrc=None,
+            symbol=None,
+            symbolsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -1078,9 +1050,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1090,44 +1062,44 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("angle", arg, angle)
-        self._set_property("angleref", arg, angleref)
-        self._set_property("anglesrc", arg, anglesrc)
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("gradient", arg, gradient)
-        self._set_property("line", arg, line)
-        self._set_property("maxdisplayed", arg, maxdisplayed)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("size", arg, size)
-        self._set_property("sizemin", arg, sizemin)
-        self._set_property("sizemode", arg, sizemode)
-        self._set_property("sizeref", arg, sizeref)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("standoff", arg, standoff)
-        self._set_property("standoffsrc", arg, standoffsrc)
-        self._set_property("symbol", arg, symbol)
-        self._set_property("symbolsrc", arg, symbolsrc)
+an instance of :class:`plotly.graph_objs.scatterternary.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('angle', arg, angle)
+        self._set_property('angleref', arg, angleref)
+        self._set_property('anglesrc', arg, anglesrc)
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('gradient', arg, gradient)
+        self._set_property('line', arg, line)
+        self._set_property('maxdisplayed', arg, maxdisplayed)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('size', arg, size)
+        self._set_property('sizemin', arg, sizemin)
+        self._set_property('sizemode', arg, sizemode)
+        self._set_property('sizeref', arg, sizeref)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('standoff', arg, standoff)
+        self._set_property('standoffsrc', arg, standoffsrc)
+        self._set_property('symbol', arg, symbol)
+        self._set_property('symbolsrc', arg, symbolsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/_selected.py b/plotly/graph_objs/scatterternary/_selected.py
index 147708aa914..3701ea92d57 100644
--- a/plotly/graph_objs/scatterternary/_selected.py
+++ b/plotly/graph_objs/scatterternary/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary"
-    _path_str = "scatterternary.selected"
+    _parent_path_str = 'scatterternary'
+    _path_str = 'scatterternary.selected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scatterternary.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scatterternary.selected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scatterternary.selected.Te
             xtfont` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterternary.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/_stream.py b/plotly/graph_objs/scatterternary/_stream.py
index 5f5cbf91d92..1e29f3b381a 100644
--- a/plotly/graph_objs/scatterternary/_stream.py
+++ b/plotly/graph_objs/scatterternary/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary"
-    _path_str = "scatterternary.stream"
+    _parent_path_str = 'scatterternary'
+    _path_str = 'scatterternary.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterternary.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/_textfont.py b/plotly/graph_objs/scatterternary/_textfont.py
index cd649d7b216..e1c73fe3584 100644
--- a/plotly/graph_objs/scatterternary/_textfont.py
+++ b/plotly/graph_objs/scatterternary/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary"
-    _path_str = "scatterternary.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scatterternary'
+    _path_str = 'scatterternary.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scatterternary.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/_unselected.py b/plotly/graph_objs/scatterternary/_unselected.py
index 4dd638293be..745661e56a1 100644
--- a/plotly/graph_objs/scatterternary/_unselected.py
+++ b/plotly/graph_objs/scatterternary/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary"
-    _path_str = "scatterternary.unselected"
+    _parent_path_str = 'scatterternary'
+    _path_str = 'scatterternary.unselected'
     _valid_props = {"marker", "textfont"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.scatterternary.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def textfont(self):
@@ -43,11 +47,11 @@ def textfont(self):
         -------
         plotly.graph_objs.scatterternary.unselected.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.scatterternary.unselected.
             Textfont` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            textfont=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -81,9 +89,9 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -93,17 +101,17 @@ def __init__(self, arg=None, marker=None, textfont=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterternary.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
-        self._set_property("textfont", arg, textfont)
+        self._set_property('marker', arg, marker)
+        self._set_property('textfont', arg, textfont)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/hoverlabel/__init__.py b/plotly/graph_objs/scatterternary/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scatterternary/hoverlabel/__init__.py
+++ b/plotly/graph_objs/scatterternary/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scatterternary/hoverlabel/_font.py b/plotly/graph_objs/scatterternary/hoverlabel/_font.py
index ab3f2e37856..d300fed4f42 100644
--- a/plotly/graph_objs/scatterternary/hoverlabel/_font.py
+++ b/plotly/graph_objs/scatterternary/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary.hoverlabel"
-    _path_str = "scatterternary.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'scatterternary.hoverlabel'
+    _path_str = 'scatterternary.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.scatterternary.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/legendgrouptitle/__init__.py b/plotly/graph_objs/scatterternary/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scatterternary/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/scatterternary/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scatterternary/legendgrouptitle/_font.py b/plotly/graph_objs/scatterternary/legendgrouptitle/_font.py
index 31910885fd2..9532b8fc57a 100644
--- a/plotly/graph_objs/scatterternary/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/scatterternary/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary.legendgrouptitle"
-    _path_str = "scatterternary.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatterternary.legendgrouptitle'
+    _path_str = 'scatterternary.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatterternary.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/marker/__init__.py b/plotly/graph_objs/scatterternary/marker/__init__.py
index f9d889ecb9b..b07f6ce198a 100644
--- a/plotly/graph_objs/scatterternary/marker/__init__.py
+++ b/plotly/graph_objs/scatterternary/marker/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._gradient import Gradient
+    from ._line import Line
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._gradient.Gradient', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar"],
-    ["._colorbar.ColorBar", "._gradient.Gradient", "._line.Line"],
-)
diff --git a/plotly/graph_objs/scatterternary/marker/_colorbar.py b/plotly/graph_objs/scatterternary/marker/_colorbar.py
index 4247f9cb68d..1dee1718f3c 100644
--- a/plotly/graph_objs/scatterternary/marker/_colorbar.py
+++ b/plotly/graph_objs/scatterternary/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary.marker"
-    _path_str = "scatterternary.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'scatterternary.marker'
+    _path_str = 'scatterternary.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.scatterternary.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.scatterternary.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.scatterternary.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.scatterternary.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.scatterternary.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/marker/_gradient.py b/plotly/graph_objs/scatterternary/marker/_gradient.py
index 682c74c8be6..d682a5b4c37 100644
--- a/plotly/graph_objs/scatterternary/marker/_gradient.py
+++ b/plotly/graph_objs/scatterternary/marker/_gradient.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Gradient(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary.marker"
-    _path_str = "scatterternary.marker.gradient"
+    _parent_path_str = 'scatterternary.marker'
+    _path_str = 'scatterternary.marker.gradient'
     _valid_props = {"color", "colorsrc", "type", "typesrc"}
 
     @property
@@ -29,11 +33,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -47,11 +51,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def type(self):
@@ -67,11 +71,11 @@ def type(self):
         -------
         Any|numpy.ndarray
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def typesrc(self):
@@ -85,11 +89,11 @@ def typesrc(self):
         -------
         str
         """
-        return self["typesrc"]
+        return self['typesrc']
 
     @typesrc.setter
     def typesrc(self, val):
-        self["typesrc"] = val
+        self['typesrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -107,10 +111,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `type`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, type=None, typesrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            type=None,
+            typesrc=None,
+            **kwargs
+        ):
         """
         Construct a new Gradient object
 
@@ -137,9 +145,9 @@ def __init__(
         -------
         Gradient
         """
-        super().__init__("gradient")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('gradient')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -149,19 +157,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.marker.Gradient
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.marker.Gradient`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterternary.marker.Gradient`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("type", arg, type)
-        self._set_property("typesrc", arg, typesrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('type', arg, type)
+        self._set_property('typesrc', arg, typesrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/marker/_line.py b/plotly/graph_objs/scatterternary/marker/_line.py
index ef7f7f142f6..165bd6bfeed 100644
--- a/plotly/graph_objs/scatterternary/marker/_line.py
+++ b/plotly/graph_objs/scatterternary/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary.marker"
-    _path_str = "scatterternary.marker.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorscale",
-        "colorsrc",
-        "reversescale",
-        "width",
-        "widthsrc",
-    }
+    _parent_path_str = 'scatterternary.marker'
+    _path_str = 'scatterternary.marker.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorscale", "colorsrc", "reversescale", "width", "widthsrc"}
 
     @property
     def autocolorscale(self):
@@ -42,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -65,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -86,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -109,11 +100,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -130,11 +121,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -158,11 +149,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -183,11 +174,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorscale(self):
@@ -236,11 +227,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -254,11 +245,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def reversescale(self):
@@ -276,11 +267,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def width(self):
@@ -295,11 +286,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -313,11 +304,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -401,24 +392,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorscale=None,
-        colorsrc=None,
-        reversescale=None,
-        width=None,
-        widthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorscale=None,
+            colorsrc=None,
+            reversescale=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -511,9 +500,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -523,27 +512,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.marker.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+an instance of :class:`plotly.graph_objs.scatterternary.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/marker/colorbar/__init__.py b/plotly/graph_objs/scatterternary/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/scatterternary/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/scatterternary/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/scatterternary/marker/colorbar/_tickfont.py b/plotly/graph_objs/scatterternary/marker/colorbar/_tickfont.py
index a952933b0ed..d86ae236a7a 100644
--- a/plotly/graph_objs/scatterternary/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/scatterternary/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary.marker.colorbar"
-    _path_str = "scatterternary.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatterternary.marker.colorbar'
+    _path_str = 'scatterternary.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatterternary.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/scatterternary/marker/colorbar/_tickformatstop.py
index d6ddeb6520a..bc7f417c3b0 100644
--- a/plotly/graph_objs/scatterternary/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/scatterternary/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary.marker.colorbar"
-    _path_str = "scatterternary.marker.colorbar.tickformatstop"
+    _parent_path_str = 'scatterternary.marker.colorbar'
+    _path_str = 'scatterternary.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterternary.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/marker/colorbar/_title.py b/plotly/graph_objs/scatterternary/marker/colorbar/_title.py
index daab742af4b..f643829946c 100644
--- a/plotly/graph_objs/scatterternary/marker/colorbar/_title.py
+++ b/plotly/graph_objs/scatterternary/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary.marker.colorbar"
-    _path_str = "scatterternary.marker.colorbar.title"
+    _parent_path_str = 'scatterternary.marker.colorbar'
+    _path_str = 'scatterternary.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.scatterternary.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterternary.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/marker/colorbar/title/__init__.py b/plotly/graph_objs/scatterternary/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/scatterternary/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/scatterternary/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/scatterternary/marker/colorbar/title/_font.py b/plotly/graph_objs/scatterternary/marker/colorbar/title/_font.py
index a8d324c88c5..de3ab446745 100644
--- a/plotly/graph_objs/scatterternary/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/scatterternary/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary.marker.colorbar.title"
-    _path_str = "scatterternary.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'scatterternary.marker.colorbar.title'
+    _path_str = 'scatterternary.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.scatterternary.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/selected/__init__.py b/plotly/graph_objs/scatterternary/selected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/scatterternary/selected/__init__.py
+++ b/plotly/graph_objs/scatterternary/selected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/scatterternary/selected/_marker.py b/plotly/graph_objs/scatterternary/selected/_marker.py
index 1a2a51a0555..7fb196b9cce 100644
--- a/plotly/graph_objs/scatterternary/selected/_marker.py
+++ b/plotly/graph_objs/scatterternary/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary.selected"
-    _path_str = "scatterternary.selected.marker"
+    _parent_path_str = 'scatterternary.selected'
+    _path_str = 'scatterternary.selected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         size
             Sets the marker size of selected points.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterternary.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/selected/_textfont.py b/plotly/graph_objs/scatterternary/selected/_textfont.py
index 003990d3a3e..41280674833 100644
--- a/plotly/graph_objs/scatterternary/selected/_textfont.py
+++ b/plotly/graph_objs/scatterternary/selected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary.selected"
-    _path_str = "scatterternary.selected.textfont"
+    _parent_path_str = 'scatterternary.selected'
+    _path_str = 'scatterternary.selected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -39,8 +43,11 @@ def _prop_descriptions(self):
         color
             Sets the text font color of selected points.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -57,9 +64,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -69,16 +76,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.selected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.selected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterternary.selected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/unselected/__init__.py b/plotly/graph_objs/scatterternary/unselected/__init__.py
index 473168fdb50..4f70de0f5a9 100644
--- a/plotly/graph_objs/scatterternary/unselected/__init__.py
+++ b/plotly/graph_objs/scatterternary/unselected/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.Marker", "._textfont.Textfont"]
-)
diff --git a/plotly/graph_objs/scatterternary/unselected/_marker.py b/plotly/graph_objs/scatterternary/unselected/_marker.py
index 8a6f27fae38..3d8b0fc102c 100644
--- a/plotly/graph_objs/scatterternary/unselected/_marker.py
+++ b/plotly/graph_objs/scatterternary/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary.unselected"
-    _path_str = "scatterternary.unselected.marker"
+    _parent_path_str = 'scatterternary.unselected'
+    _path_str = 'scatterternary.unselected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -47,11 +51,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -66,11 +70,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
             Sets the marker size of unselected points, applied only
             when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterternary.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/scatterternary/unselected/_textfont.py b/plotly/graph_objs/scatterternary/unselected/_textfont.py
index 7be7d701946..236a7764c71 100644
--- a/plotly/graph_objs/scatterternary/unselected/_textfont.py
+++ b/plotly/graph_objs/scatterternary/unselected/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "scatterternary.unselected"
-    _path_str = "scatterternary.unselected.textfont"
+    _parent_path_str = 'scatterternary.unselected'
+    _path_str = 'scatterternary.unselected.textfont'
     _valid_props = {"color"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -41,8 +45,11 @@ def _prop_descriptions(self):
             Sets the text font color of unselected points, applied
             only when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -60,9 +67,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -72,16 +79,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.scatterternary.unselected.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.scatterternary.unselected.Textfont`"""
-            )
+an instance of :class:`plotly.graph_objs.scatterternary.unselected.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/__init__.py b/plotly/graph_objs/splom/__init__.py
index a047d250122..cde123fa96b 100644
--- a/plotly/graph_objs/splom/__init__.py
+++ b/plotly/graph_objs/splom/__init__.py
@@ -1,24 +1,26 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._diagonal import Diagonal
+    from ._dimension import Dimension
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._marker import Marker
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._unselected import Unselected
+    from . import dimension
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.dimension', '.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._diagonal.Diagonal', '._dimension.Dimension', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._marker.Marker', '._selected.Selected', '._stream.Stream', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [
-        ".dimension",
-        ".hoverlabel",
-        ".legendgrouptitle",
-        ".marker",
-        ".selected",
-        ".unselected",
-    ],
-    [
-        "._diagonal.Diagonal",
-        "._dimension.Dimension",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._marker.Marker",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/splom/_diagonal.py b/plotly/graph_objs/splom/_diagonal.py
index 600f86425c8..0d784b2349e 100644
--- a/plotly/graph_objs/splom/_diagonal.py
+++ b/plotly/graph_objs/splom/_diagonal.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Diagonal(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom"
-    _path_str = "splom.diagonal"
+    _parent_path_str = 'splom'
+    _path_str = 'splom.diagonal'
     _valid_props = {"visible"}
 
     @property
@@ -24,11 +28,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             Determines whether or not subplots on the diagonal are
             displayed.
         """
-
-    def __init__(self, arg=None, visible=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Diagonal object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, visible=None, **kwargs):
         -------
         Diagonal
         """
-        super().__init__("diagonal")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('diagonal')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, visible=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.Diagonal
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.Diagonal`"""
-            )
+an instance of :class:`plotly.graph_objs.splom.Diagonal`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("visible", arg, visible)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/_dimension.py b/plotly/graph_objs/splom/_dimension.py
index 39dec77cb2f..2dd2e8f3dc2 100644
--- a/plotly/graph_objs/splom/_dimension.py
+++ b/plotly/graph_objs/splom/_dimension.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,17 +11,9 @@
 
 class Dimension(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom"
-    _path_str = "splom.dimension"
-    _valid_props = {
-        "axis",
-        "label",
-        "name",
-        "templateitemname",
-        "values",
-        "valuessrc",
-        "visible",
-    }
+    _parent_path_str = 'splom'
+    _path_str = 'splom.dimension'
+    _valid_props = {"axis", "label", "name", "templateitemname", "values", "valuessrc", "visible"}
 
     @property
     def axis(self):
@@ -32,11 +28,11 @@ def axis(self):
         -------
         plotly.graph_objs.splom.dimension.Axis
         """
-        return self["axis"]
+        return self['axis']
 
     @axis.setter
     def axis(self, val):
-        self["axis"] = val
+        self['axis'] = val
 
     @property
     def label(self):
@@ -51,11 +47,11 @@ def label(self):
         -------
         str
         """
-        return self["label"]
+        return self['label']
 
     @label.setter
     def label(self, val):
-        self["label"] = val
+        self['label'] = val
 
     @property
     def name(self):
@@ -76,11 +72,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -102,11 +98,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def values(self):
@@ -120,11 +116,11 @@ def values(self):
         -------
         numpy.ndarray
         """
-        return self["values"]
+        return self['values']
 
     @values.setter
     def values(self, val):
-        self["values"] = val
+        self['values'] = val
 
     @property
     def valuessrc(self):
@@ -138,11 +134,11 @@ def valuessrc(self):
         -------
         str
         """
-        return self["valuessrc"]
+        return self['valuessrc']
 
     @valuessrc.setter
     def valuessrc(self, val):
-        self["valuessrc"] = val
+        self['valuessrc'] = val
 
     @property
     def visible(self):
@@ -158,11 +154,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -202,19 +198,17 @@ def _prop_descriptions(self):
             contribute to the default grid generate by this splom
             trace.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        axis=None,
-        label=None,
-        name=None,
-        templateitemname=None,
-        values=None,
-        valuessrc=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            axis=None,
+            label=None,
+            name=None,
+            templateitemname=None,
+            values=None,
+            valuessrc=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Dimension object
 
@@ -263,9 +257,9 @@ def __init__(
         -------
         Dimension
         """
-        super().__init__("dimensions")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('dimensions')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -275,22 +269,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.Dimension
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.Dimension`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("axis", arg, axis)
-        self._set_property("label", arg, label)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("values", arg, values)
-        self._set_property("valuessrc", arg, valuessrc)
-        self._set_property("visible", arg, visible)
+an instance of :class:`plotly.graph_objs.splom.Dimension`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('axis', arg, axis)
+        self._set_property('label', arg, label)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('values', arg, values)
+        self._set_property('valuessrc', arg, valuessrc)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/_hoverlabel.py b/plotly/graph_objs/splom/_hoverlabel.py
index f83990593fa..b80f2359a9b 100644
--- a/plotly/graph_objs/splom/_hoverlabel.py
+++ b/plotly/graph_objs/splom/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom"
-    _path_str = "splom.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'splom'
+    _path_str = 'splom.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.splom.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.splom.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/_legendgrouptitle.py b/plotly/graph_objs/splom/_legendgrouptitle.py
index 26a4292b90e..4e8b4e03a8a 100644
--- a/plotly/graph_objs/splom/_legendgrouptitle.py
+++ b/plotly/graph_objs/splom/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom"
-    _path_str = "splom.legendgrouptitle"
+    _parent_path_str = 'splom'
+    _path_str = 'splom.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.splom.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.splom.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/_marker.py b/plotly/graph_objs/splom/_marker.py
index adae0b7c8c5..53e38cd9a65 100644
--- a/plotly/graph_objs/splom/_marker.py
+++ b/plotly/graph_objs/splom/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,34 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom"
-    _path_str = "splom.marker"
-    _valid_props = {
-        "angle",
-        "anglesrc",
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorbar",
-        "colorscale",
-        "colorsrc",
-        "line",
-        "opacity",
-        "opacitysrc",
-        "reversescale",
-        "showscale",
-        "size",
-        "sizemin",
-        "sizemode",
-        "sizeref",
-        "sizesrc",
-        "symbol",
-        "symbolsrc",
-    }
+    _parent_path_str = 'splom'
+    _path_str = 'splom.marker'
+    _valid_props = {"angle", "anglesrc", "autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorbar", "colorscale", "colorsrc", "line", "opacity", "opacitysrc", "reversescale", "showscale", "size", "sizemin", "sizemode", "sizeref", "sizesrc", "symbol", "symbolsrc"}
 
     @property
     def angle(self):
@@ -50,11 +29,11 @@ def angle(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["angle"]
+        return self['angle']
 
     @angle.setter
     def angle(self, val):
-        self["angle"] = val
+        self['angle'] = val
 
     @property
     def anglesrc(self):
@@ -68,11 +47,11 @@ def anglesrc(self):
         -------
         str
         """
-        return self["anglesrc"]
+        return self['anglesrc']
 
     @anglesrc.setter
     def anglesrc(self, val):
-        self["anglesrc"] = val
+        self['anglesrc'] = val
 
     @property
     def autocolorscale(self):
@@ -92,11 +71,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -115,11 +94,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -136,11 +115,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -158,11 +137,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -179,11 +158,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -207,11 +186,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -232,11 +211,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -251,11 +230,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.splom.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colorscale(self):
@@ -303,11 +282,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -321,11 +300,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def line(self):
@@ -340,11 +319,11 @@ def line(self):
         -------
         plotly.graph_objs.splom.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def opacity(self):
@@ -359,11 +338,11 @@ def opacity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def opacitysrc(self):
@@ -377,11 +356,11 @@ def opacitysrc(self):
         -------
         str
         """
-        return self["opacitysrc"]
+        return self['opacitysrc']
 
     @opacitysrc.setter
     def opacitysrc(self, val):
-        self["opacitysrc"] = val
+        self['opacitysrc'] = val
 
     @property
     def reversescale(self):
@@ -398,11 +377,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -418,11 +397,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def size(self):
@@ -437,11 +416,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizemin(self):
@@ -457,11 +436,11 @@ def sizemin(self):
         -------
         int|float
         """
-        return self["sizemin"]
+        return self['sizemin']
 
     @sizemin.setter
     def sizemin(self, val):
-        self["sizemin"] = val
+        self['sizemin'] = val
 
     @property
     def sizemode(self):
@@ -478,11 +457,11 @@ def sizemode(self):
         -------
         Any
         """
-        return self["sizemode"]
+        return self['sizemode']
 
     @sizemode.setter
     def sizemode(self, val):
-        self["sizemode"] = val
+        self['sizemode'] = val
 
     @property
     def sizeref(self):
@@ -498,11 +477,11 @@ def sizeref(self):
         -------
         int|float
         """
-        return self["sizeref"]
+        return self['sizeref']
 
     @sizeref.setter
     def sizeref(self, val):
-        self["sizeref"] = val
+        self['sizeref'] = val
 
     @property
     def sizesrc(self):
@@ -516,11 +495,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def symbol(self):
@@ -627,11 +606,11 @@ def symbol(self):
         -------
         Any|numpy.ndarray
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def symbolsrc(self):
@@ -645,11 +624,11 @@ def symbolsrc(self):
         -------
         str
         """
-        return self["symbolsrc"]
+        return self['symbolsrc']
 
     @symbolsrc.setter
     def symbolsrc(self, val):
-        self["symbolsrc"] = val
+        self['symbolsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -771,36 +750,34 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `symbol`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        angle=None,
-        anglesrc=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorbar=None,
-        colorscale=None,
-        colorsrc=None,
-        line=None,
-        opacity=None,
-        opacitysrc=None,
-        reversescale=None,
-        showscale=None,
-        size=None,
-        sizemin=None,
-        sizemode=None,
-        sizeref=None,
-        sizesrc=None,
-        symbol=None,
-        symbolsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            angle=None,
+            anglesrc=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorbar=None,
+            colorscale=None,
+            colorsrc=None,
+            line=None,
+            opacity=None,
+            opacitysrc=None,
+            reversescale=None,
+            showscale=None,
+            size=None,
+            sizemin=None,
+            sizemode=None,
+            sizeref=None,
+            sizesrc=None,
+            symbol=None,
+            symbolsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -930,9 +907,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -942,39 +919,39 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("angle", arg, angle)
-        self._set_property("anglesrc", arg, anglesrc)
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("line", arg, line)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("opacitysrc", arg, opacitysrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
-        self._set_property("size", arg, size)
-        self._set_property("sizemin", arg, sizemin)
-        self._set_property("sizemode", arg, sizemode)
-        self._set_property("sizeref", arg, sizeref)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("symbol", arg, symbol)
-        self._set_property("symbolsrc", arg, symbolsrc)
+an instance of :class:`plotly.graph_objs.splom.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('angle', arg, angle)
+        self._set_property('anglesrc', arg, anglesrc)
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('line', arg, line)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('opacitysrc', arg, opacitysrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
+        self._set_property('size', arg, size)
+        self._set_property('sizemin', arg, sizemin)
+        self._set_property('sizemode', arg, sizemode)
+        self._set_property('sizeref', arg, sizeref)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('symbol', arg, symbol)
+        self._set_property('symbolsrc', arg, symbolsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/_selected.py b/plotly/graph_objs/splom/_selected.py
index 9868586d07c..d5be12b94ec 100644
--- a/plotly/graph_objs/splom/_selected.py
+++ b/plotly/graph_objs/splom/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom"
-    _path_str = "splom.selected"
+    _parent_path_str = 'splom'
+    _path_str = 'splom.selected'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.splom.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.splom.selected.Marker`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.splom.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/_stream.py b/plotly/graph_objs/splom/_stream.py
index d9971fca56e..20180f3188c 100644
--- a/plotly/graph_objs/splom/_stream.py
+++ b/plotly/graph_objs/splom/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom"
-    _path_str = "splom.stream"
+    _parent_path_str = 'splom'
+    _path_str = 'splom.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.splom.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/_unselected.py b/plotly/graph_objs/splom/_unselected.py
index 35d06a5ae00..1c122c616a3 100644
--- a/plotly/graph_objs/splom/_unselected.py
+++ b/plotly/graph_objs/splom/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom"
-    _path_str = "splom.unselected"
+    _parent_path_str = 'splom'
+    _path_str = 'splom.unselected'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.splom.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.splom.unselected.Marker`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.splom.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/dimension/__init__.py b/plotly/graph_objs/splom/dimension/__init__.py
index 3f149bf98a2..482097a6da5 100644
--- a/plotly/graph_objs/splom/dimension/__init__.py
+++ b/plotly/graph_objs/splom/dimension/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._axis import Axis
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._axis.Axis']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._axis.Axis"])
diff --git a/plotly/graph_objs/splom/dimension/_axis.py b/plotly/graph_objs/splom/dimension/_axis.py
index 4775f13795d..c71f7c4d34f 100644
--- a/plotly/graph_objs/splom/dimension/_axis.py
+++ b/plotly/graph_objs/splom/dimension/_axis.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Axis(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom.dimension"
-    _path_str = "splom.dimension.axis"
+    _parent_path_str = 'splom.dimension'
+    _path_str = 'splom.dimension.axis'
     _valid_props = {"matches", "type"}
 
     @property
@@ -25,11 +29,11 @@ def matches(self):
         -------
         bool
         """
-        return self["matches"]
+        return self['matches']
 
     @matches.setter
     def matches(self, val):
-        self["matches"] = val
+        self['matches'] = val
 
     @property
     def type(self):
@@ -46,11 +50,11 @@ def type(self):
         -------
         Any
         """
-        return self["type"]
+        return self['type']
 
     @type.setter
     def type(self, val):
-        self["type"] = val
+        self['type'] = val
 
     @property
     def _prop_descriptions(self):
@@ -65,8 +69,12 @@ def _prop_descriptions(self):
             y axes. Note that the axis `type` values set in layout
             take precedence over this attribute.
         """
-
-    def __init__(self, arg=None, matches=None, type=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            matches=None,
+            type=None,
+            **kwargs
+        ):
         """
         Construct a new Axis object
 
@@ -90,9 +98,9 @@ def __init__(self, arg=None, matches=None, type=None, **kwargs):
         -------
         Axis
         """
-        super().__init__("axis")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('axis')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -102,17 +110,17 @@ def __init__(self, arg=None, matches=None, type=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.dimension.Axis
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.dimension.Axis`"""
-            )
+an instance of :class:`plotly.graph_objs.splom.dimension.Axis`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("matches", arg, matches)
-        self._set_property("type", arg, type)
+        self._set_property('matches', arg, matches)
+        self._set_property('type', arg, type)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/hoverlabel/__init__.py b/plotly/graph_objs/splom/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/splom/hoverlabel/__init__.py
+++ b/plotly/graph_objs/splom/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/splom/hoverlabel/_font.py b/plotly/graph_objs/splom/hoverlabel/_font.py
index 5a6be73053b..c55050c149c 100644
--- a/plotly/graph_objs/splom/hoverlabel/_font.py
+++ b/plotly/graph_objs/splom/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom.hoverlabel"
-    _path_str = "splom.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'splom.hoverlabel'
+    _path_str = 'splom.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.splom.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/legendgrouptitle/__init__.py b/plotly/graph_objs/splom/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/splom/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/splom/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/splom/legendgrouptitle/_font.py b/plotly/graph_objs/splom/legendgrouptitle/_font.py
index fa6ac0c9d6d..9c6ad06b008 100644
--- a/plotly/graph_objs/splom/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/splom/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom.legendgrouptitle"
-    _path_str = "splom.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'splom.legendgrouptitle'
+    _path_str = 'splom.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.splom.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/marker/__init__.py b/plotly/graph_objs/splom/marker/__init__.py
index ff536ec8b25..60bb7edb6d5 100644
--- a/plotly/graph_objs/splom/marker/__init__.py
+++ b/plotly/graph_objs/splom/marker/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._line import Line
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".colorbar"], ["._colorbar.ColorBar", "._line.Line"]
-)
diff --git a/plotly/graph_objs/splom/marker/_colorbar.py b/plotly/graph_objs/splom/marker/_colorbar.py
index 609cc0f679d..15a8e89be34 100644
--- a/plotly/graph_objs/splom/marker/_colorbar.py
+++ b/plotly/graph_objs/splom/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom.marker"
-    _path_str = "splom.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'splom.marker'
+    _path_str = 'splom.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.splom.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.splom.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.splom.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.splom.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.splom.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/marker/_line.py b/plotly/graph_objs/splom/marker/_line.py
index 249a2df8114..8554f6f313b 100644
--- a/plotly/graph_objs/splom/marker/_line.py
+++ b/plotly/graph_objs/splom/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom.marker"
-    _path_str = "splom.marker.line"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "color",
-        "coloraxis",
-        "colorscale",
-        "colorsrc",
-        "reversescale",
-        "width",
-        "widthsrc",
-    }
+    _parent_path_str = 'splom.marker'
+    _path_str = 'splom.marker.line'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "color", "coloraxis", "colorscale", "colorsrc", "reversescale", "width", "widthsrc"}
 
     @property
     def autocolorscale(self):
@@ -42,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -65,11 +56,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -86,11 +77,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -109,11 +100,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -130,11 +121,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def color(self):
@@ -158,11 +149,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def coloraxis(self):
@@ -183,11 +174,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorscale(self):
@@ -236,11 +227,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorsrc(self):
@@ -254,11 +245,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def reversescale(self):
@@ -276,11 +267,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def width(self):
@@ -295,11 +286,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -313,11 +304,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -401,24 +392,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        color=None,
-        coloraxis=None,
-        colorscale=None,
-        colorsrc=None,
-        reversescale=None,
-        width=None,
-        widthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            color=None,
+            coloraxis=None,
+            colorscale=None,
+            colorsrc=None,
+            reversescale=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -511,9 +500,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -523,27 +512,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.marker.Line`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("color", arg, color)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+an instance of :class:`plotly.graph_objs.splom.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('color', arg, color)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/marker/colorbar/__init__.py b/plotly/graph_objs/splom/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/splom/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/splom/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/splom/marker/colorbar/_tickfont.py b/plotly/graph_objs/splom/marker/colorbar/_tickfont.py
index ad1f7ca7b85..f6fe4137a2c 100644
--- a/plotly/graph_objs/splom/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/splom/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom.marker.colorbar"
-    _path_str = "splom.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'splom.marker.colorbar'
+    _path_str = 'splom.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.splom.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/splom/marker/colorbar/_tickformatstop.py
index 579d5930497..db502b87a07 100644
--- a/plotly/graph_objs/splom/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/splom/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom.marker.colorbar"
-    _path_str = "splom.marker.colorbar.tickformatstop"
+    _parent_path_str = 'splom.marker.colorbar'
+    _path_str = 'splom.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.splom.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/marker/colorbar/_title.py b/plotly/graph_objs/splom/marker/colorbar/_title.py
index 790d583255e..a7e7e87b10e 100644
--- a/plotly/graph_objs/splom/marker/colorbar/_title.py
+++ b/plotly/graph_objs/splom/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom.marker.colorbar"
-    _path_str = "splom.marker.colorbar.title"
+    _parent_path_str = 'splom.marker.colorbar'
+    _path_str = 'splom.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.splom.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.splom.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/marker/colorbar/title/__init__.py b/plotly/graph_objs/splom/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/splom/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/splom/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/splom/marker/colorbar/title/_font.py b/plotly/graph_objs/splom/marker/colorbar/title/_font.py
index 4fbef898cbd..bf3838bcc4a 100644
--- a/plotly/graph_objs/splom/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/splom/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom.marker.colorbar.title"
-    _path_str = "splom.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'splom.marker.colorbar.title'
+    _path_str = 'splom.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.splom.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/selected/__init__.py b/plotly/graph_objs/splom/selected/__init__.py
index 17b6d670bc4..5abe297c1ca 100644
--- a/plotly/graph_objs/splom/selected/__init__.py
+++ b/plotly/graph_objs/splom/selected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._marker.Marker"])
diff --git a/plotly/graph_objs/splom/selected/_marker.py b/plotly/graph_objs/splom/selected/_marker.py
index 6439c1cd31b..980a3a283bd 100644
--- a/plotly/graph_objs/splom/selected/_marker.py
+++ b/plotly/graph_objs/splom/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom.selected"
-    _path_str = "splom.selected.marker"
+    _parent_path_str = 'splom.selected'
+    _path_str = 'splom.selected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         size
             Sets the marker size of selected points.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.splom.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/splom/unselected/__init__.py b/plotly/graph_objs/splom/unselected/__init__.py
index 17b6d670bc4..5abe297c1ca 100644
--- a/plotly/graph_objs/splom/unselected/__init__.py
+++ b/plotly/graph_objs/splom/unselected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._marker.Marker"])
diff --git a/plotly/graph_objs/splom/unselected/_marker.py b/plotly/graph_objs/splom/unselected/_marker.py
index 70aba13d3a0..948784205f0 100644
--- a/plotly/graph_objs/splom/unselected/_marker.py
+++ b/plotly/graph_objs/splom/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "splom.unselected"
-    _path_str = "splom.unselected.marker"
+    _parent_path_str = 'splom.unselected'
+    _path_str = 'splom.unselected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -47,11 +51,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -66,11 +70,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
             Sets the marker size of unselected points, applied only
             when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.splom.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.splom.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.splom.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/streamtube/__init__.py b/plotly/graph_objs/streamtube/__init__.py
index 76d37539327..a8e680faec0 100644
--- a/plotly/graph_objs/streamtube/__init__.py
+++ b/plotly/graph_objs/streamtube/__init__.py
@@ -1,16 +1,22 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._lighting import Lighting
+    from ._lightposition import Lightposition
+    from ._starts import Starts
+    from ._stream import Stream
+    from . import colorbar
+    from . import hoverlabel
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar', '.hoverlabel', '.legendgrouptitle'],
+        ['._colorbar.ColorBar', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._lighting.Lighting', '._lightposition.Lightposition', '._starts.Starts', '._stream.Stream']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar", ".hoverlabel", ".legendgrouptitle"],
-    [
-        "._colorbar.ColorBar",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._lighting.Lighting",
-        "._lightposition.Lightposition",
-        "._starts.Starts",
-        "._stream.Stream",
-    ],
-)
diff --git a/plotly/graph_objs/streamtube/_colorbar.py b/plotly/graph_objs/streamtube/_colorbar.py
index 8ecb6023045..175c0a3c1c5 100644
--- a/plotly/graph_objs/streamtube/_colorbar.py
+++ b/plotly/graph_objs/streamtube/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "streamtube"
-    _path_str = "streamtube.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'streamtube'
+    _path_str = 'streamtube.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.streamtube.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.streamtube.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -641,11 +595,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.streamtube.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -663,11 +617,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -686,11 +640,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -710,11 +664,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -728,11 +682,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -753,11 +707,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -772,11 +726,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -793,11 +747,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -812,11 +766,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -832,11 +786,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -850,11 +804,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -869,11 +823,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -887,11 +841,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -905,11 +859,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -924,11 +878,11 @@ def title(self):
         -------
         plotly.graph_objs.streamtube.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -948,11 +902,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -970,11 +924,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -988,11 +942,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1009,11 +963,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1033,11 +987,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1055,11 +1009,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1073,11 +1027,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1094,11 +1048,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1342,61 +1296,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1649,9 +1601,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1661,64 +1613,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.streamtube.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.streamtube.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.streamtube.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/streamtube/_hoverlabel.py b/plotly/graph_objs/streamtube/_hoverlabel.py
index 1bc5c771e27..fb5f937b87b 100644
--- a/plotly/graph_objs/streamtube/_hoverlabel.py
+++ b/plotly/graph_objs/streamtube/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "streamtube"
-    _path_str = "streamtube.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'streamtube'
+    _path_str = 'streamtube.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.streamtube.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.streamtube.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.streamtube.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.streamtube.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/streamtube/_legendgrouptitle.py b/plotly/graph_objs/streamtube/_legendgrouptitle.py
index 395dd34e235..a9a6505e934 100644
--- a/plotly/graph_objs/streamtube/_legendgrouptitle.py
+++ b/plotly/graph_objs/streamtube/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "streamtube"
-    _path_str = "streamtube.legendgrouptitle"
+    _parent_path_str = 'streamtube'
+    _path_str = 'streamtube.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.streamtube.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.streamtube.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.streamtube.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.streamtube.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/streamtube/_lighting.py b/plotly/graph_objs/streamtube/_lighting.py
index f4b2863761b..f5b9df45b08 100644
--- a/plotly/graph_objs/streamtube/_lighting.py
+++ b/plotly/graph_objs/streamtube/_lighting.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,17 +11,9 @@
 
 class Lighting(_BaseTraceHierarchyType):
 
-    _parent_path_str = "streamtube"
-    _path_str = "streamtube.lighting"
-    _valid_props = {
-        "ambient",
-        "diffuse",
-        "facenormalsepsilon",
-        "fresnel",
-        "roughness",
-        "specular",
-        "vertexnormalsepsilon",
-    }
+    _parent_path_str = 'streamtube'
+    _path_str = 'streamtube.lighting'
+    _valid_props = {"ambient", "diffuse", "facenormalsepsilon", "fresnel", "roughness", "specular", "vertexnormalsepsilon"}
 
     @property
     def ambient(self):
@@ -32,11 +28,11 @@ def ambient(self):
         -------
         int|float
         """
-        return self["ambient"]
+        return self['ambient']
 
     @ambient.setter
     def ambient(self, val):
-        self["ambient"] = val
+        self['ambient'] = val
 
     @property
     def diffuse(self):
@@ -51,11 +47,11 @@ def diffuse(self):
         -------
         int|float
         """
-        return self["diffuse"]
+        return self['diffuse']
 
     @diffuse.setter
     def diffuse(self, val):
-        self["diffuse"] = val
+        self['diffuse'] = val
 
     @property
     def facenormalsepsilon(self):
@@ -70,11 +66,11 @@ def facenormalsepsilon(self):
         -------
         int|float
         """
-        return self["facenormalsepsilon"]
+        return self['facenormalsepsilon']
 
     @facenormalsepsilon.setter
     def facenormalsepsilon(self, val):
-        self["facenormalsepsilon"] = val
+        self['facenormalsepsilon'] = val
 
     @property
     def fresnel(self):
@@ -90,11 +86,11 @@ def fresnel(self):
         -------
         int|float
         """
-        return self["fresnel"]
+        return self['fresnel']
 
     @fresnel.setter
     def fresnel(self, val):
-        self["fresnel"] = val
+        self['fresnel'] = val
 
     @property
     def roughness(self):
@@ -109,11 +105,11 @@ def roughness(self):
         -------
         int|float
         """
-        return self["roughness"]
+        return self['roughness']
 
     @roughness.setter
     def roughness(self, val):
-        self["roughness"] = val
+        self['roughness'] = val
 
     @property
     def specular(self):
@@ -128,11 +124,11 @@ def specular(self):
         -------
         int|float
         """
-        return self["specular"]
+        return self['specular']
 
     @specular.setter
     def specular(self, val):
-        self["specular"] = val
+        self['specular'] = val
 
     @property
     def vertexnormalsepsilon(self):
@@ -147,11 +143,11 @@ def vertexnormalsepsilon(self):
         -------
         int|float
         """
-        return self["vertexnormalsepsilon"]
+        return self['vertexnormalsepsilon']
 
     @vertexnormalsepsilon.setter
     def vertexnormalsepsilon(self, val):
-        self["vertexnormalsepsilon"] = val
+        self['vertexnormalsepsilon'] = val
 
     @property
     def _prop_descriptions(self):
@@ -180,19 +176,17 @@ def _prop_descriptions(self):
             Epsilon for vertex normals calculation avoids math
             issues arising from degenerate geometry.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        ambient=None,
-        diffuse=None,
-        facenormalsepsilon=None,
-        fresnel=None,
-        roughness=None,
-        specular=None,
-        vertexnormalsepsilon=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            ambient=None,
+            diffuse=None,
+            facenormalsepsilon=None,
+            fresnel=None,
+            roughness=None,
+            specular=None,
+            vertexnormalsepsilon=None,
+            **kwargs
+        ):
         """
         Construct a new Lighting object
 
@@ -230,9 +224,9 @@ def __init__(
         -------
         Lighting
         """
-        super().__init__("lighting")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('lighting')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -242,22 +236,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.streamtube.Lighting
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.streamtube.Lighting`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("ambient", arg, ambient)
-        self._set_property("diffuse", arg, diffuse)
-        self._set_property("facenormalsepsilon", arg, facenormalsepsilon)
-        self._set_property("fresnel", arg, fresnel)
-        self._set_property("roughness", arg, roughness)
-        self._set_property("specular", arg, specular)
-        self._set_property("vertexnormalsepsilon", arg, vertexnormalsepsilon)
+an instance of :class:`plotly.graph_objs.streamtube.Lighting`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('ambient', arg, ambient)
+        self._set_property('diffuse', arg, diffuse)
+        self._set_property('facenormalsepsilon', arg, facenormalsepsilon)
+        self._set_property('fresnel', arg, fresnel)
+        self._set_property('roughness', arg, roughness)
+        self._set_property('specular', arg, specular)
+        self._set_property('vertexnormalsepsilon', arg, vertexnormalsepsilon)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/streamtube/_lightposition.py b/plotly/graph_objs/streamtube/_lightposition.py
index 1f4d43aaf08..407b467677a 100644
--- a/plotly/graph_objs/streamtube/_lightposition.py
+++ b/plotly/graph_objs/streamtube/_lightposition.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Lightposition(_BaseTraceHierarchyType):
 
-    _parent_path_str = "streamtube"
-    _path_str = "streamtube.lightposition"
+    _parent_path_str = 'streamtube'
+    _path_str = 'streamtube.lightposition'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -23,11 +27,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -41,11 +45,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -59,11 +63,11 @@ def z(self):
         -------
         int|float
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -78,8 +82,13 @@ def _prop_descriptions(self):
             Numeric vector, representing the Z coordinate for each
             vertex.
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Lightposition object
 
@@ -103,9 +112,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Lightposition
         """
-        super().__init__("lightposition")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('lightposition')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -115,18 +124,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.streamtube.Lightposition
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.streamtube.Lightposition`"""
-            )
+an instance of :class:`plotly.graph_objs.streamtube.Lightposition`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/streamtube/_starts.py b/plotly/graph_objs/streamtube/_starts.py
index 22d4e3d95b7..e235f7a7cca 100644
--- a/plotly/graph_objs/streamtube/_starts.py
+++ b/plotly/graph_objs/streamtube/_starts.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Starts(_BaseTraceHierarchyType):
 
-    _parent_path_str = "streamtube"
-    _path_str = "streamtube.starts"
+    _parent_path_str = 'streamtube'
+    _path_str = 'streamtube.starts'
     _valid_props = {"x", "xsrc", "y", "ysrc", "z", "zsrc"}
 
     @property
@@ -24,11 +28,11 @@ def x(self):
         -------
         numpy.ndarray
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xsrc(self):
@@ -42,11 +46,11 @@ def xsrc(self):
         -------
         str
         """
-        return self["xsrc"]
+        return self['xsrc']
 
     @xsrc.setter
     def xsrc(self, val):
-        self["xsrc"] = val
+        self['xsrc'] = val
 
     @property
     def y(self):
@@ -61,11 +65,11 @@ def y(self):
         -------
         numpy.ndarray
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def ysrc(self):
@@ -79,11 +83,11 @@ def ysrc(self):
         -------
         str
         """
-        return self["ysrc"]
+        return self['ysrc']
 
     @ysrc.setter
     def ysrc(self, val):
-        self["ysrc"] = val
+        self['ysrc'] = val
 
     @property
     def z(self):
@@ -98,11 +102,11 @@ def z(self):
         -------
         numpy.ndarray
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def zsrc(self):
@@ -116,11 +120,11 @@ def zsrc(self):
         -------
         str
         """
-        return self["zsrc"]
+        return self['zsrc']
 
     @zsrc.setter
     def zsrc(self, val):
-        self["zsrc"] = val
+        self['zsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -144,18 +148,16 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `z`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        x=None,
-        xsrc=None,
-        y=None,
-        ysrc=None,
-        z=None,
-        zsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            x=None,
+            xsrc=None,
+            y=None,
+            ysrc=None,
+            z=None,
+            zsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Starts object
 
@@ -188,9 +190,9 @@ def __init__(
         -------
         Starts
         """
-        super().__init__("starts")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('starts')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -200,21 +202,21 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.streamtube.Starts
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.streamtube.Starts`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("x", arg, x)
-        self._set_property("xsrc", arg, xsrc)
-        self._set_property("y", arg, y)
-        self._set_property("ysrc", arg, ysrc)
-        self._set_property("z", arg, z)
-        self._set_property("zsrc", arg, zsrc)
+an instance of :class:`plotly.graph_objs.streamtube.Starts`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('x', arg, x)
+        self._set_property('xsrc', arg, xsrc)
+        self._set_property('y', arg, y)
+        self._set_property('ysrc', arg, ysrc)
+        self._set_property('z', arg, z)
+        self._set_property('zsrc', arg, zsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/streamtube/_stream.py b/plotly/graph_objs/streamtube/_stream.py
index 28763c98948..d0ff6ef0e69 100644
--- a/plotly/graph_objs/streamtube/_stream.py
+++ b/plotly/graph_objs/streamtube/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "streamtube"
-    _path_str = "streamtube.stream"
+    _parent_path_str = 'streamtube'
+    _path_str = 'streamtube.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.streamtube.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.streamtube.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.streamtube.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/streamtube/colorbar/__init__.py b/plotly/graph_objs/streamtube/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/streamtube/colorbar/__init__.py
+++ b/plotly/graph_objs/streamtube/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/streamtube/colorbar/_tickfont.py b/plotly/graph_objs/streamtube/colorbar/_tickfont.py
index ddf75b30203..6fa0674aa9d 100644
--- a/plotly/graph_objs/streamtube/colorbar/_tickfont.py
+++ b/plotly/graph_objs/streamtube/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "streamtube.colorbar"
-    _path_str = "streamtube.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'streamtube.colorbar'
+    _path_str = 'streamtube.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.streamtube.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.streamtube.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.streamtube.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/streamtube/colorbar/_tickformatstop.py b/plotly/graph_objs/streamtube/colorbar/_tickformatstop.py
index 9d709b16a3d..80f30f50add 100644
--- a/plotly/graph_objs/streamtube/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/streamtube/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "streamtube.colorbar"
-    _path_str = "streamtube.colorbar.tickformatstop"
+    _parent_path_str = 'streamtube.colorbar'
+    _path_str = 'streamtube.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.streamtube.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.streamtube.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.streamtube.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/streamtube/colorbar/_title.py b/plotly/graph_objs/streamtube/colorbar/_title.py
index 87386c9c36f..21aee2af91e 100644
--- a/plotly/graph_objs/streamtube/colorbar/_title.py
+++ b/plotly/graph_objs/streamtube/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "streamtube.colorbar"
-    _path_str = "streamtube.colorbar.title"
+    _parent_path_str = 'streamtube.colorbar'
+    _path_str = 'streamtube.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.streamtube.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.streamtube.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.streamtube.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.streamtube.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/streamtube/colorbar/title/__init__.py b/plotly/graph_objs/streamtube/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/streamtube/colorbar/title/__init__.py
+++ b/plotly/graph_objs/streamtube/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/streamtube/colorbar/title/_font.py b/plotly/graph_objs/streamtube/colorbar/title/_font.py
index e627388168c..ee235ab31af 100644
--- a/plotly/graph_objs/streamtube/colorbar/title/_font.py
+++ b/plotly/graph_objs/streamtube/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "streamtube.colorbar.title"
-    _path_str = "streamtube.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'streamtube.colorbar.title'
+    _path_str = 'streamtube.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.streamtube.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.streamtube.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.streamtube.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/streamtube/hoverlabel/__init__.py b/plotly/graph_objs/streamtube/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/streamtube/hoverlabel/__init__.py
+++ b/plotly/graph_objs/streamtube/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/streamtube/hoverlabel/_font.py b/plotly/graph_objs/streamtube/hoverlabel/_font.py
index 7c247ae68a7..b5ddbd325ba 100644
--- a/plotly/graph_objs/streamtube/hoverlabel/_font.py
+++ b/plotly/graph_objs/streamtube/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "streamtube.hoverlabel"
-    _path_str = "streamtube.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'streamtube.hoverlabel'
+    _path_str = 'streamtube.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.streamtube.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.streamtube.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.streamtube.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/streamtube/legendgrouptitle/__init__.py b/plotly/graph_objs/streamtube/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/streamtube/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/streamtube/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/streamtube/legendgrouptitle/_font.py b/plotly/graph_objs/streamtube/legendgrouptitle/_font.py
index 230b8962ffe..7bb785abafa 100644
--- a/plotly/graph_objs/streamtube/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/streamtube/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "streamtube.legendgrouptitle"
-    _path_str = "streamtube.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'streamtube.legendgrouptitle'
+    _path_str = 'streamtube.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.streamtube.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.streamtube.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.streamtube.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/__init__.py b/plotly/graph_objs/sunburst/__init__.py
index d32b10600fd..263b607ab82 100644
--- a/plotly/graph_objs/sunburst/__init__.py
+++ b/plotly/graph_objs/sunburst/__init__.py
@@ -1,19 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._domain import Domain
+    from ._hoverlabel import Hoverlabel
+    from ._insidetextfont import Insidetextfont
+    from ._leaf import Leaf
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._marker import Marker
+    from ._outsidetextfont import Outsidetextfont
+    from ._root import Root
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker'],
+        ['._domain.Domain', '._hoverlabel.Hoverlabel', '._insidetextfont.Insidetextfont', '._leaf.Leaf', '._legendgrouptitle.Legendgrouptitle', '._marker.Marker', '._outsidetextfont.Outsidetextfont', '._root.Root', '._stream.Stream', '._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker"],
-    [
-        "._domain.Domain",
-        "._hoverlabel.Hoverlabel",
-        "._insidetextfont.Insidetextfont",
-        "._leaf.Leaf",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._marker.Marker",
-        "._outsidetextfont.Outsidetextfont",
-        "._root.Root",
-        "._stream.Stream",
-        "._textfont.Textfont",
-    ],
-)
diff --git a/plotly/graph_objs/sunburst/_domain.py b/plotly/graph_objs/sunburst/_domain.py
index 9c2abb3ea84..7c71d9f04d3 100644
--- a/plotly/graph_objs/sunburst/_domain.py
+++ b/plotly/graph_objs/sunburst/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst"
-    _path_str = "sunburst.domain"
+    _parent_path_str = 'sunburst'
+    _path_str = 'sunburst.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -25,11 +29,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -45,59 +49,59 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this sunburst trace (in plot
-            fraction).
-
-            The 'x' property is an info array that may be specified as:
+        Sets the horizontal domain of this sunburst trace (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this sunburst trace (in plot
-            fraction).
-
-            The 'y' property is an info array that may be specified as:
+        Sets the vertical domain of this sunburst trace (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,8 +119,14 @@ def _prop_descriptions(self):
             Sets the vertical domain of this sunburst trace (in
             plot fraction).
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -143,9 +153,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -155,19 +165,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.sunburst.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/_hoverlabel.py b/plotly/graph_objs/sunburst/_hoverlabel.py
index a3ac8cd836d..b289d2e2aaf 100644
--- a/plotly/graph_objs/sunburst/_hoverlabel.py
+++ b/plotly/graph_objs/sunburst/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst"
-    _path_str = "sunburst.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'sunburst'
+    _path_str = 'sunburst.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.sunburst.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.sunburst.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/_insidetextfont.py b/plotly/graph_objs/sunburst/_insidetextfont.py
index 9e0ace3a4ef..92321e89d88 100644
--- a/plotly/graph_objs/sunburst/_insidetextfont.py
+++ b/plotly/graph_objs/sunburst/_insidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Insidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst"
-    _path_str = "sunburst.insidetextfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'sunburst'
+    _path_str = 'sunburst.insidetextfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Insidetextfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Insidetextfont
         """
-        super().__init__("insidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('insidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.Insidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.Insidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.sunburst.Insidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/_leaf.py b/plotly/graph_objs/sunburst/_leaf.py
index 7e230411ea7..35ad78154bd 100644
--- a/plotly/graph_objs/sunburst/_leaf.py
+++ b/plotly/graph_objs/sunburst/_leaf.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Leaf(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst"
-    _path_str = "sunburst.leaf"
+    _parent_path_str = 'sunburst'
+    _path_str = 'sunburst.leaf'
     _valid_props = {"opacity"}
 
     @property
@@ -24,11 +28,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             Sets the opacity of the leaves. With colorscale it is
             defaulted to 1; otherwise it is defaulted to 0.7
         """
-
-    def __init__(self, arg=None, opacity=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            opacity=None,
+            **kwargs
+        ):
         """
         Construct a new Leaf object
 
@@ -55,9 +62,9 @@ def __init__(self, arg=None, opacity=None, **kwargs):
         -------
         Leaf
         """
-        super().__init__("leaf")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('leaf')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -67,16 +74,16 @@ def __init__(self, arg=None, opacity=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.Leaf
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.Leaf`"""
-            )
+an instance of :class:`plotly.graph_objs.sunburst.Leaf`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("opacity", arg, opacity)
+        self._set_property('opacity', arg, opacity)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/_legendgrouptitle.py b/plotly/graph_objs/sunburst/_legendgrouptitle.py
index ae2d34b24d1..9de47b8a800 100644
--- a/plotly/graph_objs/sunburst/_legendgrouptitle.py
+++ b/plotly/graph_objs/sunburst/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst"
-    _path_str = "sunburst.legendgrouptitle"
+    _parent_path_str = 'sunburst'
+    _path_str = 'sunburst.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.sunburst.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.sunburst.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/_marker.py b/plotly/graph_objs/sunburst/_marker.py
index 34b86baf99a..149b18c6ccd 100644
--- a/plotly/graph_objs/sunburst/_marker.py
+++ b/plotly/graph_objs/sunburst/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,24 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst"
-    _path_str = "sunburst.marker"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "coloraxis",
-        "colorbar",
-        "colors",
-        "colorscale",
-        "colorssrc",
-        "line",
-        "pattern",
-        "reversescale",
-        "showscale",
-    }
+    _parent_path_str = 'sunburst'
+    _path_str = 'sunburst.marker'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "coloraxis", "colorbar", "colors", "colorscale", "colorssrc", "line", "pattern", "reversescale", "showscale"}
 
     @property
     def autocolorscale(self):
@@ -44,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -66,11 +55,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -86,11 +75,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -108,11 +97,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -128,11 +117,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def coloraxis(self):
@@ -153,11 +142,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -172,11 +161,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.sunburst.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colors(self):
@@ -191,11 +180,11 @@ def colors(self):
         -------
         numpy.ndarray
         """
-        return self["colors"]
+        return self['colors']
 
     @colors.setter
     def colors(self, val):
-        self["colors"] = val
+        self['colors'] = val
 
     @property
     def colorscale(self):
@@ -243,11 +232,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorssrc(self):
@@ -261,11 +250,11 @@ def colorssrc(self):
         -------
         str
         """
-        return self["colorssrc"]
+        return self['colorssrc']
 
     @colorssrc.setter
     def colorssrc(self, val):
-        self["colorssrc"] = val
+        self['colorssrc'] = val
 
     @property
     def line(self):
@@ -280,11 +269,11 @@ def line(self):
         -------
         plotly.graph_objs.sunburst.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def pattern(self):
@@ -301,11 +290,11 @@ def pattern(self):
         -------
         plotly.graph_objs.sunburst.marker.Pattern
         """
-        return self["pattern"]
+        return self['pattern']
 
     @pattern.setter
     def pattern(self, val):
-        self["pattern"] = val
+        self['pattern'] = val
 
     @property
     def reversescale(self):
@@ -322,11 +311,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -342,11 +331,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def _prop_descriptions(self):
@@ -430,26 +419,24 @@ def _prop_descriptions(self):
             this trace. Has an effect only if colors is set to a
             numerical array.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colors=None,
-        colorscale=None,
-        colorssrc=None,
-        line=None,
-        pattern=None,
-        reversescale=None,
-        showscale=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colors=None,
+            colorscale=None,
+            colorssrc=None,
+            line=None,
+            pattern=None,
+            reversescale=None,
+            showscale=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -542,9 +529,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -554,29 +541,29 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colors", arg, colors)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorssrc", arg, colorssrc)
-        self._set_property("line", arg, line)
-        self._set_property("pattern", arg, pattern)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
+an instance of :class:`plotly.graph_objs.sunburst.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colors', arg, colors)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorssrc', arg, colorssrc)
+        self._set_property('line', arg, line)
+        self._set_property('pattern', arg, pattern)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/_outsidetextfont.py b/plotly/graph_objs/sunburst/_outsidetextfont.py
index 46837307a27..e414a95bc81 100644
--- a/plotly/graph_objs/sunburst/_outsidetextfont.py
+++ b/plotly/graph_objs/sunburst/_outsidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Outsidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst"
-    _path_str = "sunburst.outsidetextfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'sunburst'
+    _path_str = 'sunburst.outsidetextfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Outsidetextfont object
 
@@ -550,9 +533,9 @@ def __init__(
         -------
         Outsidetextfont
         """
-        super().__init__("outsidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('outsidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -562,33 +545,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.Outsidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.Outsidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.sunburst.Outsidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/_root.py b/plotly/graph_objs/sunburst/_root.py
index ca090d564b0..fa6228ca880 100644
--- a/plotly/graph_objs/sunburst/_root.py
+++ b/plotly/graph_objs/sunburst/_root.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Root(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst"
-    _path_str = "sunburst.root"
+    _parent_path_str = 'sunburst'
+    _path_str = 'sunburst.root'
     _valid_props = {"color"}
 
     @property
@@ -29,11 +33,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -43,8 +47,11 @@ def _prop_descriptions(self):
             sunburst/treemap/icicle trace. this has no effect when
             a colorscale is used to set the markers.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Root object
 
@@ -62,9 +69,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Root
         """
-        super().__init__("root")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('root')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -74,16 +81,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.Root
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.Root`"""
-            )
+an instance of :class:`plotly.graph_objs.sunburst.Root`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/_stream.py b/plotly/graph_objs/sunburst/_stream.py
index a0f8dd05a6c..b76f71fcbe8 100644
--- a/plotly/graph_objs/sunburst/_stream.py
+++ b/plotly/graph_objs/sunburst/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst"
-    _path_str = "sunburst.stream"
+    _parent_path_str = 'sunburst'
+    _path_str = 'sunburst.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.sunburst.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/_textfont.py b/plotly/graph_objs/sunburst/_textfont.py
index cf4bf584773..69cdc219e49 100644
--- a/plotly/graph_objs/sunburst/_textfont.py
+++ b/plotly/graph_objs/sunburst/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst"
-    _path_str = "sunburst.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'sunburst'
+    _path_str = 'sunburst.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.sunburst.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/hoverlabel/__init__.py b/plotly/graph_objs/sunburst/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/sunburst/hoverlabel/__init__.py
+++ b/plotly/graph_objs/sunburst/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/sunburst/hoverlabel/_font.py b/plotly/graph_objs/sunburst/hoverlabel/_font.py
index acf3c0f3a5a..d38d3eb2ec0 100644
--- a/plotly/graph_objs/sunburst/hoverlabel/_font.py
+++ b/plotly/graph_objs/sunburst/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst.hoverlabel"
-    _path_str = "sunburst.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'sunburst.hoverlabel'
+    _path_str = 'sunburst.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.sunburst.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/legendgrouptitle/__init__.py b/plotly/graph_objs/sunburst/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/sunburst/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/sunburst/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/sunburst/legendgrouptitle/_font.py b/plotly/graph_objs/sunburst/legendgrouptitle/_font.py
index 07719d58fea..2accd962707 100644
--- a/plotly/graph_objs/sunburst/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/sunburst/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst.legendgrouptitle"
-    _path_str = "sunburst.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'sunburst.legendgrouptitle'
+    _path_str = 'sunburst.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.sunburst.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/marker/__init__.py b/plotly/graph_objs/sunburst/marker/__init__.py
index 700941a53ec..210a88dd222 100644
--- a/plotly/graph_objs/sunburst/marker/__init__.py
+++ b/plotly/graph_objs/sunburst/marker/__init__.py
@@ -1,6 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._line import Line
+    from ._pattern import Pattern
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._line.Line', '._pattern.Pattern']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".colorbar"], ["._colorbar.ColorBar", "._line.Line", "._pattern.Pattern"]
-)
diff --git a/plotly/graph_objs/sunburst/marker/_colorbar.py b/plotly/graph_objs/sunburst/marker/_colorbar.py
index 46efaa3886c..6aa87b53a97 100644
--- a/plotly/graph_objs/sunburst/marker/_colorbar.py
+++ b/plotly/graph_objs/sunburst/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst.marker"
-    _path_str = "sunburst.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'sunburst.marker'
+    _path_str = 'sunburst.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.sunburst.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.sunburst.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.sunburst.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.sunburst.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.sunburst.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/marker/_line.py b/plotly/graph_objs/sunburst/marker/_line.py
index ce1429a0f08..79c7c58c555 100644
--- a/plotly/graph_objs/sunburst/marker/_line.py
+++ b/plotly/graph_objs/sunburst/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst.marker"
-    _path_str = "sunburst.marker.line"
+    _parent_path_str = 'sunburst.marker'
+    _path_str = 'sunburst.marker.line'
     _valid_props = {"color", "colorsrc", "width", "widthsrc"}
 
     @property
@@ -29,11 +33,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -47,11 +51,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def width(self):
@@ -66,11 +70,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -84,11 +88,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -106,10 +110,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, width=None, widthsrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -136,9 +144,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -148,19 +156,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.marker.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.sunburst.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/marker/_pattern.py b/plotly/graph_objs/sunburst/marker/_pattern.py
index 56de56ccb51..0bbaa3198bd 100644
--- a/plotly/graph_objs/sunburst/marker/_pattern.py
+++ b/plotly/graph_objs/sunburst/marker/_pattern.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Pattern(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst.marker"
-    _path_str = "sunburst.marker.pattern"
-    _valid_props = {
-        "bgcolor",
-        "bgcolorsrc",
-        "fgcolor",
-        "fgcolorsrc",
-        "fgopacity",
-        "fillmode",
-        "shape",
-        "shapesrc",
-        "size",
-        "sizesrc",
-        "solidity",
-        "soliditysrc",
-    }
+    _parent_path_str = 'sunburst.marker'
+    _path_str = 'sunburst.marker.pattern'
+    _valid_props = {"bgcolor", "bgcolorsrc", "fgcolor", "fgcolorsrc", "fgopacity", "fillmode", "shape", "shapesrc", "size", "sizesrc", "solidity", "soliditysrc"}
 
     @property
     def bgcolor(self):
@@ -44,11 +35,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -62,11 +53,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def fgcolor(self):
@@ -88,11 +79,11 @@ def fgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["fgcolor"]
+        return self['fgcolor']
 
     @fgcolor.setter
     def fgcolor(self, val):
-        self["fgcolor"] = val
+        self['fgcolor'] = val
 
     @property
     def fgcolorsrc(self):
@@ -106,11 +97,11 @@ def fgcolorsrc(self):
         -------
         str
         """
-        return self["fgcolorsrc"]
+        return self['fgcolorsrc']
 
     @fgcolorsrc.setter
     def fgcolorsrc(self, val):
-        self["fgcolorsrc"] = val
+        self['fgcolorsrc'] = val
 
     @property
     def fgopacity(self):
@@ -125,11 +116,11 @@ def fgopacity(self):
         -------
         int|float
         """
-        return self["fgopacity"]
+        return self['fgopacity']
 
     @fgopacity.setter
     def fgopacity(self, val):
-        self["fgopacity"] = val
+        self['fgopacity'] = val
 
     @property
     def fillmode(self):
@@ -145,11 +136,11 @@ def fillmode(self):
         -------
         Any
         """
-        return self["fillmode"]
+        return self['fillmode']
 
     @fillmode.setter
     def fillmode(self, val):
-        self["fillmode"] = val
+        self['fillmode'] = val
 
     @property
     def shape(self):
@@ -166,11 +157,11 @@ def shape(self):
         -------
         Any|numpy.ndarray
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def shapesrc(self):
@@ -184,11 +175,11 @@ def shapesrc(self):
         -------
         str
         """
-        return self["shapesrc"]
+        return self['shapesrc']
 
     @shapesrc.setter
     def shapesrc(self, val):
-        self["shapesrc"] = val
+        self['shapesrc'] = val
 
     @property
     def size(self):
@@ -204,11 +195,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -222,11 +213,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def solidity(self):
@@ -244,11 +235,11 @@ def solidity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["solidity"]
+        return self['solidity']
 
     @solidity.setter
     def solidity(self, val):
-        self["solidity"] = val
+        self['solidity'] = val
 
     @property
     def soliditysrc(self):
@@ -262,11 +253,11 @@ def soliditysrc(self):
         -------
         str
         """
-        return self["soliditysrc"]
+        return self['soliditysrc']
 
     @soliditysrc.setter
     def soliditysrc(self, val):
-        self["soliditysrc"] = val
+        self['soliditysrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -318,24 +309,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `solidity`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        fgcolor=None,
-        fgcolorsrc=None,
-        fgopacity=None,
-        fillmode=None,
-        shape=None,
-        shapesrc=None,
-        size=None,
-        sizesrc=None,
-        solidity=None,
-        soliditysrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            fgcolor=None,
+            fgcolorsrc=None,
+            fgopacity=None,
+            fillmode=None,
+            shape=None,
+            shapesrc=None,
+            size=None,
+            sizesrc=None,
+            solidity=None,
+            soliditysrc=None,
+            **kwargs
+        ):
         """
         Construct a new Pattern object
 
@@ -398,9 +387,9 @@ def __init__(
         -------
         Pattern
         """
-        super().__init__("pattern")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('pattern')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -410,27 +399,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.marker.Pattern
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.marker.Pattern`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("fgcolor", arg, fgcolor)
-        self._set_property("fgcolorsrc", arg, fgcolorsrc)
-        self._set_property("fgopacity", arg, fgopacity)
-        self._set_property("fillmode", arg, fillmode)
-        self._set_property("shape", arg, shape)
-        self._set_property("shapesrc", arg, shapesrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("solidity", arg, solidity)
-        self._set_property("soliditysrc", arg, soliditysrc)
+an instance of :class:`plotly.graph_objs.sunburst.marker.Pattern`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('fgcolor', arg, fgcolor)
+        self._set_property('fgcolorsrc', arg, fgcolorsrc)
+        self._set_property('fgopacity', arg, fgopacity)
+        self._set_property('fillmode', arg, fillmode)
+        self._set_property('shape', arg, shape)
+        self._set_property('shapesrc', arg, shapesrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('solidity', arg, solidity)
+        self._set_property('soliditysrc', arg, soliditysrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/marker/colorbar/__init__.py b/plotly/graph_objs/sunburst/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/sunburst/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/sunburst/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/sunburst/marker/colorbar/_tickfont.py b/plotly/graph_objs/sunburst/marker/colorbar/_tickfont.py
index 05ff4164fb1..3d82b082f25 100644
--- a/plotly/graph_objs/sunburst/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/sunburst/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst.marker.colorbar"
-    _path_str = "sunburst.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'sunburst.marker.colorbar'
+    _path_str = 'sunburst.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.sunburst.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/sunburst/marker/colorbar/_tickformatstop.py
index 148ce1bf68a..84066cb588f 100644
--- a/plotly/graph_objs/sunburst/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/sunburst/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst.marker.colorbar"
-    _path_str = "sunburst.marker.colorbar.tickformatstop"
+    _parent_path_str = 'sunburst.marker.colorbar'
+    _path_str = 'sunburst.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.sunburst.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/marker/colorbar/_title.py b/plotly/graph_objs/sunburst/marker/colorbar/_title.py
index 718a8fbfb90..b6ea3071140 100644
--- a/plotly/graph_objs/sunburst/marker/colorbar/_title.py
+++ b/plotly/graph_objs/sunburst/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst.marker.colorbar"
-    _path_str = "sunburst.marker.colorbar.title"
+    _parent_path_str = 'sunburst.marker.colorbar'
+    _path_str = 'sunburst.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.sunburst.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.sunburst.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/sunburst/marker/colorbar/title/__init__.py b/plotly/graph_objs/sunburst/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/sunburst/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/sunburst/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/sunburst/marker/colorbar/title/_font.py b/plotly/graph_objs/sunburst/marker/colorbar/title/_font.py
index fef5634cf6a..b49ab40b456 100644
--- a/plotly/graph_objs/sunburst/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/sunburst/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "sunburst.marker.colorbar.title"
-    _path_str = "sunburst.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'sunburst.marker.colorbar.title'
+    _path_str = 'sunburst.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.sunburst.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.sunburst.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.sunburst.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/__init__.py b/plotly/graph_objs/surface/__init__.py
index b6f108258f9..024b2cd938d 100644
--- a/plotly/graph_objs/surface/__init__.py
+++ b/plotly/graph_objs/surface/__init__.py
@@ -1,16 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._contours import Contours
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._lighting import Lighting
+    from ._lightposition import Lightposition
+    from ._stream import Stream
+    from . import colorbar
+    from . import contours
+    from . import hoverlabel
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar', '.contours', '.hoverlabel', '.legendgrouptitle'],
+        ['._colorbar.ColorBar', '._contours.Contours', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._lighting.Lighting', '._lightposition.Lightposition', '._stream.Stream']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar", ".contours", ".hoverlabel", ".legendgrouptitle"],
-    [
-        "._colorbar.ColorBar",
-        "._contours.Contours",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._lighting.Lighting",
-        "._lightposition.Lightposition",
-        "._stream.Stream",
-    ],
-)
diff --git a/plotly/graph_objs/surface/_colorbar.py b/plotly/graph_objs/surface/_colorbar.py
index a28aca3b8cb..1ad8c8457ba 100644
--- a/plotly/graph_objs/surface/_colorbar.py
+++ b/plotly/graph_objs/surface/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface"
-    _path_str = "surface.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'surface'
+    _path_str = 'surface.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.surface.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.surface.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.surface.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.surface.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.surface.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/_contours.py b/plotly/graph_objs/surface/_contours.py
index 125dbf5b2af..2abff2f7c17 100644
--- a/plotly/graph_objs/surface/_contours.py
+++ b/plotly/graph_objs/surface/_contours.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Contours(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface"
-    _path_str = "surface.contours"
+    _parent_path_str = 'surface'
+    _path_str = 'surface.contours'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -24,11 +28,11 @@ def x(self):
         -------
         plotly.graph_objs.surface.contours.X
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -43,11 +47,11 @@ def y(self):
         -------
         plotly.graph_objs.surface.contours.Y
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -62,11 +66,11 @@ def z(self):
         -------
         plotly.graph_objs.surface.contours.Z
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -81,8 +85,13 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.surface.contours.Z`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Contours object
 
@@ -106,9 +115,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Contours
         """
-        super().__init__("contours")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('contours')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -118,18 +127,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.Contours
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.Contours`"""
-            )
+an instance of :class:`plotly.graph_objs.surface.Contours`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/_hoverlabel.py b/plotly/graph_objs/surface/_hoverlabel.py
index 70bebf1c66c..e81c92e75b1 100644
--- a/plotly/graph_objs/surface/_hoverlabel.py
+++ b/plotly/graph_objs/surface/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface"
-    _path_str = "surface.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'surface'
+    _path_str = 'surface.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.surface.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.surface.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/_legendgrouptitle.py b/plotly/graph_objs/surface/_legendgrouptitle.py
index ecee46211bb..dcd2367b9c8 100644
--- a/plotly/graph_objs/surface/_legendgrouptitle.py
+++ b/plotly/graph_objs/surface/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface"
-    _path_str = "surface.legendgrouptitle"
+    _parent_path_str = 'surface'
+    _path_str = 'surface.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.surface.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.surface.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/_lighting.py b/plotly/graph_objs/surface/_lighting.py
index a6c23b38dc0..df7b869c59f 100644
--- a/plotly/graph_objs/surface/_lighting.py
+++ b/plotly/graph_objs/surface/_lighting.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Lighting(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface"
-    _path_str = "surface.lighting"
+    _parent_path_str = 'surface'
+    _path_str = 'surface.lighting'
     _valid_props = {"ambient", "diffuse", "fresnel", "roughness", "specular"}
 
     @property
@@ -24,11 +28,11 @@ def ambient(self):
         -------
         int|float
         """
-        return self["ambient"]
+        return self['ambient']
 
     @ambient.setter
     def ambient(self, val):
-        self["ambient"] = val
+        self['ambient'] = val
 
     @property
     def diffuse(self):
@@ -43,11 +47,11 @@ def diffuse(self):
         -------
         int|float
         """
-        return self["diffuse"]
+        return self['diffuse']
 
     @diffuse.setter
     def diffuse(self, val):
-        self["diffuse"] = val
+        self['diffuse'] = val
 
     @property
     def fresnel(self):
@@ -63,11 +67,11 @@ def fresnel(self):
         -------
         int|float
         """
-        return self["fresnel"]
+        return self['fresnel']
 
     @fresnel.setter
     def fresnel(self, val):
-        self["fresnel"] = val
+        self['fresnel'] = val
 
     @property
     def roughness(self):
@@ -82,11 +86,11 @@ def roughness(self):
         -------
         int|float
         """
-        return self["roughness"]
+        return self['roughness']
 
     @roughness.setter
     def roughness(self, val):
-        self["roughness"] = val
+        self['roughness'] = val
 
     @property
     def specular(self):
@@ -101,11 +105,11 @@ def specular(self):
         -------
         int|float
         """
-        return self["specular"]
+        return self['specular']
 
     @specular.setter
     def specular(self, val):
-        self["specular"] = val
+        self['specular'] = val
 
     @property
     def _prop_descriptions(self):
@@ -128,17 +132,15 @@ def _prop_descriptions(self):
             Represents the level that incident rays are reflected
             in a single direction, causing shine.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        ambient=None,
-        diffuse=None,
-        fresnel=None,
-        roughness=None,
-        specular=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            ambient=None,
+            diffuse=None,
+            fresnel=None,
+            roughness=None,
+            specular=None,
+            **kwargs
+        ):
         """
         Construct a new Lighting object
 
@@ -170,9 +172,9 @@ def __init__(
         -------
         Lighting
         """
-        super().__init__("lighting")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('lighting')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -182,20 +184,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.Lighting
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.Lighting`"""
-            )
+an instance of :class:`plotly.graph_objs.surface.Lighting`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("ambient", arg, ambient)
-        self._set_property("diffuse", arg, diffuse)
-        self._set_property("fresnel", arg, fresnel)
-        self._set_property("roughness", arg, roughness)
-        self._set_property("specular", arg, specular)
+        self._set_property('ambient', arg, ambient)
+        self._set_property('diffuse', arg, diffuse)
+        self._set_property('fresnel', arg, fresnel)
+        self._set_property('roughness', arg, roughness)
+        self._set_property('specular', arg, specular)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/_lightposition.py b/plotly/graph_objs/surface/_lightposition.py
index 37ac18575a8..c5232415a4c 100644
--- a/plotly/graph_objs/surface/_lightposition.py
+++ b/plotly/graph_objs/surface/_lightposition.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Lightposition(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface"
-    _path_str = "surface.lightposition"
+    _parent_path_str = 'surface'
+    _path_str = 'surface.lightposition'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -23,11 +27,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -41,11 +45,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -59,11 +63,11 @@ def z(self):
         -------
         int|float
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -78,8 +82,13 @@ def _prop_descriptions(self):
             Numeric vector, representing the Z coordinate for each
             vertex.
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Lightposition object
 
@@ -103,9 +112,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Lightposition
         """
-        super().__init__("lightposition")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('lightposition')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -115,18 +124,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.Lightposition
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.Lightposition`"""
-            )
+an instance of :class:`plotly.graph_objs.surface.Lightposition`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/_stream.py b/plotly/graph_objs/surface/_stream.py
index b3903c0a096..20cc735b9d6 100644
--- a/plotly/graph_objs/surface/_stream.py
+++ b/plotly/graph_objs/surface/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface"
-    _path_str = "surface.stream"
+    _parent_path_str = 'surface'
+    _path_str = 'surface.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.surface.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/colorbar/__init__.py b/plotly/graph_objs/surface/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/surface/colorbar/__init__.py
+++ b/plotly/graph_objs/surface/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/surface/colorbar/_tickfont.py b/plotly/graph_objs/surface/colorbar/_tickfont.py
index c568c4a445b..7cfdebc38bf 100644
--- a/plotly/graph_objs/surface/colorbar/_tickfont.py
+++ b/plotly/graph_objs/surface/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface.colorbar"
-    _path_str = "surface.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'surface.colorbar'
+    _path_str = 'surface.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.surface.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/colorbar/_tickformatstop.py b/plotly/graph_objs/surface/colorbar/_tickformatstop.py
index ad3ae6d2131..46cf8db83cc 100644
--- a/plotly/graph_objs/surface/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/surface/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface.colorbar"
-    _path_str = "surface.colorbar.tickformatstop"
+    _parent_path_str = 'surface.colorbar'
+    _path_str = 'surface.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.surface.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/colorbar/_title.py b/plotly/graph_objs/surface/colorbar/_title.py
index 444447ce581..dec1b2dc209 100644
--- a/plotly/graph_objs/surface/colorbar/_title.py
+++ b/plotly/graph_objs/surface/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface.colorbar"
-    _path_str = "surface.colorbar.title"
+    _parent_path_str = 'surface.colorbar'
+    _path_str = 'surface.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.surface.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.surface.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/colorbar/title/__init__.py b/plotly/graph_objs/surface/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/surface/colorbar/title/__init__.py
+++ b/plotly/graph_objs/surface/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/surface/colorbar/title/_font.py b/plotly/graph_objs/surface/colorbar/title/_font.py
index a24f2b4faa8..7bab68a147d 100644
--- a/plotly/graph_objs/surface/colorbar/title/_font.py
+++ b/plotly/graph_objs/surface/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface.colorbar.title"
-    _path_str = "surface.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'surface.colorbar.title'
+    _path_str = 'surface.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.surface.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/contours/__init__.py b/plotly/graph_objs/surface/contours/__init__.py
index 3b1133f0ee7..1087635087f 100644
--- a/plotly/graph_objs/surface/contours/__init__.py
+++ b/plotly/graph_objs/surface/contours/__init__.py
@@ -1,6 +1,18 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._x import X
+    from ._y import Y
+    from ._z import Z
+    from . import x
+    from . import y
+    from . import z
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.x', '.y', '.z'],
+        ['._x.X', '._y.Y', '._z.Z']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".x", ".y", ".z"], ["._x.X", "._y.Y", "._z.Z"]
-)
diff --git a/plotly/graph_objs/surface/contours/_x.py b/plotly/graph_objs/surface/contours/_x.py
index 0cd147d0391..f83cbbebbd4 100644
--- a/plotly/graph_objs/surface/contours/_x.py
+++ b/plotly/graph_objs/surface/contours/_x.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,21 +11,9 @@
 
 class X(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface.contours"
-    _path_str = "surface.contours.x"
-    _valid_props = {
-        "color",
-        "end",
-        "highlight",
-        "highlightcolor",
-        "highlightwidth",
-        "project",
-        "show",
-        "size",
-        "start",
-        "usecolormap",
-        "width",
-    }
+    _parent_path_str = 'surface.contours'
+    _path_str = 'surface.contours.x'
+    _valid_props = {"color", "end", "highlight", "highlightcolor", "highlightwidth", "project", "show", "size", "start", "usecolormap", "width"}
 
     @property
     def color(self):
@@ -39,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def end(self):
@@ -58,11 +50,11 @@ def end(self):
         -------
         int|float
         """
-        return self["end"]
+        return self['end']
 
     @end.setter
     def end(self, val):
-        self["end"] = val
+        self['end'] = val
 
     @property
     def highlight(self):
@@ -77,11 +69,11 @@ def highlight(self):
         -------
         bool
         """
-        return self["highlight"]
+        return self['highlight']
 
     @highlight.setter
     def highlight(self, val):
-        self["highlight"] = val
+        self['highlight'] = val
 
     @property
     def highlightcolor(self):
@@ -99,11 +91,11 @@ def highlightcolor(self):
         -------
         str
         """
-        return self["highlightcolor"]
+        return self['highlightcolor']
 
     @highlightcolor.setter
     def highlightcolor(self, val):
-        self["highlightcolor"] = val
+        self['highlightcolor'] = val
 
     @property
     def highlightwidth(self):
@@ -117,11 +109,11 @@ def highlightwidth(self):
         -------
         int|float
         """
-        return self["highlightwidth"]
+        return self['highlightwidth']
 
     @highlightwidth.setter
     def highlightwidth(self, val):
-        self["highlightwidth"] = val
+        self['highlightwidth'] = val
 
     @property
     def project(self):
@@ -136,11 +128,11 @@ def project(self):
         -------
         plotly.graph_objs.surface.contours.x.Project
         """
-        return self["project"]
+        return self['project']
 
     @project.setter
     def project(self, val):
-        self["project"] = val
+        self['project'] = val
 
     @property
     def show(self):
@@ -155,11 +147,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def size(self):
@@ -173,11 +165,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def start(self):
@@ -192,11 +184,11 @@ def start(self):
         -------
         int|float
         """
-        return self["start"]
+        return self['start']
 
     @start.setter
     def start(self, val):
-        self["start"] = val
+        self['start'] = val
 
     @property
     def usecolormap(self):
@@ -211,11 +203,11 @@ def usecolormap(self):
         -------
         bool
         """
-        return self["usecolormap"]
+        return self['usecolormap']
 
     @usecolormap.setter
     def usecolormap(self, val):
-        self["usecolormap"] = val
+        self['usecolormap'] = val
 
     @property
     def width(self):
@@ -229,11 +221,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -268,23 +260,21 @@ def _prop_descriptions(self):
         width
             Sets the width of the contour lines.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        end=None,
-        highlight=None,
-        highlightcolor=None,
-        highlightwidth=None,
-        project=None,
-        show=None,
-        size=None,
-        start=None,
-        usecolormap=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            end=None,
+            highlight=None,
+            highlightcolor=None,
+            highlightwidth=None,
+            project=None,
+            show=None,
+            size=None,
+            start=None,
+            usecolormap=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new X object
 
@@ -328,9 +318,9 @@ def __init__(
         -------
         X
         """
-        super().__init__("x")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('x')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -340,26 +330,26 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.contours.X
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.contours.X`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("end", arg, end)
-        self._set_property("highlight", arg, highlight)
-        self._set_property("highlightcolor", arg, highlightcolor)
-        self._set_property("highlightwidth", arg, highlightwidth)
-        self._set_property("project", arg, project)
-        self._set_property("show", arg, show)
-        self._set_property("size", arg, size)
-        self._set_property("start", arg, start)
-        self._set_property("usecolormap", arg, usecolormap)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.surface.contours.X`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('end', arg, end)
+        self._set_property('highlight', arg, highlight)
+        self._set_property('highlightcolor', arg, highlightcolor)
+        self._set_property('highlightwidth', arg, highlightwidth)
+        self._set_property('project', arg, project)
+        self._set_property('show', arg, show)
+        self._set_property('size', arg, size)
+        self._set_property('start', arg, start)
+        self._set_property('usecolormap', arg, usecolormap)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/contours/_y.py b/plotly/graph_objs/surface/contours/_y.py
index e6058388771..71a0aacd80e 100644
--- a/plotly/graph_objs/surface/contours/_y.py
+++ b/plotly/graph_objs/surface/contours/_y.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,21 +11,9 @@
 
 class Y(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface.contours"
-    _path_str = "surface.contours.y"
-    _valid_props = {
-        "color",
-        "end",
-        "highlight",
-        "highlightcolor",
-        "highlightwidth",
-        "project",
-        "show",
-        "size",
-        "start",
-        "usecolormap",
-        "width",
-    }
+    _parent_path_str = 'surface.contours'
+    _path_str = 'surface.contours.y'
+    _valid_props = {"color", "end", "highlight", "highlightcolor", "highlightwidth", "project", "show", "size", "start", "usecolormap", "width"}
 
     @property
     def color(self):
@@ -39,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def end(self):
@@ -58,11 +50,11 @@ def end(self):
         -------
         int|float
         """
-        return self["end"]
+        return self['end']
 
     @end.setter
     def end(self, val):
-        self["end"] = val
+        self['end'] = val
 
     @property
     def highlight(self):
@@ -77,11 +69,11 @@ def highlight(self):
         -------
         bool
         """
-        return self["highlight"]
+        return self['highlight']
 
     @highlight.setter
     def highlight(self, val):
-        self["highlight"] = val
+        self['highlight'] = val
 
     @property
     def highlightcolor(self):
@@ -99,11 +91,11 @@ def highlightcolor(self):
         -------
         str
         """
-        return self["highlightcolor"]
+        return self['highlightcolor']
 
     @highlightcolor.setter
     def highlightcolor(self, val):
-        self["highlightcolor"] = val
+        self['highlightcolor'] = val
 
     @property
     def highlightwidth(self):
@@ -117,11 +109,11 @@ def highlightwidth(self):
         -------
         int|float
         """
-        return self["highlightwidth"]
+        return self['highlightwidth']
 
     @highlightwidth.setter
     def highlightwidth(self, val):
-        self["highlightwidth"] = val
+        self['highlightwidth'] = val
 
     @property
     def project(self):
@@ -136,11 +128,11 @@ def project(self):
         -------
         plotly.graph_objs.surface.contours.y.Project
         """
-        return self["project"]
+        return self['project']
 
     @project.setter
     def project(self, val):
-        self["project"] = val
+        self['project'] = val
 
     @property
     def show(self):
@@ -155,11 +147,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def size(self):
@@ -173,11 +165,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def start(self):
@@ -192,11 +184,11 @@ def start(self):
         -------
         int|float
         """
-        return self["start"]
+        return self['start']
 
     @start.setter
     def start(self, val):
-        self["start"] = val
+        self['start'] = val
 
     @property
     def usecolormap(self):
@@ -211,11 +203,11 @@ def usecolormap(self):
         -------
         bool
         """
-        return self["usecolormap"]
+        return self['usecolormap']
 
     @usecolormap.setter
     def usecolormap(self, val):
-        self["usecolormap"] = val
+        self['usecolormap'] = val
 
     @property
     def width(self):
@@ -229,11 +221,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -268,23 +260,21 @@ def _prop_descriptions(self):
         width
             Sets the width of the contour lines.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        end=None,
-        highlight=None,
-        highlightcolor=None,
-        highlightwidth=None,
-        project=None,
-        show=None,
-        size=None,
-        start=None,
-        usecolormap=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            end=None,
+            highlight=None,
+            highlightcolor=None,
+            highlightwidth=None,
+            project=None,
+            show=None,
+            size=None,
+            start=None,
+            usecolormap=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Y object
 
@@ -328,9 +318,9 @@ def __init__(
         -------
         Y
         """
-        super().__init__("y")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('y')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -340,26 +330,26 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.contours.Y
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.contours.Y`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("end", arg, end)
-        self._set_property("highlight", arg, highlight)
-        self._set_property("highlightcolor", arg, highlightcolor)
-        self._set_property("highlightwidth", arg, highlightwidth)
-        self._set_property("project", arg, project)
-        self._set_property("show", arg, show)
-        self._set_property("size", arg, size)
-        self._set_property("start", arg, start)
-        self._set_property("usecolormap", arg, usecolormap)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.surface.contours.Y`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('end', arg, end)
+        self._set_property('highlight', arg, highlight)
+        self._set_property('highlightcolor', arg, highlightcolor)
+        self._set_property('highlightwidth', arg, highlightwidth)
+        self._set_property('project', arg, project)
+        self._set_property('show', arg, show)
+        self._set_property('size', arg, size)
+        self._set_property('start', arg, start)
+        self._set_property('usecolormap', arg, usecolormap)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/contours/_z.py b/plotly/graph_objs/surface/contours/_z.py
index c54852be91f..11dd521a184 100644
--- a/plotly/graph_objs/surface/contours/_z.py
+++ b/plotly/graph_objs/surface/contours/_z.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,21 +11,9 @@
 
 class Z(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface.contours"
-    _path_str = "surface.contours.z"
-    _valid_props = {
-        "color",
-        "end",
-        "highlight",
-        "highlightcolor",
-        "highlightwidth",
-        "project",
-        "show",
-        "size",
-        "start",
-        "usecolormap",
-        "width",
-    }
+    _parent_path_str = 'surface.contours'
+    _path_str = 'surface.contours.z'
+    _valid_props = {"color", "end", "highlight", "highlightcolor", "highlightwidth", "project", "show", "size", "start", "usecolormap", "width"}
 
     @property
     def color(self):
@@ -39,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def end(self):
@@ -58,11 +50,11 @@ def end(self):
         -------
         int|float
         """
-        return self["end"]
+        return self['end']
 
     @end.setter
     def end(self, val):
-        self["end"] = val
+        self['end'] = val
 
     @property
     def highlight(self):
@@ -77,11 +69,11 @@ def highlight(self):
         -------
         bool
         """
-        return self["highlight"]
+        return self['highlight']
 
     @highlight.setter
     def highlight(self, val):
-        self["highlight"] = val
+        self['highlight'] = val
 
     @property
     def highlightcolor(self):
@@ -99,11 +91,11 @@ def highlightcolor(self):
         -------
         str
         """
-        return self["highlightcolor"]
+        return self['highlightcolor']
 
     @highlightcolor.setter
     def highlightcolor(self, val):
-        self["highlightcolor"] = val
+        self['highlightcolor'] = val
 
     @property
     def highlightwidth(self):
@@ -117,11 +109,11 @@ def highlightwidth(self):
         -------
         int|float
         """
-        return self["highlightwidth"]
+        return self['highlightwidth']
 
     @highlightwidth.setter
     def highlightwidth(self, val):
-        self["highlightwidth"] = val
+        self['highlightwidth'] = val
 
     @property
     def project(self):
@@ -136,11 +128,11 @@ def project(self):
         -------
         plotly.graph_objs.surface.contours.z.Project
         """
-        return self["project"]
+        return self['project']
 
     @project.setter
     def project(self, val):
-        self["project"] = val
+        self['project'] = val
 
     @property
     def show(self):
@@ -155,11 +147,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def size(self):
@@ -173,11 +165,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def start(self):
@@ -192,11 +184,11 @@ def start(self):
         -------
         int|float
         """
-        return self["start"]
+        return self['start']
 
     @start.setter
     def start(self, val):
-        self["start"] = val
+        self['start'] = val
 
     @property
     def usecolormap(self):
@@ -211,11 +203,11 @@ def usecolormap(self):
         -------
         bool
         """
-        return self["usecolormap"]
+        return self['usecolormap']
 
     @usecolormap.setter
     def usecolormap(self, val):
-        self["usecolormap"] = val
+        self['usecolormap'] = val
 
     @property
     def width(self):
@@ -229,11 +221,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -268,23 +260,21 @@ def _prop_descriptions(self):
         width
             Sets the width of the contour lines.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        end=None,
-        highlight=None,
-        highlightcolor=None,
-        highlightwidth=None,
-        project=None,
-        show=None,
-        size=None,
-        start=None,
-        usecolormap=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            end=None,
+            highlight=None,
+            highlightcolor=None,
+            highlightwidth=None,
+            project=None,
+            show=None,
+            size=None,
+            start=None,
+            usecolormap=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Z object
 
@@ -328,9 +318,9 @@ def __init__(
         -------
         Z
         """
-        super().__init__("z")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('z')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -340,26 +330,26 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.contours.Z
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.contours.Z`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("end", arg, end)
-        self._set_property("highlight", arg, highlight)
-        self._set_property("highlightcolor", arg, highlightcolor)
-        self._set_property("highlightwidth", arg, highlightwidth)
-        self._set_property("project", arg, project)
-        self._set_property("show", arg, show)
-        self._set_property("size", arg, size)
-        self._set_property("start", arg, start)
-        self._set_property("usecolormap", arg, usecolormap)
-        self._set_property("width", arg, width)
+an instance of :class:`plotly.graph_objs.surface.contours.Z`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('end', arg, end)
+        self._set_property('highlight', arg, highlight)
+        self._set_property('highlightcolor', arg, highlightcolor)
+        self._set_property('highlightwidth', arg, highlightwidth)
+        self._set_property('project', arg, project)
+        self._set_property('show', arg, show)
+        self._set_property('size', arg, size)
+        self._set_property('start', arg, start)
+        self._set_property('usecolormap', arg, usecolormap)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/contours/x/__init__.py b/plotly/graph_objs/surface/contours/x/__init__.py
index a27203b57fc..7316df57f9c 100644
--- a/plotly/graph_objs/surface/contours/x/__init__.py
+++ b/plotly/graph_objs/surface/contours/x/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._project import Project
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._project.Project']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._project.Project"])
diff --git a/plotly/graph_objs/surface/contours/x/_project.py b/plotly/graph_objs/surface/contours/x/_project.py
index 580100f0060..8de93a41b6b 100644
--- a/plotly/graph_objs/surface/contours/x/_project.py
+++ b/plotly/graph_objs/surface/contours/x/_project.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Project(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface.contours.x"
-    _path_str = "surface.contours.x.project"
+    _parent_path_str = 'surface.contours.x'
+    _path_str = 'surface.contours.x.project'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -26,11 +30,11 @@ def x(self):
         -------
         bool
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -47,11 +51,11 @@ def y(self):
         -------
         bool
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -68,11 +72,11 @@ def z(self):
         -------
         bool
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -96,8 +100,13 @@ def _prop_descriptions(self):
             If `show` is set to True, the projected lines are shown
             in permanence.
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Project object
 
@@ -130,9 +139,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Project
         """
-        super().__init__("project")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('project')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -142,18 +151,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.contours.x.Project
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.contours.x.Project`"""
-            )
+an instance of :class:`plotly.graph_objs.surface.contours.x.Project`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/contours/y/__init__.py b/plotly/graph_objs/surface/contours/y/__init__.py
index a27203b57fc..7316df57f9c 100644
--- a/plotly/graph_objs/surface/contours/y/__init__.py
+++ b/plotly/graph_objs/surface/contours/y/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._project import Project
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._project.Project']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._project.Project"])
diff --git a/plotly/graph_objs/surface/contours/y/_project.py b/plotly/graph_objs/surface/contours/y/_project.py
index d2b86175e87..e0df2e42704 100644
--- a/plotly/graph_objs/surface/contours/y/_project.py
+++ b/plotly/graph_objs/surface/contours/y/_project.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Project(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface.contours.y"
-    _path_str = "surface.contours.y.project"
+    _parent_path_str = 'surface.contours.y'
+    _path_str = 'surface.contours.y.project'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -26,11 +30,11 @@ def x(self):
         -------
         bool
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -47,11 +51,11 @@ def y(self):
         -------
         bool
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -68,11 +72,11 @@ def z(self):
         -------
         bool
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -96,8 +100,13 @@ def _prop_descriptions(self):
             If `show` is set to True, the projected lines are shown
             in permanence.
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Project object
 
@@ -130,9 +139,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Project
         """
-        super().__init__("project")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('project')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -142,18 +151,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.contours.y.Project
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.contours.y.Project`"""
-            )
+an instance of :class:`plotly.graph_objs.surface.contours.y.Project`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/contours/z/__init__.py b/plotly/graph_objs/surface/contours/z/__init__.py
index a27203b57fc..7316df57f9c 100644
--- a/plotly/graph_objs/surface/contours/z/__init__.py
+++ b/plotly/graph_objs/surface/contours/z/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._project import Project
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._project.Project']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._project.Project"])
diff --git a/plotly/graph_objs/surface/contours/z/_project.py b/plotly/graph_objs/surface/contours/z/_project.py
index 00eabf2a1d2..bbc2659451d 100644
--- a/plotly/graph_objs/surface/contours/z/_project.py
+++ b/plotly/graph_objs/surface/contours/z/_project.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Project(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface.contours.z"
-    _path_str = "surface.contours.z.project"
+    _parent_path_str = 'surface.contours.z'
+    _path_str = 'surface.contours.z.project'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -26,11 +30,11 @@ def x(self):
         -------
         bool
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -47,11 +51,11 @@ def y(self):
         -------
         bool
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -68,11 +72,11 @@ def z(self):
         -------
         bool
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -96,8 +100,13 @@ def _prop_descriptions(self):
             If `show` is set to True, the projected lines are shown
             in permanence.
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Project object
 
@@ -130,9 +139,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Project
         """
-        super().__init__("project")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('project')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -142,18 +151,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.contours.z.Project
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.contours.z.Project`"""
-            )
+an instance of :class:`plotly.graph_objs.surface.contours.z.Project`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/hoverlabel/__init__.py b/plotly/graph_objs/surface/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/surface/hoverlabel/__init__.py
+++ b/plotly/graph_objs/surface/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/surface/hoverlabel/_font.py b/plotly/graph_objs/surface/hoverlabel/_font.py
index 988b39cabfc..39e01ff1762 100644
--- a/plotly/graph_objs/surface/hoverlabel/_font.py
+++ b/plotly/graph_objs/surface/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface.hoverlabel"
-    _path_str = "surface.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'surface.hoverlabel'
+    _path_str = 'surface.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.surface.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/surface/legendgrouptitle/__init__.py b/plotly/graph_objs/surface/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/surface/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/surface/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/surface/legendgrouptitle/_font.py b/plotly/graph_objs/surface/legendgrouptitle/_font.py
index a4d9577f722..ec86f5f1e42 100644
--- a/plotly/graph_objs/surface/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/surface/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "surface.legendgrouptitle"
-    _path_str = "surface.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'surface.legendgrouptitle'
+    _path_str = 'surface.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.surface.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.surface.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.surface.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/table/__init__.py b/plotly/graph_objs/table/__init__.py
index cc43fc1ce90..99d60514338 100644
--- a/plotly/graph_objs/table/__init__.py
+++ b/plotly/graph_objs/table/__init__.py
@@ -1,15 +1,22 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._cells import Cells
+    from ._domain import Domain
+    from ._header import Header
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._stream import Stream
+    from . import cells
+    from . import header
+    from . import hoverlabel
+    from . import legendgrouptitle
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.cells', '.header', '.hoverlabel', '.legendgrouptitle'],
+        ['._cells.Cells', '._domain.Domain', '._header.Header', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._stream.Stream']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".cells", ".header", ".hoverlabel", ".legendgrouptitle"],
-    [
-        "._cells.Cells",
-        "._domain.Domain",
-        "._header.Header",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._stream.Stream",
-    ],
-)
diff --git a/plotly/graph_objs/table/_cells.py b/plotly/graph_objs/table/_cells.py
index 58d1c220ac6..24aa3d78c11 100644
--- a/plotly/graph_objs/table/_cells.py
+++ b/plotly/graph_objs/table/_cells.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,24 +11,9 @@
 
 class Cells(_BaseTraceHierarchyType):
 
-    _parent_path_str = "table"
-    _path_str = "table.cells"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "fill",
-        "font",
-        "format",
-        "formatsrc",
-        "height",
-        "line",
-        "prefix",
-        "prefixsrc",
-        "suffix",
-        "suffixsrc",
-        "values",
-        "valuessrc",
-    }
+    _parent_path_str = 'table'
+    _path_str = 'table.cells'
+    _valid_props = {"align", "alignsrc", "fill", "font", "format", "formatsrc", "height", "line", "prefix", "prefixsrc", "suffix", "suffixsrc", "values", "valuessrc"}
 
     @property
     def align(self):
@@ -43,11 +32,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -61,11 +50,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def fill(self):
@@ -80,11 +69,11 @@ def fill(self):
         -------
         plotly.graph_objs.table.cells.Fill
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def font(self):
@@ -99,11 +88,11 @@ def font(self):
         -------
         plotly.graph_objs.table.cells.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def format(self):
@@ -120,11 +109,11 @@ def format(self):
         -------
         numpy.ndarray
         """
-        return self["format"]
+        return self['format']
 
     @format.setter
     def format(self, val):
-        self["format"] = val
+        self['format'] = val
 
     @property
     def formatsrc(self):
@@ -138,11 +127,11 @@ def formatsrc(self):
         -------
         str
         """
-        return self["formatsrc"]
+        return self['formatsrc']
 
     @formatsrc.setter
     def formatsrc(self, val):
-        self["formatsrc"] = val
+        self['formatsrc'] = val
 
     @property
     def height(self):
@@ -156,11 +145,11 @@ def height(self):
         -------
         int|float
         """
-        return self["height"]
+        return self['height']
 
     @height.setter
     def height(self, val):
-        self["height"] = val
+        self['height'] = val
 
     @property
     def line(self):
@@ -175,11 +164,11 @@ def line(self):
         -------
         plotly.graph_objs.table.cells.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def prefix(self):
@@ -195,11 +184,11 @@ def prefix(self):
         -------
         str|numpy.ndarray
         """
-        return self["prefix"]
+        return self['prefix']
 
     @prefix.setter
     def prefix(self, val):
-        self["prefix"] = val
+        self['prefix'] = val
 
     @property
     def prefixsrc(self):
@@ -213,11 +202,11 @@ def prefixsrc(self):
         -------
         str
         """
-        return self["prefixsrc"]
+        return self['prefixsrc']
 
     @prefixsrc.setter
     def prefixsrc(self, val):
-        self["prefixsrc"] = val
+        self['prefixsrc'] = val
 
     @property
     def suffix(self):
@@ -233,11 +222,11 @@ def suffix(self):
         -------
         str|numpy.ndarray
         """
-        return self["suffix"]
+        return self['suffix']
 
     @suffix.setter
     def suffix(self, val):
-        self["suffix"] = val
+        self['suffix'] = val
 
     @property
     def suffixsrc(self):
@@ -251,11 +240,11 @@ def suffixsrc(self):
         -------
         str
         """
-        return self["suffixsrc"]
+        return self['suffixsrc']
 
     @suffixsrc.setter
     def suffixsrc(self, val):
-        self["suffixsrc"] = val
+        self['suffixsrc'] = val
 
     @property
     def values(self):
@@ -272,11 +261,11 @@ def values(self):
         -------
         numpy.ndarray
         """
-        return self["values"]
+        return self['values']
 
     @values.setter
     def values(self, val):
-        self["values"] = val
+        self['values'] = val
 
     @property
     def valuessrc(self):
@@ -290,11 +279,11 @@ def valuessrc(self):
         -------
         str
         """
-        return self["valuessrc"]
+        return self['valuessrc']
 
     @valuessrc.setter
     def valuessrc(self, val):
-        self["valuessrc"] = val
+        self['valuessrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -347,26 +336,24 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `values`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        fill=None,
-        font=None,
-        format=None,
-        formatsrc=None,
-        height=None,
-        line=None,
-        prefix=None,
-        prefixsrc=None,
-        suffix=None,
-        suffixsrc=None,
-        values=None,
-        valuessrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            fill=None,
+            font=None,
+            format=None,
+            formatsrc=None,
+            height=None,
+            line=None,
+            prefix=None,
+            prefixsrc=None,
+            suffix=None,
+            suffixsrc=None,
+            values=None,
+            valuessrc=None,
+            **kwargs
+        ):
         """
         Construct a new Cells object
 
@@ -427,9 +414,9 @@ def __init__(
         -------
         Cells
         """
-        super().__init__("cells")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('cells')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -439,29 +426,29 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.table.Cells
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.table.Cells`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("fill", arg, fill)
-        self._set_property("font", arg, font)
-        self._set_property("format", arg, format)
-        self._set_property("formatsrc", arg, formatsrc)
-        self._set_property("height", arg, height)
-        self._set_property("line", arg, line)
-        self._set_property("prefix", arg, prefix)
-        self._set_property("prefixsrc", arg, prefixsrc)
-        self._set_property("suffix", arg, suffix)
-        self._set_property("suffixsrc", arg, suffixsrc)
-        self._set_property("values", arg, values)
-        self._set_property("valuessrc", arg, valuessrc)
+an instance of :class:`plotly.graph_objs.table.Cells`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('fill', arg, fill)
+        self._set_property('font', arg, font)
+        self._set_property('format', arg, format)
+        self._set_property('formatsrc', arg, formatsrc)
+        self._set_property('height', arg, height)
+        self._set_property('line', arg, line)
+        self._set_property('prefix', arg, prefix)
+        self._set_property('prefixsrc', arg, prefixsrc)
+        self._set_property('suffix', arg, suffix)
+        self._set_property('suffixsrc', arg, suffixsrc)
+        self._set_property('values', arg, values)
+        self._set_property('valuessrc', arg, valuessrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/table/_domain.py b/plotly/graph_objs/table/_domain.py
index ae906a4b5bb..aeaa453b3a4 100644
--- a/plotly/graph_objs/table/_domain.py
+++ b/plotly/graph_objs/table/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseTraceHierarchyType):
 
-    _parent_path_str = "table"
-    _path_str = "table.domain"
+    _parent_path_str = 'table'
+    _path_str = 'table.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -25,11 +29,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -45,59 +49,59 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this table trace (in plot
-            fraction).
+        Sets the horizontal domain of this table trace (in plot
+        fraction).
 
-            The 'x' property is an info array that may be specified as:
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this table trace (in plot
-            fraction).
-
-            The 'y' property is an info array that may be specified as:
+        Sets the vertical domain of this table trace (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,8 +119,14 @@ def _prop_descriptions(self):
             Sets the vertical domain of this table trace (in plot
             fraction).
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -142,9 +152,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -154,19 +164,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.table.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.table.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.table.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/table/_header.py b/plotly/graph_objs/table/_header.py
index cf30763ab61..a6a16cb3f50 100644
--- a/plotly/graph_objs/table/_header.py
+++ b/plotly/graph_objs/table/_header.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,24 +11,9 @@
 
 class Header(_BaseTraceHierarchyType):
 
-    _parent_path_str = "table"
-    _path_str = "table.header"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "fill",
-        "font",
-        "format",
-        "formatsrc",
-        "height",
-        "line",
-        "prefix",
-        "prefixsrc",
-        "suffix",
-        "suffixsrc",
-        "values",
-        "valuessrc",
-    }
+    _parent_path_str = 'table'
+    _path_str = 'table.header'
+    _valid_props = {"align", "alignsrc", "fill", "font", "format", "formatsrc", "height", "line", "prefix", "prefixsrc", "suffix", "suffixsrc", "values", "valuessrc"}
 
     @property
     def align(self):
@@ -43,11 +32,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -61,11 +50,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def fill(self):
@@ -80,11 +69,11 @@ def fill(self):
         -------
         plotly.graph_objs.table.header.Fill
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def font(self):
@@ -99,11 +88,11 @@ def font(self):
         -------
         plotly.graph_objs.table.header.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def format(self):
@@ -120,11 +109,11 @@ def format(self):
         -------
         numpy.ndarray
         """
-        return self["format"]
+        return self['format']
 
     @format.setter
     def format(self, val):
-        self["format"] = val
+        self['format'] = val
 
     @property
     def formatsrc(self):
@@ -138,11 +127,11 @@ def formatsrc(self):
         -------
         str
         """
-        return self["formatsrc"]
+        return self['formatsrc']
 
     @formatsrc.setter
     def formatsrc(self, val):
-        self["formatsrc"] = val
+        self['formatsrc'] = val
 
     @property
     def height(self):
@@ -156,11 +145,11 @@ def height(self):
         -------
         int|float
         """
-        return self["height"]
+        return self['height']
 
     @height.setter
     def height(self, val):
-        self["height"] = val
+        self['height'] = val
 
     @property
     def line(self):
@@ -175,11 +164,11 @@ def line(self):
         -------
         plotly.graph_objs.table.header.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def prefix(self):
@@ -195,11 +184,11 @@ def prefix(self):
         -------
         str|numpy.ndarray
         """
-        return self["prefix"]
+        return self['prefix']
 
     @prefix.setter
     def prefix(self, val):
-        self["prefix"] = val
+        self['prefix'] = val
 
     @property
     def prefixsrc(self):
@@ -213,11 +202,11 @@ def prefixsrc(self):
         -------
         str
         """
-        return self["prefixsrc"]
+        return self['prefixsrc']
 
     @prefixsrc.setter
     def prefixsrc(self, val):
-        self["prefixsrc"] = val
+        self['prefixsrc'] = val
 
     @property
     def suffix(self):
@@ -233,11 +222,11 @@ def suffix(self):
         -------
         str|numpy.ndarray
         """
-        return self["suffix"]
+        return self['suffix']
 
     @suffix.setter
     def suffix(self, val):
-        self["suffix"] = val
+        self['suffix'] = val
 
     @property
     def suffixsrc(self):
@@ -251,11 +240,11 @@ def suffixsrc(self):
         -------
         str
         """
-        return self["suffixsrc"]
+        return self['suffixsrc']
 
     @suffixsrc.setter
     def suffixsrc(self, val):
-        self["suffixsrc"] = val
+        self['suffixsrc'] = val
 
     @property
     def values(self):
@@ -272,11 +261,11 @@ def values(self):
         -------
         numpy.ndarray
         """
-        return self["values"]
+        return self['values']
 
     @values.setter
     def values(self, val):
-        self["values"] = val
+        self['values'] = val
 
     @property
     def valuessrc(self):
@@ -290,11 +279,11 @@ def valuessrc(self):
         -------
         str
         """
-        return self["valuessrc"]
+        return self['valuessrc']
 
     @valuessrc.setter
     def valuessrc(self, val):
-        self["valuessrc"] = val
+        self['valuessrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -347,26 +336,24 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `values`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        fill=None,
-        font=None,
-        format=None,
-        formatsrc=None,
-        height=None,
-        line=None,
-        prefix=None,
-        prefixsrc=None,
-        suffix=None,
-        suffixsrc=None,
-        values=None,
-        valuessrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            fill=None,
+            font=None,
+            format=None,
+            formatsrc=None,
+            height=None,
+            line=None,
+            prefix=None,
+            prefixsrc=None,
+            suffix=None,
+            suffixsrc=None,
+            values=None,
+            valuessrc=None,
+            **kwargs
+        ):
         """
         Construct a new Header object
 
@@ -427,9 +414,9 @@ def __init__(
         -------
         Header
         """
-        super().__init__("header")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('header')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -439,29 +426,29 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.table.Header
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.table.Header`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("fill", arg, fill)
-        self._set_property("font", arg, font)
-        self._set_property("format", arg, format)
-        self._set_property("formatsrc", arg, formatsrc)
-        self._set_property("height", arg, height)
-        self._set_property("line", arg, line)
-        self._set_property("prefix", arg, prefix)
-        self._set_property("prefixsrc", arg, prefixsrc)
-        self._set_property("suffix", arg, suffix)
-        self._set_property("suffixsrc", arg, suffixsrc)
-        self._set_property("values", arg, values)
-        self._set_property("valuessrc", arg, valuessrc)
+an instance of :class:`plotly.graph_objs.table.Header`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('fill', arg, fill)
+        self._set_property('font', arg, font)
+        self._set_property('format', arg, format)
+        self._set_property('formatsrc', arg, formatsrc)
+        self._set_property('height', arg, height)
+        self._set_property('line', arg, line)
+        self._set_property('prefix', arg, prefix)
+        self._set_property('prefixsrc', arg, prefixsrc)
+        self._set_property('suffix', arg, suffix)
+        self._set_property('suffixsrc', arg, suffixsrc)
+        self._set_property('values', arg, values)
+        self._set_property('valuessrc', arg, valuessrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/table/_hoverlabel.py b/plotly/graph_objs/table/_hoverlabel.py
index 6cd2eba57dc..b1d8d2eab34 100644
--- a/plotly/graph_objs/table/_hoverlabel.py
+++ b/plotly/graph_objs/table/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "table"
-    _path_str = "table.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'table'
+    _path_str = 'table.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.table.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.table.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.table.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.table.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/table/_legendgrouptitle.py b/plotly/graph_objs/table/_legendgrouptitle.py
index 49b6fd734c7..e4dbea31e4a 100644
--- a/plotly/graph_objs/table/_legendgrouptitle.py
+++ b/plotly/graph_objs/table/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "table"
-    _path_str = "table.legendgrouptitle"
+    _parent_path_str = 'table'
+    _path_str = 'table.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.table.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.table.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.table.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.table.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/table/_stream.py b/plotly/graph_objs/table/_stream.py
index e79f83fa720..c91e56a685a 100644
--- a/plotly/graph_objs/table/_stream.py
+++ b/plotly/graph_objs/table/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "table"
-    _path_str = "table.stream"
+    _parent_path_str = 'table'
+    _path_str = 'table.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.table.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.table.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.table.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/table/cells/__init__.py b/plotly/graph_objs/table/cells/__init__.py
index 7679bc70a10..cfcaeb39a19 100644
--- a/plotly/graph_objs/table/cells/__init__.py
+++ b/plotly/graph_objs/table/cells/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._fill import Fill
+    from ._font import Font
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._fill.Fill', '._font.Font', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._fill.Fill", "._font.Font", "._line.Line"]
-)
diff --git a/plotly/graph_objs/table/cells/_fill.py b/plotly/graph_objs/table/cells/_fill.py
index e625f0c048b..4d8dae4a477 100644
--- a/plotly/graph_objs/table/cells/_fill.py
+++ b/plotly/graph_objs/table/cells/_fill.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Fill(_BaseTraceHierarchyType):
 
-    _parent_path_str = "table.cells"
-    _path_str = "table.cells.fill"
+    _parent_path_str = 'table.cells'
+    _path_str = 'table.cells.fill'
     _valid_props = {"color", "colorsrc"}
 
     @property
@@ -29,11 +33,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -47,11 +51,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -63,8 +67,12 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `color`.
         """
-
-    def __init__(self, arg=None, color=None, colorsrc=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Fill object
 
@@ -85,9 +93,9 @@ def __init__(self, arg=None, color=None, colorsrc=None, **kwargs):
         -------
         Fill
         """
-        super().__init__("fill")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('fill')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -97,17 +105,17 @@ def __init__(self, arg=None, color=None, colorsrc=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.table.cells.Fill
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.table.cells.Fill`"""
-            )
+an instance of :class:`plotly.graph_objs.table.cells.Fill`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/table/cells/_font.py b/plotly/graph_objs/table/cells/_font.py
index 4f5f006f79c..1184ff9c22e 100644
--- a/plotly/graph_objs/table/cells/_font.py
+++ b/plotly/graph_objs/table/cells/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "table.cells"
-    _path_str = "table.cells.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'table.cells'
+    _path_str = 'table.cells.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -544,9 +527,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -556,33 +539,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.table.cells.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.table.cells.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.table.cells.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/table/cells/_line.py b/plotly/graph_objs/table/cells/_line.py
index 5dc7286a827..d29ae299228 100644
--- a/plotly/graph_objs/table/cells/_line.py
+++ b/plotly/graph_objs/table/cells/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "table.cells"
-    _path_str = "table.cells.line"
+    _parent_path_str = 'table.cells'
+    _path_str = 'table.cells.line'
     _valid_props = {"color", "colorsrc", "width", "widthsrc"}
 
     @property
@@ -26,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -44,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def width(self):
@@ -61,11 +65,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -79,11 +83,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -99,10 +103,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, width=None, widthsrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -127,9 +135,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -139,19 +147,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.table.cells.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.table.cells.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.table.cells.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/table/header/__init__.py b/plotly/graph_objs/table/header/__init__.py
index 7679bc70a10..cfcaeb39a19 100644
--- a/plotly/graph_objs/table/header/__init__.py
+++ b/plotly/graph_objs/table/header/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._fill import Fill
+    from ._font import Font
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._fill.Fill', '._font.Font', '._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._fill.Fill", "._font.Font", "._line.Line"]
-)
diff --git a/plotly/graph_objs/table/header/_fill.py b/plotly/graph_objs/table/header/_fill.py
index 5ce91c4eb05..b38f8d3533a 100644
--- a/plotly/graph_objs/table/header/_fill.py
+++ b/plotly/graph_objs/table/header/_fill.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Fill(_BaseTraceHierarchyType):
 
-    _parent_path_str = "table.header"
-    _path_str = "table.header.fill"
+    _parent_path_str = 'table.header'
+    _path_str = 'table.header.fill'
     _valid_props = {"color", "colorsrc"}
 
     @property
@@ -29,11 +33,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -47,11 +51,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -63,8 +67,12 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `color`.
         """
-
-    def __init__(self, arg=None, color=None, colorsrc=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Fill object
 
@@ -85,9 +93,9 @@ def __init__(self, arg=None, color=None, colorsrc=None, **kwargs):
         -------
         Fill
         """
-        super().__init__("fill")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('fill')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -97,17 +105,17 @@ def __init__(self, arg=None, color=None, colorsrc=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.table.header.Fill
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.table.header.Fill`"""
-            )
+an instance of :class:`plotly.graph_objs.table.header.Fill`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/table/header/_font.py b/plotly/graph_objs/table/header/_font.py
index cc2a81f26d5..6ba3a946f99 100644
--- a/plotly/graph_objs/table/header/_font.py
+++ b/plotly/graph_objs/table/header/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "table.header"
-    _path_str = "table.header.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'table.header'
+    _path_str = 'table.header.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -544,9 +527,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -556,33 +539,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.table.header.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.table.header.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.table.header.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/table/header/_line.py b/plotly/graph_objs/table/header/_line.py
index f1e4c71e282..4cf3cbe0387 100644
--- a/plotly/graph_objs/table/header/_line.py
+++ b/plotly/graph_objs/table/header/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "table.header"
-    _path_str = "table.header.line"
+    _parent_path_str = 'table.header'
+    _path_str = 'table.header.line'
     _valid_props = {"color", "colorsrc", "width", "widthsrc"}
 
     @property
@@ -26,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -44,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def width(self):
@@ -61,11 +65,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -79,11 +83,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -99,10 +103,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, width=None, widthsrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -127,9 +135,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -139,19 +147,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.table.header.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.table.header.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.table.header.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/table/hoverlabel/__init__.py b/plotly/graph_objs/table/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/table/hoverlabel/__init__.py
+++ b/plotly/graph_objs/table/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/table/hoverlabel/_font.py b/plotly/graph_objs/table/hoverlabel/_font.py
index 4d8d02adedc..c5b020c0a0b 100644
--- a/plotly/graph_objs/table/hoverlabel/_font.py
+++ b/plotly/graph_objs/table/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "table.hoverlabel"
-    _path_str = "table.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'table.hoverlabel'
+    _path_str = 'table.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.table.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.table.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.table.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/table/legendgrouptitle/__init__.py b/plotly/graph_objs/table/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/table/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/table/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/table/legendgrouptitle/_font.py b/plotly/graph_objs/table/legendgrouptitle/_font.py
index 8b7f26a9249..adab32d700b 100644
--- a/plotly/graph_objs/table/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/table/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "table.legendgrouptitle"
-    _path_str = "table.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'table.legendgrouptitle'
+    _path_str = 'table.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.table.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.table.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.table.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/__init__.py b/plotly/graph_objs/treemap/__init__.py
index 8d5d9442951..d271bb3cf0e 100644
--- a/plotly/graph_objs/treemap/__init__.py
+++ b/plotly/graph_objs/treemap/__init__.py
@@ -1,20 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._domain import Domain
+    from ._hoverlabel import Hoverlabel
+    from ._insidetextfont import Insidetextfont
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._marker import Marker
+    from ._outsidetextfont import Outsidetextfont
+    from ._pathbar import Pathbar
+    from ._root import Root
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._tiling import Tiling
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import pathbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.hoverlabel', '.legendgrouptitle', '.marker', '.pathbar'],
+        ['._domain.Domain', '._hoverlabel.Hoverlabel', '._insidetextfont.Insidetextfont', '._legendgrouptitle.Legendgrouptitle', '._marker.Marker', '._outsidetextfont.Outsidetextfont', '._pathbar.Pathbar', '._root.Root', '._stream.Stream', '._textfont.Textfont', '._tiling.Tiling']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".hoverlabel", ".legendgrouptitle", ".marker", ".pathbar"],
-    [
-        "._domain.Domain",
-        "._hoverlabel.Hoverlabel",
-        "._insidetextfont.Insidetextfont",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._marker.Marker",
-        "._outsidetextfont.Outsidetextfont",
-        "._pathbar.Pathbar",
-        "._root.Root",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._tiling.Tiling",
-    ],
-)
diff --git a/plotly/graph_objs/treemap/_domain.py b/plotly/graph_objs/treemap/_domain.py
index 92bb0149610..74bb1b7b2d9 100644
--- a/plotly/graph_objs/treemap/_domain.py
+++ b/plotly/graph_objs/treemap/_domain.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Domain(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap"
-    _path_str = "treemap.domain"
+    _parent_path_str = 'treemap'
+    _path_str = 'treemap.domain'
     _valid_props = {"column", "row", "x", "y"}
 
     @property
@@ -25,11 +29,11 @@ def column(self):
         -------
         int
         """
-        return self["column"]
+        return self['column']
 
     @column.setter
     def column(self, val):
-        self["column"] = val
+        self['column'] = val
 
     @property
     def row(self):
@@ -45,59 +49,59 @@ def row(self):
         -------
         int
         """
-        return self["row"]
+        return self['row']
 
     @row.setter
     def row(self, val):
-        self["row"] = val
+        self['row'] = val
 
     @property
     def x(self):
         """
-            Sets the horizontal domain of this treemap trace (in plot
-            fraction).
-
-            The 'x' property is an info array that may be specified as:
+        Sets the horizontal domain of this treemap trace (in plot
+        fraction).
 
-            * a list or tuple of 2 elements where:
-        (0) The 'x[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'x[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
+        The 'x' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'x[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'x[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
         """
-            Sets the vertical domain of this treemap trace (in plot
-            fraction).
+        Sets the vertical domain of this treemap trace (in plot
+        fraction).
 
-            The 'y' property is an info array that may be specified as:
+        The 'y' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'y[0]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
+    (1) The 'y[1]' property is a number and may be specified as:
+          - An int or float in the interval [0, 1]
 
-            * a list or tuple of 2 elements where:
-        (0) The 'y[0]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-        (1) The 'y[1]' property is a number and may be specified as:
-              - An int or float in the interval [0, 1]
-
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,8 +119,14 @@ def _prop_descriptions(self):
             Sets the vertical domain of this treemap trace (in plot
             fraction).
         """
-
-    def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            column=None,
+            row=None,
+            x=None,
+            y=None,
+            **kwargs
+        ):
         """
         Construct a new Domain object
 
@@ -143,9 +153,9 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         -------
         Domain
         """
-        super().__init__("domain")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('domain')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -155,19 +165,19 @@ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.Domain
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.Domain`"""
-            )
+an instance of :class:`plotly.graph_objs.treemap.Domain`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("column", arg, column)
-        self._set_property("row", arg, row)
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
+        self._set_property('column', arg, column)
+        self._set_property('row', arg, row)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/_hoverlabel.py b/plotly/graph_objs/treemap/_hoverlabel.py
index 9a59665ff5e..b78358eae07 100644
--- a/plotly/graph_objs/treemap/_hoverlabel.py
+++ b/plotly/graph_objs/treemap/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap"
-    _path_str = "treemap.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'treemap'
+    _path_str = 'treemap.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.treemap.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.treemap.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/_insidetextfont.py b/plotly/graph_objs/treemap/_insidetextfont.py
index 889a6d980b2..4133e41fc69 100644
--- a/plotly/graph_objs/treemap/_insidetextfont.py
+++ b/plotly/graph_objs/treemap/_insidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Insidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap"
-    _path_str = "treemap.insidetextfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'treemap'
+    _path_str = 'treemap.insidetextfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Insidetextfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Insidetextfont
         """
-        super().__init__("insidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('insidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.Insidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.Insidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.treemap.Insidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/_legendgrouptitle.py b/plotly/graph_objs/treemap/_legendgrouptitle.py
index d2b05b787ff..92c21d7a5b2 100644
--- a/plotly/graph_objs/treemap/_legendgrouptitle.py
+++ b/plotly/graph_objs/treemap/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap"
-    _path_str = "treemap.legendgrouptitle"
+    _parent_path_str = 'treemap'
+    _path_str = 'treemap.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.treemap.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.treemap.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/_marker.py b/plotly/graph_objs/treemap/_marker.py
index 4783555d02b..587cefefe0c 100644
--- a/plotly/graph_objs/treemap/_marker.py
+++ b/plotly/graph_objs/treemap/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,27 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap"
-    _path_str = "treemap.marker"
-    _valid_props = {
-        "autocolorscale",
-        "cauto",
-        "cmax",
-        "cmid",
-        "cmin",
-        "coloraxis",
-        "colorbar",
-        "colors",
-        "colorscale",
-        "colorssrc",
-        "cornerradius",
-        "depthfade",
-        "line",
-        "pad",
-        "pattern",
-        "reversescale",
-        "showscale",
-    }
+    _parent_path_str = 'treemap'
+    _path_str = 'treemap.marker'
+    _valid_props = {"autocolorscale", "cauto", "cmax", "cmid", "cmin", "coloraxis", "colorbar", "colors", "colorscale", "colorssrc", "cornerradius", "depthfade", "line", "pad", "pattern", "reversescale", "showscale"}
 
     @property
     def autocolorscale(self):
@@ -47,11 +33,11 @@ def autocolorscale(self):
         -------
         bool
         """
-        return self["autocolorscale"]
+        return self['autocolorscale']
 
     @autocolorscale.setter
     def autocolorscale(self, val):
-        self["autocolorscale"] = val
+        self['autocolorscale'] = val
 
     @property
     def cauto(self):
@@ -69,11 +55,11 @@ def cauto(self):
         -------
         bool
         """
-        return self["cauto"]
+        return self['cauto']
 
     @cauto.setter
     def cauto(self, val):
-        self["cauto"] = val
+        self['cauto'] = val
 
     @property
     def cmax(self):
@@ -89,11 +75,11 @@ def cmax(self):
         -------
         int|float
         """
-        return self["cmax"]
+        return self['cmax']
 
     @cmax.setter
     def cmax(self, val):
-        self["cmax"] = val
+        self['cmax'] = val
 
     @property
     def cmid(self):
@@ -111,11 +97,11 @@ def cmid(self):
         -------
         int|float
         """
-        return self["cmid"]
+        return self['cmid']
 
     @cmid.setter
     def cmid(self, val):
-        self["cmid"] = val
+        self['cmid'] = val
 
     @property
     def cmin(self):
@@ -131,11 +117,11 @@ def cmin(self):
         -------
         int|float
         """
-        return self["cmin"]
+        return self['cmin']
 
     @cmin.setter
     def cmin(self, val):
-        self["cmin"] = val
+        self['cmin'] = val
 
     @property
     def coloraxis(self):
@@ -156,11 +142,11 @@ def coloraxis(self):
         -------
         str
         """
-        return self["coloraxis"]
+        return self['coloraxis']
 
     @coloraxis.setter
     def coloraxis(self, val):
-        self["coloraxis"] = val
+        self['coloraxis'] = val
 
     @property
     def colorbar(self):
@@ -175,11 +161,11 @@ def colorbar(self):
         -------
         plotly.graph_objs.treemap.marker.ColorBar
         """
-        return self["colorbar"]
+        return self['colorbar']
 
     @colorbar.setter
     def colorbar(self, val):
-        self["colorbar"] = val
+        self['colorbar'] = val
 
     @property
     def colors(self):
@@ -194,11 +180,11 @@ def colors(self):
         -------
         numpy.ndarray
         """
-        return self["colors"]
+        return self['colors']
 
     @colors.setter
     def colors(self, val):
-        self["colors"] = val
+        self['colors'] = val
 
     @property
     def colorscale(self):
@@ -246,11 +232,11 @@ def colorscale(self):
         -------
         str
         """
-        return self["colorscale"]
+        return self['colorscale']
 
     @colorscale.setter
     def colorscale(self, val):
-        self["colorscale"] = val
+        self['colorscale'] = val
 
     @property
     def colorssrc(self):
@@ -264,11 +250,11 @@ def colorssrc(self):
         -------
         str
         """
-        return self["colorssrc"]
+        return self['colorssrc']
 
     @colorssrc.setter
     def colorssrc(self, val):
-        self["colorssrc"] = val
+        self['colorssrc'] = val
 
     @property
     def cornerradius(self):
@@ -282,11 +268,11 @@ def cornerradius(self):
         -------
         int|float
         """
-        return self["cornerradius"]
+        return self['cornerradius']
 
     @cornerradius.setter
     def cornerradius(self, val):
-        self["cornerradius"] = val
+        self['cornerradius'] = val
 
     @property
     def depthfade(self):
@@ -308,11 +294,11 @@ def depthfade(self):
         -------
         Any
         """
-        return self["depthfade"]
+        return self['depthfade']
 
     @depthfade.setter
     def depthfade(self, val):
-        self["depthfade"] = val
+        self['depthfade'] = val
 
     @property
     def line(self):
@@ -327,11 +313,11 @@ def line(self):
         -------
         plotly.graph_objs.treemap.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def pad(self):
@@ -346,11 +332,11 @@ def pad(self):
         -------
         plotly.graph_objs.treemap.marker.Pad
         """
-        return self["pad"]
+        return self['pad']
 
     @pad.setter
     def pad(self, val):
-        self["pad"] = val
+        self['pad'] = val
 
     @property
     def pattern(self):
@@ -367,11 +353,11 @@ def pattern(self):
         -------
         plotly.graph_objs.treemap.marker.Pattern
         """
-        return self["pattern"]
+        return self['pattern']
 
     @pattern.setter
     def pattern(self, val):
-        self["pattern"] = val
+        self['pattern'] = val
 
     @property
     def reversescale(self):
@@ -388,11 +374,11 @@ def reversescale(self):
         -------
         bool
         """
-        return self["reversescale"]
+        return self['reversescale']
 
     @reversescale.setter
     def reversescale(self, val):
-        self["reversescale"] = val
+        self['reversescale'] = val
 
     @property
     def showscale(self):
@@ -408,11 +394,11 @@ def showscale(self):
         -------
         bool
         """
-        return self["showscale"]
+        return self['showscale']
 
     @showscale.setter
     def showscale(self, val):
-        self["showscale"] = val
+        self['showscale'] = val
 
     @property
     def _prop_descriptions(self):
@@ -511,29 +497,27 @@ def _prop_descriptions(self):
             this trace. Has an effect only if colors is set to a
             numerical array.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        autocolorscale=None,
-        cauto=None,
-        cmax=None,
-        cmid=None,
-        cmin=None,
-        coloraxis=None,
-        colorbar=None,
-        colors=None,
-        colorscale=None,
-        colorssrc=None,
-        cornerradius=None,
-        depthfade=None,
-        line=None,
-        pad=None,
-        pattern=None,
-        reversescale=None,
-        showscale=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            autocolorscale=None,
+            cauto=None,
+            cmax=None,
+            cmid=None,
+            cmin=None,
+            coloraxis=None,
+            colorbar=None,
+            colors=None,
+            colorscale=None,
+            colorssrc=None,
+            cornerradius=None,
+            depthfade=None,
+            line=None,
+            pad=None,
+            pattern=None,
+            reversescale=None,
+            showscale=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -641,9 +625,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -653,32 +637,32 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("autocolorscale", arg, autocolorscale)
-        self._set_property("cauto", arg, cauto)
-        self._set_property("cmax", arg, cmax)
-        self._set_property("cmid", arg, cmid)
-        self._set_property("cmin", arg, cmin)
-        self._set_property("coloraxis", arg, coloraxis)
-        self._set_property("colorbar", arg, colorbar)
-        self._set_property("colors", arg, colors)
-        self._set_property("colorscale", arg, colorscale)
-        self._set_property("colorssrc", arg, colorssrc)
-        self._set_property("cornerradius", arg, cornerradius)
-        self._set_property("depthfade", arg, depthfade)
-        self._set_property("line", arg, line)
-        self._set_property("pad", arg, pad)
-        self._set_property("pattern", arg, pattern)
-        self._set_property("reversescale", arg, reversescale)
-        self._set_property("showscale", arg, showscale)
+an instance of :class:`plotly.graph_objs.treemap.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('autocolorscale', arg, autocolorscale)
+        self._set_property('cauto', arg, cauto)
+        self._set_property('cmax', arg, cmax)
+        self._set_property('cmid', arg, cmid)
+        self._set_property('cmin', arg, cmin)
+        self._set_property('coloraxis', arg, coloraxis)
+        self._set_property('colorbar', arg, colorbar)
+        self._set_property('colors', arg, colors)
+        self._set_property('colorscale', arg, colorscale)
+        self._set_property('colorssrc', arg, colorssrc)
+        self._set_property('cornerradius', arg, cornerradius)
+        self._set_property('depthfade', arg, depthfade)
+        self._set_property('line', arg, line)
+        self._set_property('pad', arg, pad)
+        self._set_property('pattern', arg, pattern)
+        self._set_property('reversescale', arg, reversescale)
+        self._set_property('showscale', arg, showscale)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/_outsidetextfont.py b/plotly/graph_objs/treemap/_outsidetextfont.py
index 2207cb5c825..237675c0351 100644
--- a/plotly/graph_objs/treemap/_outsidetextfont.py
+++ b/plotly/graph_objs/treemap/_outsidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Outsidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap"
-    _path_str = "treemap.outsidetextfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'treemap'
+    _path_str = 'treemap.outsidetextfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Outsidetextfont object
 
@@ -550,9 +533,9 @@ def __init__(
         -------
         Outsidetextfont
         """
-        super().__init__("outsidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('outsidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -562,33 +545,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.Outsidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.Outsidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.treemap.Outsidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/_pathbar.py b/plotly/graph_objs/treemap/_pathbar.py
index 2017552e682..d2055f7abd7 100644
--- a/plotly/graph_objs/treemap/_pathbar.py
+++ b/plotly/graph_objs/treemap/_pathbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Pathbar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap"
-    _path_str = "treemap.pathbar"
+    _parent_path_str = 'treemap'
+    _path_str = 'treemap.pathbar'
     _valid_props = {"edgeshape", "side", "textfont", "thickness", "visible"}
 
     @property
@@ -25,11 +29,11 @@ def edgeshape(self):
         -------
         Any
         """
-        return self["edgeshape"]
+        return self['edgeshape']
 
     @edgeshape.setter
     def edgeshape(self, val):
-        self["edgeshape"] = val
+        self['edgeshape'] = val
 
     @property
     def side(self):
@@ -45,11 +49,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def textfont(self):
@@ -66,11 +70,11 @@ def textfont(self):
         -------
         plotly.graph_objs.treemap.pathbar.Textfont
         """
-        return self["textfont"]
+        return self['textfont']
 
     @textfont.setter
     def textfont(self, val):
-        self["textfont"] = val
+        self['textfont'] = val
 
     @property
     def thickness(self):
@@ -86,11 +90,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def visible(self):
@@ -105,11 +109,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -130,17 +134,15 @@ def _prop_descriptions(self):
             Determines if the path bar is drawn i.e. outside the
             trace `domain` and with one pixel gap.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        edgeshape=None,
-        side=None,
-        textfont=None,
-        thickness=None,
-        visible=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            edgeshape=None,
+            side=None,
+            textfont=None,
+            thickness=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Pathbar object
 
@@ -170,9 +172,9 @@ def __init__(
         -------
         Pathbar
         """
-        super().__init__("pathbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('pathbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -182,20 +184,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.Pathbar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.Pathbar`"""
-            )
+an instance of :class:`plotly.graph_objs.treemap.Pathbar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("edgeshape", arg, edgeshape)
-        self._set_property("side", arg, side)
-        self._set_property("textfont", arg, textfont)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("visible", arg, visible)
+        self._set_property('edgeshape', arg, edgeshape)
+        self._set_property('side', arg, side)
+        self._set_property('textfont', arg, textfont)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/_root.py b/plotly/graph_objs/treemap/_root.py
index 0e850b495d2..e003926399b 100644
--- a/plotly/graph_objs/treemap/_root.py
+++ b/plotly/graph_objs/treemap/_root.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Root(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap"
-    _path_str = "treemap.root"
+    _parent_path_str = 'treemap'
+    _path_str = 'treemap.root'
     _valid_props = {"color"}
 
     @property
@@ -29,11 +33,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def _prop_descriptions(self):
@@ -43,8 +47,11 @@ def _prop_descriptions(self):
             sunburst/treemap/icicle trace. this has no effect when
             a colorscale is used to set the markers.
         """
-
-    def __init__(self, arg=None, color=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            **kwargs
+        ):
         """
         Construct a new Root object
 
@@ -62,9 +69,9 @@ def __init__(self, arg=None, color=None, **kwargs):
         -------
         Root
         """
-        super().__init__("root")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('root')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -74,16 +81,16 @@ def __init__(self, arg=None, color=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.Root
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.Root`"""
-            )
+an instance of :class:`plotly.graph_objs.treemap.Root`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
+        self._set_property('color', arg, color)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/_stream.py b/plotly/graph_objs/treemap/_stream.py
index 304280d694f..6b715c9b925 100644
--- a/plotly/graph_objs/treemap/_stream.py
+++ b/plotly/graph_objs/treemap/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap"
-    _path_str = "treemap.stream"
+    _parent_path_str = 'treemap'
+    _path_str = 'treemap.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.treemap.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/_textfont.py b/plotly/graph_objs/treemap/_textfont.py
index 72bc3515284..0e5d4697c46 100644
--- a/plotly/graph_objs/treemap/_textfont.py
+++ b/plotly/graph_objs/treemap/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap"
-    _path_str = "treemap.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'treemap'
+    _path_str = 'treemap.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.treemap.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/_tiling.py b/plotly/graph_objs/treemap/_tiling.py
index e88c1f76415..6c766973869 100644
--- a/plotly/graph_objs/treemap/_tiling.py
+++ b/plotly/graph_objs/treemap/_tiling.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Tiling(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap"
-    _path_str = "treemap.tiling"
+    _parent_path_str = 'treemap'
+    _path_str = 'treemap.tiling'
     _valid_props = {"flip", "packing", "pad", "squarifyratio"}
 
     @property
@@ -26,11 +30,11 @@ def flip(self):
         -------
         Any
         """
-        return self["flip"]
+        return self['flip']
 
     @flip.setter
     def flip(self, val):
-        self["flip"] = val
+        self['flip'] = val
 
     @property
     def packing(self):
@@ -47,11 +51,11 @@ def packing(self):
         -------
         Any
         """
-        return self["packing"]
+        return self['packing']
 
     @packing.setter
     def packing(self, val):
-        self["packing"] = val
+        self['packing'] = val
 
     @property
     def pad(self):
@@ -65,26 +69,27 @@ def pad(self):
         -------
         int|float
         """
-        return self["pad"]
+        return self['pad']
 
     @pad.setter
     def pad(self, val):
-        self["pad"] = val
+        self['pad'] = val
 
     @property
     def squarifyratio(self):
         """
         When using "squarify" `packing` algorithm, according to https:/
-        /github.com/d3/d3-hierarchy/blob/v3.1.1/README.md#squarify_rati
-        o this option specifies the desired aspect ratio of the
-        generated rectangles. The ratio must be specified as a number
-        greater than or equal to one. Note that the orientation of the
-        generated rectangles (tall or wide) is not implied by the
-        ratio; for example, a ratio of two will attempt to produce a
-        mixture of rectangles whose width:height ratio is either 2:1 or
-        1:2. When using "squarify", unlike d3 which uses the Golden
-        Ratio i.e. 1.618034, Plotly applies 1 to increase squares in
-        treemap layouts.
+        /github.com/d3/d3-
+        hierarchy/blob/v3.1.1/README.md#squarify_ratio this option
+        specifies the desired aspect ratio of the generated rectangles.
+        The ratio must be specified as a number greater than or equal
+        to one. Note that the orientation of the generated rectangles
+        (tall or wide) is not implied by the ratio; for example, a
+        ratio of two will attempt to produce a mixture of rectangles
+        whose width:height ratio is either 2:1 or 1:2. When using
+        "squarify", unlike d3 which uses the Golden Ratio i.e.
+        1.618034, Plotly applies 1 to increase squares in treemap
+        layouts.
 
         The 'squarifyratio' property is a number and may be specified as:
           - An int or float in the interval [1, inf]
@@ -93,11 +98,11 @@ def squarifyratio(self):
         -------
         int|float
         """
-        return self["squarifyratio"]
+        return self['squarifyratio']
 
     @squarifyratio.setter
     def squarifyratio(self, val):
-        self["squarifyratio"] = val
+        self['squarifyratio'] = val
 
     @property
     def _prop_descriptions(self):
@@ -113,22 +118,27 @@ def _prop_descriptions(self):
             Sets the inner padding (in px).
         squarifyratio
             When using "squarify" `packing` algorithm, according to
-            https://github.com/d3/d3-hierarchy/blob/v3.1.1/README.m
-            d#squarify_ratio this option specifies the desired
-            aspect ratio of the generated rectangles. The ratio
-            must be specified as a number greater than or equal to
-            one. Note that the orientation of the generated
-            rectangles (tall or wide) is not implied by the ratio;
-            for example, a ratio of two will attempt to produce a
-            mixture of rectangles whose width:height ratio is
-            either 2:1 or 1:2. When using "squarify", unlike d3
-            which uses the Golden Ratio i.e. 1.618034, Plotly
-            applies 1 to increase squares in treemap layouts.
+            https://github.com/d3/d3-
+            hierarchy/blob/v3.1.1/README.md#squarify_ratio this
+            option specifies the desired aspect ratio of the
+            generated rectangles. The ratio must be specified as a
+            number greater than or equal to one. Note that the
+            orientation of the generated rectangles (tall or wide)
+            is not implied by the ratio; for example, a ratio of
+            two will attempt to produce a mixture of rectangles
+            whose width:height ratio is either 2:1 or 1:2. When
+            using "squarify", unlike d3 which uses the Golden Ratio
+            i.e. 1.618034, Plotly applies 1 to increase squares in
+            treemap layouts.
         """
-
-    def __init__(
-        self, arg=None, flip=None, packing=None, pad=None, squarifyratio=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            flip=None,
+            packing=None,
+            pad=None,
+            squarifyratio=None,
+            **kwargs
+        ):
         """
         Construct a new Tiling object
 
@@ -149,25 +159,26 @@ def __init__(
             Sets the inner padding (in px).
         squarifyratio
             When using "squarify" `packing` algorithm, according to
-            https://github.com/d3/d3-hierarchy/blob/v3.1.1/README.m
-            d#squarify_ratio this option specifies the desired
-            aspect ratio of the generated rectangles. The ratio
-            must be specified as a number greater than or equal to
-            one. Note that the orientation of the generated
-            rectangles (tall or wide) is not implied by the ratio;
-            for example, a ratio of two will attempt to produce a
-            mixture of rectangles whose width:height ratio is
-            either 2:1 or 1:2. When using "squarify", unlike d3
-            which uses the Golden Ratio i.e. 1.618034, Plotly
-            applies 1 to increase squares in treemap layouts.
+            https://github.com/d3/d3-
+            hierarchy/blob/v3.1.1/README.md#squarify_ratio this
+            option specifies the desired aspect ratio of the
+            generated rectangles. The ratio must be specified as a
+            number greater than or equal to one. Note that the
+            orientation of the generated rectangles (tall or wide)
+            is not implied by the ratio; for example, a ratio of
+            two will attempt to produce a mixture of rectangles
+            whose width:height ratio is either 2:1 or 1:2. When
+            using "squarify", unlike d3 which uses the Golden Ratio
+            i.e. 1.618034, Plotly applies 1 to increase squares in
+            treemap layouts.
 
         Returns
         -------
         Tiling
         """
-        super().__init__("tiling")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tiling')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -177,19 +188,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.Tiling
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.Tiling`"""
-            )
+an instance of :class:`plotly.graph_objs.treemap.Tiling`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("flip", arg, flip)
-        self._set_property("packing", arg, packing)
-        self._set_property("pad", arg, pad)
-        self._set_property("squarifyratio", arg, squarifyratio)
+        self._set_property('flip', arg, flip)
+        self._set_property('packing', arg, packing)
+        self._set_property('pad', arg, pad)
+        self._set_property('squarifyratio', arg, squarifyratio)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/hoverlabel/__init__.py b/plotly/graph_objs/treemap/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/treemap/hoverlabel/__init__.py
+++ b/plotly/graph_objs/treemap/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/treemap/hoverlabel/_font.py b/plotly/graph_objs/treemap/hoverlabel/_font.py
index fcf6a69b5e6..fecc9f370f6 100644
--- a/plotly/graph_objs/treemap/hoverlabel/_font.py
+++ b/plotly/graph_objs/treemap/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap.hoverlabel"
-    _path_str = "treemap.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'treemap.hoverlabel'
+    _path_str = 'treemap.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.treemap.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/legendgrouptitle/__init__.py b/plotly/graph_objs/treemap/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/treemap/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/treemap/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/treemap/legendgrouptitle/_font.py b/plotly/graph_objs/treemap/legendgrouptitle/_font.py
index a36a5497942..e30ac85e071 100644
--- a/plotly/graph_objs/treemap/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/treemap/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap.legendgrouptitle"
-    _path_str = "treemap.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'treemap.legendgrouptitle'
+    _path_str = 'treemap.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.treemap.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/marker/__init__.py b/plotly/graph_objs/treemap/marker/__init__.py
index b175232abec..3b7e07213e2 100644
--- a/plotly/graph_objs/treemap/marker/__init__.py
+++ b/plotly/graph_objs/treemap/marker/__init__.py
@@ -1,8 +1,17 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorbar import ColorBar
+    from ._line import Line
+    from ._pad import Pad
+    from ._pattern import Pattern
+    from . import colorbar
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.colorbar'],
+        ['._colorbar.ColorBar', '._line.Line', '._pad.Pad', '._pattern.Pattern']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".colorbar"],
-    ["._colorbar.ColorBar", "._line.Line", "._pad.Pad", "._pattern.Pattern"],
-)
diff --git a/plotly/graph_objs/treemap/marker/_colorbar.py b/plotly/graph_objs/treemap/marker/_colorbar.py
index e6e38058c4f..f0878579c1b 100644
--- a/plotly/graph_objs/treemap/marker/_colorbar.py
+++ b/plotly/graph_objs/treemap/marker/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap.marker"
-    _path_str = "treemap.marker.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'treemap.marker'
+    _path_str = 'treemap.marker.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.treemap.marker.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.treemap.marker.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.treemap.marker.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.treemap.marker.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.marker.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.marker.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.treemap.marker.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/marker/_line.py b/plotly/graph_objs/treemap/marker/_line.py
index b2b3dba8803..9d701d8af71 100644
--- a/plotly/graph_objs/treemap/marker/_line.py
+++ b/plotly/graph_objs/treemap/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap.marker"
-    _path_str = "treemap.marker.line"
+    _parent_path_str = 'treemap.marker'
+    _path_str = 'treemap.marker.line'
     _valid_props = {"color", "colorsrc", "width", "widthsrc"}
 
     @property
@@ -29,11 +33,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -47,11 +51,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def width(self):
@@ -66,11 +70,11 @@ def width(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def widthsrc(self):
@@ -84,11 +88,11 @@ def widthsrc(self):
         -------
         str
         """
-        return self["widthsrc"]
+        return self['widthsrc']
 
     @widthsrc.setter
     def widthsrc(self, val):
-        self["widthsrc"] = val
+        self['widthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -106,10 +110,14 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `width`.
         """
-
-    def __init__(
-        self, arg=None, color=None, colorsrc=None, width=None, widthsrc=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            width=None,
+            widthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -136,9 +144,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -148,19 +156,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.marker.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.treemap.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("width", arg, width)
-        self._set_property("widthsrc", arg, widthsrc)
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('width', arg, width)
+        self._set_property('widthsrc', arg, widthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/marker/_pad.py b/plotly/graph_objs/treemap/marker/_pad.py
index d78fc030012..b54f17a59ea 100644
--- a/plotly/graph_objs/treemap/marker/_pad.py
+++ b/plotly/graph_objs/treemap/marker/_pad.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Pad(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap.marker"
-    _path_str = "treemap.marker.pad"
+    _parent_path_str = 'treemap.marker'
+    _path_str = 'treemap.marker.pad'
     _valid_props = {"b", "l", "r", "t"}
 
     @property
@@ -23,11 +27,11 @@ def b(self):
         -------
         int|float
         """
-        return self["b"]
+        return self['b']
 
     @b.setter
     def b(self, val):
-        self["b"] = val
+        self['b'] = val
 
     @property
     def l(self):
@@ -41,11 +45,11 @@ def l(self):
         -------
         int|float
         """
-        return self["l"]
+        return self['l']
 
     @l.setter
     def l(self, val):
-        self["l"] = val
+        self['l'] = val
 
     @property
     def r(self):
@@ -59,11 +63,11 @@ def r(self):
         -------
         int|float
         """
-        return self["r"]
+        return self['r']
 
     @r.setter
     def r(self, val):
-        self["r"] = val
+        self['r'] = val
 
     @property
     def t(self):
@@ -77,11 +81,11 @@ def t(self):
         -------
         int|float
         """
-        return self["t"]
+        return self['t']
 
     @t.setter
     def t(self, val):
-        self["t"] = val
+        self['t'] = val
 
     @property
     def _prop_descriptions(self):
@@ -95,8 +99,14 @@ def _prop_descriptions(self):
         t
             Sets the padding form the top (in px).
         """
-
-    def __init__(self, arg=None, b=None, l=None, r=None, t=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            b=None,
+            l=None,
+            r=None,
+            t=None,
+            **kwargs
+        ):
         """
         Construct a new Pad object
 
@@ -119,9 +129,9 @@ def __init__(self, arg=None, b=None, l=None, r=None, t=None, **kwargs):
         -------
         Pad
         """
-        super().__init__("pad")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('pad')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -131,19 +141,19 @@ def __init__(self, arg=None, b=None, l=None, r=None, t=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.marker.Pad
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.marker.Pad`"""
-            )
+an instance of :class:`plotly.graph_objs.treemap.marker.Pad`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("b", arg, b)
-        self._set_property("l", arg, l)
-        self._set_property("r", arg, r)
-        self._set_property("t", arg, t)
+        self._set_property('b', arg, b)
+        self._set_property('l', arg, l)
+        self._set_property('r', arg, r)
+        self._set_property('t', arg, t)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/marker/_pattern.py b/plotly/graph_objs/treemap/marker/_pattern.py
index c7e9825e8f1..a0ad7a9c90a 100644
--- a/plotly/graph_objs/treemap/marker/_pattern.py
+++ b/plotly/graph_objs/treemap/marker/_pattern.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,22 +11,9 @@
 
 class Pattern(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap.marker"
-    _path_str = "treemap.marker.pattern"
-    _valid_props = {
-        "bgcolor",
-        "bgcolorsrc",
-        "fgcolor",
-        "fgcolorsrc",
-        "fgopacity",
-        "fillmode",
-        "shape",
-        "shapesrc",
-        "size",
-        "sizesrc",
-        "solidity",
-        "soliditysrc",
-    }
+    _parent_path_str = 'treemap.marker'
+    _path_str = 'treemap.marker.pattern'
+    _valid_props = {"bgcolor", "bgcolorsrc", "fgcolor", "fgcolorsrc", "fgopacity", "fillmode", "shape", "shapesrc", "size", "sizesrc", "solidity", "soliditysrc"}
 
     @property
     def bgcolor(self):
@@ -44,11 +35,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -62,11 +53,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def fgcolor(self):
@@ -88,11 +79,11 @@ def fgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["fgcolor"]
+        return self['fgcolor']
 
     @fgcolor.setter
     def fgcolor(self, val):
-        self["fgcolor"] = val
+        self['fgcolor'] = val
 
     @property
     def fgcolorsrc(self):
@@ -106,11 +97,11 @@ def fgcolorsrc(self):
         -------
         str
         """
-        return self["fgcolorsrc"]
+        return self['fgcolorsrc']
 
     @fgcolorsrc.setter
     def fgcolorsrc(self, val):
-        self["fgcolorsrc"] = val
+        self['fgcolorsrc'] = val
 
     @property
     def fgopacity(self):
@@ -125,11 +116,11 @@ def fgopacity(self):
         -------
         int|float
         """
-        return self["fgopacity"]
+        return self['fgopacity']
 
     @fgopacity.setter
     def fgopacity(self, val):
-        self["fgopacity"] = val
+        self['fgopacity'] = val
 
     @property
     def fillmode(self):
@@ -145,11 +136,11 @@ def fillmode(self):
         -------
         Any
         """
-        return self["fillmode"]
+        return self['fillmode']
 
     @fillmode.setter
     def fillmode(self, val):
-        self["fillmode"] = val
+        self['fillmode'] = val
 
     @property
     def shape(self):
@@ -166,11 +157,11 @@ def shape(self):
         -------
         Any|numpy.ndarray
         """
-        return self["shape"]
+        return self['shape']
 
     @shape.setter
     def shape(self, val):
-        self["shape"] = val
+        self['shape'] = val
 
     @property
     def shapesrc(self):
@@ -184,11 +175,11 @@ def shapesrc(self):
         -------
         str
         """
-        return self["shapesrc"]
+        return self['shapesrc']
 
     @shapesrc.setter
     def shapesrc(self, val):
-        self["shapesrc"] = val
+        self['shapesrc'] = val
 
     @property
     def size(self):
@@ -204,11 +195,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -222,11 +213,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def solidity(self):
@@ -244,11 +235,11 @@ def solidity(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["solidity"]
+        return self['solidity']
 
     @solidity.setter
     def solidity(self, val):
-        self["solidity"] = val
+        self['solidity'] = val
 
     @property
     def soliditysrc(self):
@@ -262,11 +253,11 @@ def soliditysrc(self):
         -------
         str
         """
-        return self["soliditysrc"]
+        return self['soliditysrc']
 
     @soliditysrc.setter
     def soliditysrc(self, val):
-        self["soliditysrc"] = val
+        self['soliditysrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -318,24 +309,22 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `solidity`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        fgcolor=None,
-        fgcolorsrc=None,
-        fgopacity=None,
-        fillmode=None,
-        shape=None,
-        shapesrc=None,
-        size=None,
-        sizesrc=None,
-        solidity=None,
-        soliditysrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            fgcolor=None,
+            fgcolorsrc=None,
+            fgopacity=None,
+            fillmode=None,
+            shape=None,
+            shapesrc=None,
+            size=None,
+            sizesrc=None,
+            solidity=None,
+            soliditysrc=None,
+            **kwargs
+        ):
         """
         Construct a new Pattern object
 
@@ -398,9 +387,9 @@ def __init__(
         -------
         Pattern
         """
-        super().__init__("pattern")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('pattern')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -410,27 +399,27 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.marker.Pattern
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.marker.Pattern`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("fgcolor", arg, fgcolor)
-        self._set_property("fgcolorsrc", arg, fgcolorsrc)
-        self._set_property("fgopacity", arg, fgopacity)
-        self._set_property("fillmode", arg, fillmode)
-        self._set_property("shape", arg, shape)
-        self._set_property("shapesrc", arg, shapesrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("solidity", arg, solidity)
-        self._set_property("soliditysrc", arg, soliditysrc)
+an instance of :class:`plotly.graph_objs.treemap.marker.Pattern`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('fgcolor', arg, fgcolor)
+        self._set_property('fgcolorsrc', arg, fgcolorsrc)
+        self._set_property('fgopacity', arg, fgopacity)
+        self._set_property('fillmode', arg, fillmode)
+        self._set_property('shape', arg, shape)
+        self._set_property('shapesrc', arg, shapesrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('solidity', arg, solidity)
+        self._set_property('soliditysrc', arg, soliditysrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/marker/colorbar/__init__.py b/plotly/graph_objs/treemap/marker/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/treemap/marker/colorbar/__init__.py
+++ b/plotly/graph_objs/treemap/marker/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/treemap/marker/colorbar/_tickfont.py b/plotly/graph_objs/treemap/marker/colorbar/_tickfont.py
index 1ee9fa71af8..9f23d9bec13 100644
--- a/plotly/graph_objs/treemap/marker/colorbar/_tickfont.py
+++ b/plotly/graph_objs/treemap/marker/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap.marker.colorbar"
-    _path_str = "treemap.marker.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'treemap.marker.colorbar'
+    _path_str = 'treemap.marker.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.marker.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.marker.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.treemap.marker.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/marker/colorbar/_tickformatstop.py b/plotly/graph_objs/treemap/marker/colorbar/_tickformatstop.py
index 451e7c388b6..149e389e767 100644
--- a/plotly/graph_objs/treemap/marker/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/treemap/marker/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap.marker.colorbar"
-    _path_str = "treemap.marker.colorbar.tickformatstop"
+    _parent_path_str = 'treemap.marker.colorbar'
+    _path_str = 'treemap.marker.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.marker.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.marker.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.treemap.marker.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/marker/colorbar/_title.py b/plotly/graph_objs/treemap/marker/colorbar/_title.py
index 29bac042af0..bc753fbea92 100644
--- a/plotly/graph_objs/treemap/marker/colorbar/_title.py
+++ b/plotly/graph_objs/treemap/marker/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap.marker.colorbar"
-    _path_str = "treemap.marker.colorbar.title"
+    _parent_path_str = 'treemap.marker.colorbar'
+    _path_str = 'treemap.marker.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.treemap.marker.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.marker.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.marker.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.treemap.marker.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/marker/colorbar/title/__init__.py b/plotly/graph_objs/treemap/marker/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/treemap/marker/colorbar/title/__init__.py
+++ b/plotly/graph_objs/treemap/marker/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/treemap/marker/colorbar/title/_font.py b/plotly/graph_objs/treemap/marker/colorbar/title/_font.py
index 7afefe673da..80b432473b4 100644
--- a/plotly/graph_objs/treemap/marker/colorbar/title/_font.py
+++ b/plotly/graph_objs/treemap/marker/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap.marker.colorbar.title"
-    _path_str = "treemap.marker.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'treemap.marker.colorbar.title'
+    _path_str = 'treemap.marker.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.marker.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.marker.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.treemap.marker.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/treemap/pathbar/__init__.py b/plotly/graph_objs/treemap/pathbar/__init__.py
index 2afd605560b..60a2c197f7c 100644
--- a/plotly/graph_objs/treemap/pathbar/__init__.py
+++ b/plotly/graph_objs/treemap/pathbar/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import Textfont
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._textfont.Textfont']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._textfont.Textfont"])
diff --git a/plotly/graph_objs/treemap/pathbar/_textfont.py b/plotly/graph_objs/treemap/pathbar/_textfont.py
index a7c9b59d013..1d9ba9a2b4c 100644
--- a/plotly/graph_objs/treemap/pathbar/_textfont.py
+++ b/plotly/graph_objs/treemap/pathbar/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "treemap.pathbar"
-    _path_str = "treemap.pathbar.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'treemap.pathbar'
+    _path_str = 'treemap.pathbar.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.treemap.pathbar.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.treemap.pathbar.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.treemap.pathbar.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/violin/__init__.py b/plotly/graph_objs/violin/__init__.py
index 9e0217028fd..d0619fcd273 100644
--- a/plotly/graph_objs/violin/__init__.py
+++ b/plotly/graph_objs/violin/__init__.py
@@ -1,18 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._box import Box
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._line import Line
+    from ._marker import Marker
+    from ._meanline import Meanline
+    from ._selected import Selected
+    from ._stream import Stream
+    from ._unselected import Unselected
+    from . import box
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import marker
+    from . import selected
+    from . import unselected
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.box', '.hoverlabel', '.legendgrouptitle', '.marker', '.selected', '.unselected'],
+        ['._box.Box', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._line.Line', '._marker.Marker', '._meanline.Meanline', '._selected.Selected', '._stream.Stream', '._unselected.Unselected']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".box", ".hoverlabel", ".legendgrouptitle", ".marker", ".selected", ".unselected"],
-    [
-        "._box.Box",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._line.Line",
-        "._marker.Marker",
-        "._meanline.Meanline",
-        "._selected.Selected",
-        "._stream.Stream",
-        "._unselected.Unselected",
-    ],
-)
diff --git a/plotly/graph_objs/violin/_box.py b/plotly/graph_objs/violin/_box.py
index c9a7d8855c4..026f69f1103 100644
--- a/plotly/graph_objs/violin/_box.py
+++ b/plotly/graph_objs/violin/_box.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Box(_BaseTraceHierarchyType):
 
-    _parent_path_str = "violin"
-    _path_str = "violin.box"
+    _parent_path_str = 'violin'
+    _path_str = 'violin.box'
     _valid_props = {"fillcolor", "line", "visible", "width"}
 
     @property
@@ -27,11 +31,11 @@ def fillcolor(self):
         -------
         str
         """
-        return self["fillcolor"]
+        return self['fillcolor']
 
     @fillcolor.setter
     def fillcolor(self, val):
-        self["fillcolor"] = val
+        self['fillcolor'] = val
 
     @property
     def line(self):
@@ -46,11 +50,11 @@ def line(self):
         -------
         plotly.graph_objs.violin.box.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def visible(self):
@@ -65,11 +69,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -85,11 +89,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -107,10 +111,14 @@ def _prop_descriptions(self):
             violins' width. For example, with 1, the inner box
             plots are as wide as the violins.
         """
-
-    def __init__(
-        self, arg=None, fillcolor=None, line=None, visible=None, width=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            fillcolor=None,
+            line=None,
+            visible=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Box object
 
@@ -136,9 +144,9 @@ def __init__(
         -------
         Box
         """
-        super().__init__("box")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('box')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -148,19 +156,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.violin.Box
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.violin.Box`"""
-            )
+an instance of :class:`plotly.graph_objs.violin.Box`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fillcolor", arg, fillcolor)
-        self._set_property("line", arg, line)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
+        self._set_property('fillcolor', arg, fillcolor)
+        self._set_property('line', arg, line)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/violin/_hoverlabel.py b/plotly/graph_objs/violin/_hoverlabel.py
index 94c528347dc..9b3f705f281 100644
--- a/plotly/graph_objs/violin/_hoverlabel.py
+++ b/plotly/graph_objs/violin/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "violin"
-    _path_str = "violin.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'violin'
+    _path_str = 'violin.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.violin.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.violin.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.violin.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.violin.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/violin/_legendgrouptitle.py b/plotly/graph_objs/violin/_legendgrouptitle.py
index 1051d22a880..9163f80887c 100644
--- a/plotly/graph_objs/violin/_legendgrouptitle.py
+++ b/plotly/graph_objs/violin/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "violin"
-    _path_str = "violin.legendgrouptitle"
+    _parent_path_str = 'violin'
+    _path_str = 'violin.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.violin.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.violin.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.violin.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.violin.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/violin/_line.py b/plotly/graph_objs/violin/_line.py
index 4bfa170f360..b00198a8362 100644
--- a/plotly/graph_objs/violin/_line.py
+++ b/plotly/graph_objs/violin/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "violin"
-    _path_str = "violin.line"
+    _parent_path_str = 'violin'
+    _path_str = 'violin.line'
     _valid_props = {"color", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def width(self):
@@ -45,11 +49,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         width
             Sets the width (in px) of line bounding the violin(s).
         """
-
-    def __init__(self, arg=None, color=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -78,9 +86,9 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -90,17 +98,17 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.violin.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.violin.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.violin.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/violin/_marker.py b/plotly/graph_objs/violin/_marker.py
index 4a6f84a19d6..57dee377fbb 100644
--- a/plotly/graph_objs/violin/_marker.py
+++ b/plotly/graph_objs/violin/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,17 +11,9 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "violin"
-    _path_str = "violin.marker"
-    _valid_props = {
-        "angle",
-        "color",
-        "line",
-        "opacity",
-        "outliercolor",
-        "size",
-        "symbol",
-    }
+    _parent_path_str = 'violin'
+    _path_str = 'violin.marker'
+    _valid_props = {"angle", "color", "line", "opacity", "outliercolor", "size", "symbol"}
 
     @property
     def angle(self):
@@ -33,11 +29,11 @@ def angle(self):
         -------
         int|float
         """
-        return self["angle"]
+        return self['angle']
 
     @angle.setter
     def angle(self, val):
-        self["angle"] = val
+        self['angle'] = val
 
     @property
     def color(self):
@@ -58,11 +54,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def line(self):
@@ -77,11 +73,11 @@ def line(self):
         -------
         plotly.graph_objs.violin.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def opacity(self):
@@ -95,11 +91,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def outliercolor(self):
@@ -117,11 +113,11 @@ def outliercolor(self):
         -------
         str
         """
-        return self["outliercolor"]
+        return self['outliercolor']
 
     @outliercolor.setter
     def outliercolor(self, val):
-        self["outliercolor"] = val
+        self['outliercolor'] = val
 
     @property
     def size(self):
@@ -135,11 +131,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def symbol(self):
@@ -245,11 +241,11 @@ def symbol(self):
         -------
         Any
         """
-        return self["symbol"]
+        return self['symbol']
 
     @symbol.setter
     def symbol(self, val):
-        self["symbol"] = val
+        self['symbol'] = val
 
     @property
     def _prop_descriptions(self):
@@ -278,19 +274,17 @@ def _prop_descriptions(self):
             300 is equivalent to appending "-open-dot" or "dot-
             open" to a symbol name.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        angle=None,
-        color=None,
-        line=None,
-        opacity=None,
-        outliercolor=None,
-        size=None,
-        symbol=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            angle=None,
+            color=None,
+            line=None,
+            opacity=None,
+            outliercolor=None,
+            size=None,
+            symbol=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -327,9 +321,9 @@ def __init__(
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -339,22 +333,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.violin.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.violin.Marker`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("angle", arg, angle)
-        self._set_property("color", arg, color)
-        self._set_property("line", arg, line)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("outliercolor", arg, outliercolor)
-        self._set_property("size", arg, size)
-        self._set_property("symbol", arg, symbol)
+an instance of :class:`plotly.graph_objs.violin.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('angle', arg, angle)
+        self._set_property('color', arg, color)
+        self._set_property('line', arg, line)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('outliercolor', arg, outliercolor)
+        self._set_property('size', arg, size)
+        self._set_property('symbol', arg, symbol)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/violin/_meanline.py b/plotly/graph_objs/violin/_meanline.py
index 0610fa9da10..96f439dee2d 100644
--- a/plotly/graph_objs/violin/_meanline.py
+++ b/plotly/graph_objs/violin/_meanline.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Meanline(_BaseTraceHierarchyType):
 
-    _parent_path_str = "violin"
-    _path_str = "violin.meanline"
+    _parent_path_str = 'violin'
+    _path_str = 'violin.meanline'
     _valid_props = {"color", "visible", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def visible(self):
@@ -48,11 +52,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def width(self):
@@ -66,11 +70,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -86,8 +90,13 @@ def _prop_descriptions(self):
         width
             Sets the mean line width.
         """
-
-    def __init__(self, arg=None, color=None, visible=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            visible=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Meanline object
 
@@ -112,9 +121,9 @@ def __init__(self, arg=None, color=None, visible=None, width=None, **kwargs):
         -------
         Meanline
         """
-        super().__init__("meanline")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('meanline')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -124,18 +133,18 @@ def __init__(self, arg=None, color=None, visible=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.violin.Meanline
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.violin.Meanline`"""
-            )
+an instance of :class:`plotly.graph_objs.violin.Meanline`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("visible", arg, visible)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('visible', arg, visible)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/violin/_selected.py b/plotly/graph_objs/violin/_selected.py
index 7d60f7b232b..ef9df4c6cb7 100644
--- a/plotly/graph_objs/violin/_selected.py
+++ b/plotly/graph_objs/violin/_selected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Selected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "violin"
-    _path_str = "violin.selected"
+    _parent_path_str = 'violin'
+    _path_str = 'violin.selected'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.violin.selected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.violin.selected.Marker`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Selected object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Selected
         """
-        super().__init__("selected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('selected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.violin.Selected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.violin.Selected`"""
-            )
+an instance of :class:`plotly.graph_objs.violin.Selected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/violin/_stream.py b/plotly/graph_objs/violin/_stream.py
index 2891caf202d..225a9f72596 100644
--- a/plotly/graph_objs/violin/_stream.py
+++ b/plotly/graph_objs/violin/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "violin"
-    _path_str = "violin.stream"
+    _parent_path_str = 'violin'
+    _path_str = 'violin.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.violin.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.violin.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.violin.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/violin/_unselected.py b/plotly/graph_objs/violin/_unselected.py
index 3889d2299eb..86fa66f9638 100644
--- a/plotly/graph_objs/violin/_unselected.py
+++ b/plotly/graph_objs/violin/_unselected.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Unselected(_BaseTraceHierarchyType):
 
-    _parent_path_str = "violin"
-    _path_str = "violin.unselected"
+    _parent_path_str = 'violin'
+    _path_str = 'violin.unselected'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.violin.unselected.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.violin.unselected.Marker`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Unselected object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Unselected
         """
-        super().__init__("unselected")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('unselected')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.violin.Unselected
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.violin.Unselected`"""
-            )
+an instance of :class:`plotly.graph_objs.violin.Unselected`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/violin/box/__init__.py b/plotly/graph_objs/violin/box/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/violin/box/__init__.py
+++ b/plotly/graph_objs/violin/box/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/violin/box/_line.py b/plotly/graph_objs/violin/box/_line.py
index 496339a3d71..41049cc067f 100644
--- a/plotly/graph_objs/violin/box/_line.py
+++ b/plotly/graph_objs/violin/box/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "violin.box"
-    _path_str = "violin.box.line"
+    _parent_path_str = 'violin.box'
+    _path_str = 'violin.box.line'
     _valid_props = {"color", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def width(self):
@@ -45,11 +49,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         width
             Sets the inner box plot bounding line width.
         """
-
-    def __init__(self, arg=None, color=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.violin.box.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.violin.box.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.violin.box.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/violin/hoverlabel/__init__.py b/plotly/graph_objs/violin/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/violin/hoverlabel/__init__.py
+++ b/plotly/graph_objs/violin/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/violin/hoverlabel/_font.py b/plotly/graph_objs/violin/hoverlabel/_font.py
index 2e54df8f6fc..b278f702c89 100644
--- a/plotly/graph_objs/violin/hoverlabel/_font.py
+++ b/plotly/graph_objs/violin/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "violin.hoverlabel"
-    _path_str = "violin.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'violin.hoverlabel'
+    _path_str = 'violin.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.violin.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.violin.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.violin.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/violin/legendgrouptitle/__init__.py b/plotly/graph_objs/violin/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/violin/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/violin/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/violin/legendgrouptitle/_font.py b/plotly/graph_objs/violin/legendgrouptitle/_font.py
index 8f573bf47fa..c90163e7439 100644
--- a/plotly/graph_objs/violin/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/violin/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "violin.legendgrouptitle"
-    _path_str = "violin.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'violin.legendgrouptitle'
+    _path_str = 'violin.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.violin.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.violin.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.violin.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/violin/marker/__init__.py b/plotly/graph_objs/violin/marker/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/violin/marker/__init__.py
+++ b/plotly/graph_objs/violin/marker/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/violin/marker/_line.py b/plotly/graph_objs/violin/marker/_line.py
index e80cc186cd2..af4583888fc 100644
--- a/plotly/graph_objs/violin/marker/_line.py
+++ b/plotly/graph_objs/violin/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "violin.marker"
-    _path_str = "violin.marker.line"
+    _parent_path_str = 'violin.marker'
+    _path_str = 'violin.marker.line'
     _valid_props = {"color", "outliercolor", "outlierwidth", "width"}
 
     @property
@@ -30,11 +34,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def outliercolor(self):
@@ -53,11 +57,11 @@ def outliercolor(self):
         -------
         str
         """
-        return self["outliercolor"]
+        return self['outliercolor']
 
     @outliercolor.setter
     def outliercolor(self, val):
-        self["outliercolor"] = val
+        self['outliercolor'] = val
 
     @property
     def outlierwidth(self):
@@ -72,11 +76,11 @@ def outlierwidth(self):
         -------
         int|float
         """
-        return self["outlierwidth"]
+        return self['outlierwidth']
 
     @outlierwidth.setter
     def outlierwidth(self, val):
-        self["outlierwidth"] = val
+        self['outlierwidth'] = val
 
     @property
     def width(self):
@@ -90,11 +94,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -115,16 +119,14 @@ def _prop_descriptions(self):
             Sets the width (in px) of the lines bounding the marker
             points.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        outliercolor=None,
-        outlierwidth=None,
-        width=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            outliercolor=None,
+            outlierwidth=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -154,9 +156,9 @@ def __init__(
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -166,19 +168,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.violin.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.violin.marker.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.violin.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("outliercolor", arg, outliercolor)
-        self._set_property("outlierwidth", arg, outlierwidth)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('outliercolor', arg, outliercolor)
+        self._set_property('outlierwidth', arg, outlierwidth)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/violin/selected/__init__.py b/plotly/graph_objs/violin/selected/__init__.py
index 17b6d670bc4..5abe297c1ca 100644
--- a/plotly/graph_objs/violin/selected/__init__.py
+++ b/plotly/graph_objs/violin/selected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._marker.Marker"])
diff --git a/plotly/graph_objs/violin/selected/_marker.py b/plotly/graph_objs/violin/selected/_marker.py
index 5dffaba4864..f627f5ff4f2 100644
--- a/plotly/graph_objs/violin/selected/_marker.py
+++ b/plotly/graph_objs/violin/selected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "violin.selected"
-    _path_str = "violin.selected.marker"
+    _parent_path_str = 'violin.selected'
+    _path_str = 'violin.selected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -45,11 +49,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -63,11 +67,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         size
             Sets the marker size of selected points.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.violin.selected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.violin.selected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.violin.selected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/violin/unselected/__init__.py b/plotly/graph_objs/violin/unselected/__init__.py
index 17b6d670bc4..5abe297c1ca 100644
--- a/plotly/graph_objs/violin/unselected/__init__.py
+++ b/plotly/graph_objs/violin/unselected/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._marker.Marker"])
diff --git a/plotly/graph_objs/violin/unselected/_marker.py b/plotly/graph_objs/violin/unselected/_marker.py
index a13396b5d0d..7780c02c3e6 100644
--- a/plotly/graph_objs/violin/unselected/_marker.py
+++ b/plotly/graph_objs/violin/unselected/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "violin.unselected"
-    _path_str = "violin.unselected.marker"
+    _parent_path_str = 'violin.unselected'
+    _path_str = 'violin.unselected.marker'
     _valid_props = {"color", "opacity", "size"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def opacity(self):
@@ -47,11 +51,11 @@ def opacity(self):
         -------
         int|float
         """
-        return self["opacity"]
+        return self['opacity']
 
     @opacity.setter
     def opacity(self, val):
-        self["opacity"] = val
+        self['opacity'] = val
 
     @property
     def size(self):
@@ -66,11 +70,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
             Sets the marker size of unselected points, applied only
             when a selection exists.
         """
-
-    def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            opacity=None,
+            size=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, color=None, opacity=None, size=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.violin.unselected.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.violin.unselected.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.violin.unselected.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("opacity", arg, opacity)
-        self._set_property("size", arg, size)
+        self._set_property('color', arg, color)
+        self._set_property('opacity', arg, opacity)
+        self._set_property('size', arg, size)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/__init__.py b/plotly/graph_objs/volume/__init__.py
index 0b8a4b7653f..3a08d868822 100644
--- a/plotly/graph_objs/volume/__init__.py
+++ b/plotly/graph_objs/volume/__init__.py
@@ -1,20 +1,28 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._caps import Caps
+    from ._colorbar import ColorBar
+    from ._contour import Contour
+    from ._hoverlabel import Hoverlabel
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._lighting import Lighting
+    from ._lightposition import Lightposition
+    from ._slices import Slices
+    from ._spaceframe import Spaceframe
+    from ._stream import Stream
+    from ._surface import Surface
+    from . import caps
+    from . import colorbar
+    from . import hoverlabel
+    from . import legendgrouptitle
+    from . import slices
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.caps', '.colorbar', '.hoverlabel', '.legendgrouptitle', '.slices'],
+        ['._caps.Caps', '._colorbar.ColorBar', '._contour.Contour', '._hoverlabel.Hoverlabel', '._legendgrouptitle.Legendgrouptitle', '._lighting.Lighting', '._lightposition.Lightposition', '._slices.Slices', '._spaceframe.Spaceframe', '._stream.Stream', '._surface.Surface']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".caps", ".colorbar", ".hoverlabel", ".legendgrouptitle", ".slices"],
-    [
-        "._caps.Caps",
-        "._colorbar.ColorBar",
-        "._contour.Contour",
-        "._hoverlabel.Hoverlabel",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._lighting.Lighting",
-        "._lightposition.Lightposition",
-        "._slices.Slices",
-        "._spaceframe.Spaceframe",
-        "._stream.Stream",
-        "._surface.Surface",
-    ],
-)
diff --git a/plotly/graph_objs/volume/_caps.py b/plotly/graph_objs/volume/_caps.py
index 3b273a02529..fe104c9f17c 100644
--- a/plotly/graph_objs/volume/_caps.py
+++ b/plotly/graph_objs/volume/_caps.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Caps(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume"
-    _path_str = "volume.caps"
+    _parent_path_str = 'volume'
+    _path_str = 'volume.caps'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -24,11 +28,11 @@ def x(self):
         -------
         plotly.graph_objs.volume.caps.X
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -43,11 +47,11 @@ def y(self):
         -------
         plotly.graph_objs.volume.caps.Y
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -62,11 +66,11 @@ def z(self):
         -------
         plotly.graph_objs.volume.caps.Z
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -81,8 +85,13 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.volume.caps.Z` instance or
             dict with compatible properties
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Caps object
 
@@ -105,9 +114,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Caps
         """
-        super().__init__("caps")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('caps')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -117,18 +126,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.Caps
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.Caps`"""
-            )
+an instance of :class:`plotly.graph_objs.volume.Caps`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/_colorbar.py b/plotly/graph_objs/volume/_colorbar.py
index ec9959f1449..30bd1021d97 100644
--- a/plotly/graph_objs/volume/_colorbar.py
+++ b/plotly/graph_objs/volume/_colorbar.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,59 +11,9 @@
 
 class ColorBar(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume"
-    _path_str = "volume.colorbar"
-    _valid_props = {
-        "bgcolor",
-        "bordercolor",
-        "borderwidth",
-        "dtick",
-        "exponentformat",
-        "labelalias",
-        "len",
-        "lenmode",
-        "minexponent",
-        "nticks",
-        "orientation",
-        "outlinecolor",
-        "outlinewidth",
-        "separatethousands",
-        "showexponent",
-        "showticklabels",
-        "showtickprefix",
-        "showticksuffix",
-        "thickness",
-        "thicknessmode",
-        "tick0",
-        "tickangle",
-        "tickcolor",
-        "tickfont",
-        "tickformat",
-        "tickformatstopdefaults",
-        "tickformatstops",
-        "ticklabeloverflow",
-        "ticklabelposition",
-        "ticklabelstep",
-        "ticklen",
-        "tickmode",
-        "tickprefix",
-        "ticks",
-        "ticksuffix",
-        "ticktext",
-        "ticktextsrc",
-        "tickvals",
-        "tickvalssrc",
-        "tickwidth",
-        "title",
-        "x",
-        "xanchor",
-        "xpad",
-        "xref",
-        "y",
-        "yanchor",
-        "ypad",
-        "yref",
-    }
+    _parent_path_str = 'volume'
+    _path_str = 'volume.colorbar'
+    _valid_props = {"bgcolor", "bordercolor", "borderwidth", "dtick", "exponentformat", "labelalias", "len", "lenmode", "minexponent", "nticks", "orientation", "outlinecolor", "outlinewidth", "separatethousands", "showexponent", "showticklabels", "showtickprefix", "showticksuffix", "thickness", "thicknessmode", "tick0", "tickangle", "tickcolor", "tickfont", "tickformat", "tickformatstopdefaults", "tickformatstops", "ticklabeloverflow", "ticklabelposition", "ticklabelstep", "ticklen", "tickmode", "tickprefix", "ticks", "ticksuffix", "ticktext", "ticktextsrc", "tickvals", "tickvalssrc", "tickwidth", "title", "x", "xanchor", "xpad", "xref", "y", "yanchor", "ypad", "yref"}
 
     @property
     def bgcolor(self):
@@ -77,11 +31,11 @@ def bgcolor(self):
         -------
         str
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bordercolor(self):
@@ -99,11 +53,11 @@ def bordercolor(self):
         -------
         str
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def borderwidth(self):
@@ -117,11 +71,11 @@ def borderwidth(self):
         -------
         int|float
         """
-        return self["borderwidth"]
+        return self['borderwidth']
 
     @borderwidth.setter
     def borderwidth(self, val):
-        self["borderwidth"] = val
+        self['borderwidth'] = val
 
     @property
     def dtick(self):
@@ -153,11 +107,11 @@ def dtick(self):
         -------
         Any
         """
-        return self["dtick"]
+        return self['dtick']
 
     @dtick.setter
     def dtick(self, val):
-        self["dtick"] = val
+        self['dtick'] = val
 
     @property
     def exponentformat(self):
@@ -176,11 +130,11 @@ def exponentformat(self):
         -------
         Any
         """
-        return self["exponentformat"]
+        return self['exponentformat']
 
     @exponentformat.setter
     def exponentformat(self, val):
-        self["exponentformat"] = val
+        self['exponentformat'] = val
 
     @property
     def labelalias(self):
@@ -201,11 +155,11 @@ def labelalias(self):
         -------
         Any
         """
-        return self["labelalias"]
+        return self['labelalias']
 
     @labelalias.setter
     def labelalias(self, val):
-        self["labelalias"] = val
+        self['labelalias'] = val
 
     @property
     def len(self):
@@ -221,11 +175,11 @@ def len(self):
         -------
         int|float
         """
-        return self["len"]
+        return self['len']
 
     @len.setter
     def len(self, val):
-        self["len"] = val
+        self['len'] = val
 
     @property
     def lenmode(self):
@@ -242,11 +196,11 @@ def lenmode(self):
         -------
         Any
         """
-        return self["lenmode"]
+        return self['lenmode']
 
     @lenmode.setter
     def lenmode(self, val):
-        self["lenmode"] = val
+        self['lenmode'] = val
 
     @property
     def minexponent(self):
@@ -261,11 +215,11 @@ def minexponent(self):
         -------
         int|float
         """
-        return self["minexponent"]
+        return self['minexponent']
 
     @minexponent.setter
     def minexponent(self, val):
-        self["minexponent"] = val
+        self['minexponent'] = val
 
     @property
     def nticks(self):
@@ -283,11 +237,11 @@ def nticks(self):
         -------
         int
         """
-        return self["nticks"]
+        return self['nticks']
 
     @nticks.setter
     def nticks(self, val):
-        self["nticks"] = val
+        self['nticks'] = val
 
     @property
     def orientation(self):
@@ -302,11 +256,11 @@ def orientation(self):
         -------
         Any
         """
-        return self["orientation"]
+        return self['orientation']
 
     @orientation.setter
     def orientation(self, val):
-        self["orientation"] = val
+        self['orientation'] = val
 
     @property
     def outlinecolor(self):
@@ -324,11 +278,11 @@ def outlinecolor(self):
         -------
         str
         """
-        return self["outlinecolor"]
+        return self['outlinecolor']
 
     @outlinecolor.setter
     def outlinecolor(self, val):
-        self["outlinecolor"] = val
+        self['outlinecolor'] = val
 
     @property
     def outlinewidth(self):
@@ -342,11 +296,11 @@ def outlinewidth(self):
         -------
         int|float
         """
-        return self["outlinewidth"]
+        return self['outlinewidth']
 
     @outlinewidth.setter
     def outlinewidth(self, val):
-        self["outlinewidth"] = val
+        self['outlinewidth'] = val
 
     @property
     def separatethousands(self):
@@ -360,11 +314,11 @@ def separatethousands(self):
         -------
         bool
         """
-        return self["separatethousands"]
+        return self['separatethousands']
 
     @separatethousands.setter
     def separatethousands(self, val):
-        self["separatethousands"] = val
+        self['separatethousands'] = val
 
     @property
     def showexponent(self):
@@ -382,11 +336,11 @@ def showexponent(self):
         -------
         Any
         """
-        return self["showexponent"]
+        return self['showexponent']
 
     @showexponent.setter
     def showexponent(self, val):
-        self["showexponent"] = val
+        self['showexponent'] = val
 
     @property
     def showticklabels(self):
@@ -400,11 +354,11 @@ def showticklabels(self):
         -------
         bool
         """
-        return self["showticklabels"]
+        return self['showticklabels']
 
     @showticklabels.setter
     def showticklabels(self, val):
-        self["showticklabels"] = val
+        self['showticklabels'] = val
 
     @property
     def showtickprefix(self):
@@ -422,11 +376,11 @@ def showtickprefix(self):
         -------
         Any
         """
-        return self["showtickprefix"]
+        return self['showtickprefix']
 
     @showtickprefix.setter
     def showtickprefix(self, val):
-        self["showtickprefix"] = val
+        self['showtickprefix'] = val
 
     @property
     def showticksuffix(self):
@@ -441,11 +395,11 @@ def showticksuffix(self):
         -------
         Any
         """
-        return self["showticksuffix"]
+        return self['showticksuffix']
 
     @showticksuffix.setter
     def showticksuffix(self, val):
-        self["showticksuffix"] = val
+        self['showticksuffix'] = val
 
     @property
     def thickness(self):
@@ -460,11 +414,11 @@ def thickness(self):
         -------
         int|float
         """
-        return self["thickness"]
+        return self['thickness']
 
     @thickness.setter
     def thickness(self, val):
-        self["thickness"] = val
+        self['thickness'] = val
 
     @property
     def thicknessmode(self):
@@ -481,11 +435,11 @@ def thicknessmode(self):
         -------
         Any
         """
-        return self["thicknessmode"]
+        return self['thicknessmode']
 
     @thicknessmode.setter
     def thicknessmode(self, val):
-        self["thicknessmode"] = val
+        self['thicknessmode'] = val
 
     @property
     def tick0(self):
@@ -506,11 +460,11 @@ def tick0(self):
         -------
         Any
         """
-        return self["tick0"]
+        return self['tick0']
 
     @tick0.setter
     def tick0(self, val):
-        self["tick0"] = val
+        self['tick0'] = val
 
     @property
     def tickangle(self):
@@ -528,11 +482,11 @@ def tickangle(self):
         -------
         int|float
         """
-        return self["tickangle"]
+        return self['tickangle']
 
     @tickangle.setter
     def tickangle(self, val):
-        self["tickangle"] = val
+        self['tickangle'] = val
 
     @property
     def tickcolor(self):
@@ -550,11 +504,11 @@ def tickcolor(self):
         -------
         str
         """
-        return self["tickcolor"]
+        return self['tickcolor']
 
     @tickcolor.setter
     def tickcolor(self, val):
-        self["tickcolor"] = val
+        self['tickcolor'] = val
 
     @property
     def tickfont(self):
@@ -571,11 +525,11 @@ def tickfont(self):
         -------
         plotly.graph_objs.volume.colorbar.Tickfont
         """
-        return self["tickfont"]
+        return self['tickfont']
 
     @tickfont.setter
     def tickfont(self, val):
-        self["tickfont"] = val
+        self['tickfont'] = val
 
     @property
     def tickformat(self):
@@ -599,11 +553,11 @@ def tickformat(self):
         -------
         str
         """
-        return self["tickformat"]
+        return self['tickformat']
 
     @tickformat.setter
     def tickformat(self, val):
-        self["tickformat"] = val
+        self['tickformat'] = val
 
     @property
     def tickformatstops(self):
@@ -618,11 +572,11 @@ def tickformatstops(self):
         -------
         tuple[plotly.graph_objs.volume.colorbar.Tickformatstop]
         """
-        return self["tickformatstops"]
+        return self['tickformatstops']
 
     @tickformatstops.setter
     def tickformatstops(self, val):
-        self["tickformatstops"] = val
+        self['tickformatstops'] = val
 
     @property
     def tickformatstopdefaults(self):
@@ -642,11 +596,11 @@ def tickformatstopdefaults(self):
         -------
         plotly.graph_objs.volume.colorbar.Tickformatstop
         """
-        return self["tickformatstopdefaults"]
+        return self['tickformatstopdefaults']
 
     @tickformatstopdefaults.setter
     def tickformatstopdefaults(self, val):
-        self["tickformatstopdefaults"] = val
+        self['tickformatstopdefaults'] = val
 
     @property
     def ticklabeloverflow(self):
@@ -664,11 +618,11 @@ def ticklabeloverflow(self):
         -------
         Any
         """
-        return self["ticklabeloverflow"]
+        return self['ticklabeloverflow']
 
     @ticklabeloverflow.setter
     def ticklabeloverflow(self, val):
-        self["ticklabeloverflow"] = val
+        self['ticklabeloverflow'] = val
 
     @property
     def ticklabelposition(self):
@@ -687,11 +641,11 @@ def ticklabelposition(self):
         -------
         Any
         """
-        return self["ticklabelposition"]
+        return self['ticklabelposition']
 
     @ticklabelposition.setter
     def ticklabelposition(self, val):
-        self["ticklabelposition"] = val
+        self['ticklabelposition'] = val
 
     @property
     def ticklabelstep(self):
@@ -711,11 +665,11 @@ def ticklabelstep(self):
         -------
         int
         """
-        return self["ticklabelstep"]
+        return self['ticklabelstep']
 
     @ticklabelstep.setter
     def ticklabelstep(self, val):
-        self["ticklabelstep"] = val
+        self['ticklabelstep'] = val
 
     @property
     def ticklen(self):
@@ -729,11 +683,11 @@ def ticklen(self):
         -------
         int|float
         """
-        return self["ticklen"]
+        return self['ticklen']
 
     @ticklen.setter
     def ticklen(self, val):
-        self["ticklen"] = val
+        self['ticklen'] = val
 
     @property
     def tickmode(self):
@@ -754,11 +708,11 @@ def tickmode(self):
         -------
         Any
         """
-        return self["tickmode"]
+        return self['tickmode']
 
     @tickmode.setter
     def tickmode(self, val):
-        self["tickmode"] = val
+        self['tickmode'] = val
 
     @property
     def tickprefix(self):
@@ -773,11 +727,11 @@ def tickprefix(self):
         -------
         str
         """
-        return self["tickprefix"]
+        return self['tickprefix']
 
     @tickprefix.setter
     def tickprefix(self, val):
-        self["tickprefix"] = val
+        self['tickprefix'] = val
 
     @property
     def ticks(self):
@@ -794,11 +748,11 @@ def ticks(self):
         -------
         Any
         """
-        return self["ticks"]
+        return self['ticks']
 
     @ticks.setter
     def ticks(self, val):
-        self["ticks"] = val
+        self['ticks'] = val
 
     @property
     def ticksuffix(self):
@@ -813,11 +767,11 @@ def ticksuffix(self):
         -------
         str
         """
-        return self["ticksuffix"]
+        return self['ticksuffix']
 
     @ticksuffix.setter
     def ticksuffix(self, val):
-        self["ticksuffix"] = val
+        self['ticksuffix'] = val
 
     @property
     def ticktext(self):
@@ -833,11 +787,11 @@ def ticktext(self):
         -------
         numpy.ndarray
         """
-        return self["ticktext"]
+        return self['ticktext']
 
     @ticktext.setter
     def ticktext(self, val):
-        self["ticktext"] = val
+        self['ticktext'] = val
 
     @property
     def ticktextsrc(self):
@@ -851,11 +805,11 @@ def ticktextsrc(self):
         -------
         str
         """
-        return self["ticktextsrc"]
+        return self['ticktextsrc']
 
     @ticktextsrc.setter
     def ticktextsrc(self, val):
-        self["ticktextsrc"] = val
+        self['ticktextsrc'] = val
 
     @property
     def tickvals(self):
@@ -870,11 +824,11 @@ def tickvals(self):
         -------
         numpy.ndarray
         """
-        return self["tickvals"]
+        return self['tickvals']
 
     @tickvals.setter
     def tickvals(self, val):
-        self["tickvals"] = val
+        self['tickvals'] = val
 
     @property
     def tickvalssrc(self):
@@ -888,11 +842,11 @@ def tickvalssrc(self):
         -------
         str
         """
-        return self["tickvalssrc"]
+        return self['tickvalssrc']
 
     @tickvalssrc.setter
     def tickvalssrc(self, val):
-        self["tickvalssrc"] = val
+        self['tickvalssrc'] = val
 
     @property
     def tickwidth(self):
@@ -906,11 +860,11 @@ def tickwidth(self):
         -------
         int|float
         """
-        return self["tickwidth"]
+        return self['tickwidth']
 
     @tickwidth.setter
     def tickwidth(self, val):
-        self["tickwidth"] = val
+        self['tickwidth'] = val
 
     @property
     def title(self):
@@ -925,11 +879,11 @@ def title(self):
         -------
         plotly.graph_objs.volume.colorbar.Title
         """
-        return self["title"]
+        return self['title']
 
     @title.setter
     def title(self, val):
-        self["title"] = val
+        self['title'] = val
 
     @property
     def x(self):
@@ -949,11 +903,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def xanchor(self):
@@ -971,11 +925,11 @@ def xanchor(self):
         -------
         Any
         """
-        return self["xanchor"]
+        return self['xanchor']
 
     @xanchor.setter
     def xanchor(self, val):
-        self["xanchor"] = val
+        self['xanchor'] = val
 
     @property
     def xpad(self):
@@ -989,11 +943,11 @@ def xpad(self):
         -------
         int|float
         """
-        return self["xpad"]
+        return self['xpad']
 
     @xpad.setter
     def xpad(self, val):
-        self["xpad"] = val
+        self['xpad'] = val
 
     @property
     def xref(self):
@@ -1010,11 +964,11 @@ def xref(self):
         -------
         Any
         """
-        return self["xref"]
+        return self['xref']
 
     @xref.setter
     def xref(self, val):
-        self["xref"] = val
+        self['xref'] = val
 
     @property
     def y(self):
@@ -1034,11 +988,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def yanchor(self):
@@ -1056,11 +1010,11 @@ def yanchor(self):
         -------
         Any
         """
-        return self["yanchor"]
+        return self['yanchor']
 
     @yanchor.setter
     def yanchor(self, val):
-        self["yanchor"] = val
+        self['yanchor'] = val
 
     @property
     def ypad(self):
@@ -1074,11 +1028,11 @@ def ypad(self):
         -------
         int|float
         """
-        return self["ypad"]
+        return self['ypad']
 
     @ypad.setter
     def ypad(self, val):
-        self["ypad"] = val
+        self['ypad'] = val
 
     @property
     def yref(self):
@@ -1095,11 +1049,11 @@ def yref(self):
         -------
         Any
         """
-        return self["yref"]
+        return self['yref']
 
     @yref.setter
     def yref(self, val):
-        self["yref"] = val
+        self['yref'] = val
 
     @property
     def _prop_descriptions(self):
@@ -1343,61 +1297,59 @@ def _prop_descriptions(self):
             entire `height` of the plot. "paper" refers to the
             height of the plotting area only.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        bgcolor=None,
-        bordercolor=None,
-        borderwidth=None,
-        dtick=None,
-        exponentformat=None,
-        labelalias=None,
-        len=None,
-        lenmode=None,
-        minexponent=None,
-        nticks=None,
-        orientation=None,
-        outlinecolor=None,
-        outlinewidth=None,
-        separatethousands=None,
-        showexponent=None,
-        showticklabels=None,
-        showtickprefix=None,
-        showticksuffix=None,
-        thickness=None,
-        thicknessmode=None,
-        tick0=None,
-        tickangle=None,
-        tickcolor=None,
-        tickfont=None,
-        tickformat=None,
-        tickformatstops=None,
-        tickformatstopdefaults=None,
-        ticklabeloverflow=None,
-        ticklabelposition=None,
-        ticklabelstep=None,
-        ticklen=None,
-        tickmode=None,
-        tickprefix=None,
-        ticks=None,
-        ticksuffix=None,
-        ticktext=None,
-        ticktextsrc=None,
-        tickvals=None,
-        tickvalssrc=None,
-        tickwidth=None,
-        title=None,
-        x=None,
-        xanchor=None,
-        xpad=None,
-        xref=None,
-        y=None,
-        yanchor=None,
-        ypad=None,
-        yref=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            bgcolor=None,
+            bordercolor=None,
+            borderwidth=None,
+            dtick=None,
+            exponentformat=None,
+            labelalias=None,
+            len=None,
+            lenmode=None,
+            minexponent=None,
+            nticks=None,
+            orientation=None,
+            outlinecolor=None,
+            outlinewidth=None,
+            separatethousands=None,
+            showexponent=None,
+            showticklabels=None,
+            showtickprefix=None,
+            showticksuffix=None,
+            thickness=None,
+            thicknessmode=None,
+            tick0=None,
+            tickangle=None,
+            tickcolor=None,
+            tickfont=None,
+            tickformat=None,
+            tickformatstops=None,
+            tickformatstopdefaults=None,
+            ticklabeloverflow=None,
+            ticklabelposition=None,
+            ticklabelstep=None,
+            ticklen=None,
+            tickmode=None,
+            tickprefix=None,
+            ticks=None,
+            ticksuffix=None,
+            ticktext=None,
+            ticktextsrc=None,
+            tickvals=None,
+            tickvalssrc=None,
+            tickwidth=None,
+            title=None,
+            x=None,
+            xanchor=None,
+            xpad=None,
+            xref=None,
+            y=None,
+            yanchor=None,
+            ypad=None,
+            yref=None,
+            **kwargs
+        ):
         """
         Construct a new ColorBar object
 
@@ -1650,9 +1602,9 @@ def __init__(
         -------
         ColorBar
         """
-        super().__init__("colorbar")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('colorbar')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -1662,64 +1614,64 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.ColorBar
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.ColorBar`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("borderwidth", arg, borderwidth)
-        self._set_property("dtick", arg, dtick)
-        self._set_property("exponentformat", arg, exponentformat)
-        self._set_property("labelalias", arg, labelalias)
-        self._set_property("len", arg, len)
-        self._set_property("lenmode", arg, lenmode)
-        self._set_property("minexponent", arg, minexponent)
-        self._set_property("nticks", arg, nticks)
-        self._set_property("orientation", arg, orientation)
-        self._set_property("outlinecolor", arg, outlinecolor)
-        self._set_property("outlinewidth", arg, outlinewidth)
-        self._set_property("separatethousands", arg, separatethousands)
-        self._set_property("showexponent", arg, showexponent)
-        self._set_property("showticklabels", arg, showticklabels)
-        self._set_property("showtickprefix", arg, showtickprefix)
-        self._set_property("showticksuffix", arg, showticksuffix)
-        self._set_property("thickness", arg, thickness)
-        self._set_property("thicknessmode", arg, thicknessmode)
-        self._set_property("tick0", arg, tick0)
-        self._set_property("tickangle", arg, tickangle)
-        self._set_property("tickcolor", arg, tickcolor)
-        self._set_property("tickfont", arg, tickfont)
-        self._set_property("tickformat", arg, tickformat)
-        self._set_property("tickformatstops", arg, tickformatstops)
-        self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
-        self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
-        self._set_property("ticklabelposition", arg, ticklabelposition)
-        self._set_property("ticklabelstep", arg, ticklabelstep)
-        self._set_property("ticklen", arg, ticklen)
-        self._set_property("tickmode", arg, tickmode)
-        self._set_property("tickprefix", arg, tickprefix)
-        self._set_property("ticks", arg, ticks)
-        self._set_property("ticksuffix", arg, ticksuffix)
-        self._set_property("ticktext", arg, ticktext)
-        self._set_property("ticktextsrc", arg, ticktextsrc)
-        self._set_property("tickvals", arg, tickvals)
-        self._set_property("tickvalssrc", arg, tickvalssrc)
-        self._set_property("tickwidth", arg, tickwidth)
-        self._set_property("title", arg, title)
-        self._set_property("x", arg, x)
-        self._set_property("xanchor", arg, xanchor)
-        self._set_property("xpad", arg, xpad)
-        self._set_property("xref", arg, xref)
-        self._set_property("y", arg, y)
-        self._set_property("yanchor", arg, yanchor)
-        self._set_property("ypad", arg, ypad)
-        self._set_property("yref", arg, yref)
+an instance of :class:`plotly.graph_objs.volume.ColorBar`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('borderwidth', arg, borderwidth)
+        self._set_property('dtick', arg, dtick)
+        self._set_property('exponentformat', arg, exponentformat)
+        self._set_property('labelalias', arg, labelalias)
+        self._set_property('len', arg, len)
+        self._set_property('lenmode', arg, lenmode)
+        self._set_property('minexponent', arg, minexponent)
+        self._set_property('nticks', arg, nticks)
+        self._set_property('orientation', arg, orientation)
+        self._set_property('outlinecolor', arg, outlinecolor)
+        self._set_property('outlinewidth', arg, outlinewidth)
+        self._set_property('separatethousands', arg, separatethousands)
+        self._set_property('showexponent', arg, showexponent)
+        self._set_property('showticklabels', arg, showticklabels)
+        self._set_property('showtickprefix', arg, showtickprefix)
+        self._set_property('showticksuffix', arg, showticksuffix)
+        self._set_property('thickness', arg, thickness)
+        self._set_property('thicknessmode', arg, thicknessmode)
+        self._set_property('tick0', arg, tick0)
+        self._set_property('tickangle', arg, tickangle)
+        self._set_property('tickcolor', arg, tickcolor)
+        self._set_property('tickfont', arg, tickfont)
+        self._set_property('tickformat', arg, tickformat)
+        self._set_property('tickformatstops', arg, tickformatstops)
+        self._set_property('tickformatstopdefaults', arg, tickformatstopdefaults)
+        self._set_property('ticklabeloverflow', arg, ticklabeloverflow)
+        self._set_property('ticklabelposition', arg, ticklabelposition)
+        self._set_property('ticklabelstep', arg, ticklabelstep)
+        self._set_property('ticklen', arg, ticklen)
+        self._set_property('tickmode', arg, tickmode)
+        self._set_property('tickprefix', arg, tickprefix)
+        self._set_property('ticks', arg, ticks)
+        self._set_property('ticksuffix', arg, ticksuffix)
+        self._set_property('ticktext', arg, ticktext)
+        self._set_property('ticktextsrc', arg, ticktextsrc)
+        self._set_property('tickvals', arg, tickvals)
+        self._set_property('tickvalssrc', arg, tickvalssrc)
+        self._set_property('tickwidth', arg, tickwidth)
+        self._set_property('title', arg, title)
+        self._set_property('x', arg, x)
+        self._set_property('xanchor', arg, xanchor)
+        self._set_property('xpad', arg, xpad)
+        self._set_property('xref', arg, xref)
+        self._set_property('y', arg, y)
+        self._set_property('yanchor', arg, yanchor)
+        self._set_property('ypad', arg, ypad)
+        self._set_property('yref', arg, yref)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/_contour.py b/plotly/graph_objs/volume/_contour.py
index 2190f08f2c5..8948ee244f3 100644
--- a/plotly/graph_objs/volume/_contour.py
+++ b/plotly/graph_objs/volume/_contour.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Contour(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume"
-    _path_str = "volume.contour"
+    _parent_path_str = 'volume'
+    _path_str = 'volume.contour'
     _valid_props = {"color", "show", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def show(self):
@@ -45,11 +49,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def width(self):
@@ -63,11 +67,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -79,8 +83,13 @@ def _prop_descriptions(self):
         width
             Sets the width of the contour lines.
         """
-
-    def __init__(self, arg=None, color=None, show=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            show=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Contour object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, color=None, show=None, width=None, **kwargs):
         -------
         Contour
         """
-        super().__init__("contour")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('contour')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, color=None, show=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.Contour
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.Contour`"""
-            )
+an instance of :class:`plotly.graph_objs.volume.Contour`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("show", arg, show)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('show', arg, show)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/_hoverlabel.py b/plotly/graph_objs/volume/_hoverlabel.py
index 5602c1f924b..22e8c067071 100644
--- a/plotly/graph_objs/volume/_hoverlabel.py
+++ b/plotly/graph_objs/volume/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume"
-    _path_str = "volume.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'volume'
+    _path_str = 'volume.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.volume.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.volume.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/_legendgrouptitle.py b/plotly/graph_objs/volume/_legendgrouptitle.py
index e9b36293513..1a0950c42b7 100644
--- a/plotly/graph_objs/volume/_legendgrouptitle.py
+++ b/plotly/graph_objs/volume/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume"
-    _path_str = "volume.legendgrouptitle"
+    _parent_path_str = 'volume'
+    _path_str = 'volume.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.volume.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.volume.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/_lighting.py b/plotly/graph_objs/volume/_lighting.py
index 3e9612ffa53..32b1b4c563c 100644
--- a/plotly/graph_objs/volume/_lighting.py
+++ b/plotly/graph_objs/volume/_lighting.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,17 +11,9 @@
 
 class Lighting(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume"
-    _path_str = "volume.lighting"
-    _valid_props = {
-        "ambient",
-        "diffuse",
-        "facenormalsepsilon",
-        "fresnel",
-        "roughness",
-        "specular",
-        "vertexnormalsepsilon",
-    }
+    _parent_path_str = 'volume'
+    _path_str = 'volume.lighting'
+    _valid_props = {"ambient", "diffuse", "facenormalsepsilon", "fresnel", "roughness", "specular", "vertexnormalsepsilon"}
 
     @property
     def ambient(self):
@@ -32,11 +28,11 @@ def ambient(self):
         -------
         int|float
         """
-        return self["ambient"]
+        return self['ambient']
 
     @ambient.setter
     def ambient(self, val):
-        self["ambient"] = val
+        self['ambient'] = val
 
     @property
     def diffuse(self):
@@ -51,11 +47,11 @@ def diffuse(self):
         -------
         int|float
         """
-        return self["diffuse"]
+        return self['diffuse']
 
     @diffuse.setter
     def diffuse(self, val):
-        self["diffuse"] = val
+        self['diffuse'] = val
 
     @property
     def facenormalsepsilon(self):
@@ -70,11 +66,11 @@ def facenormalsepsilon(self):
         -------
         int|float
         """
-        return self["facenormalsepsilon"]
+        return self['facenormalsepsilon']
 
     @facenormalsepsilon.setter
     def facenormalsepsilon(self, val):
-        self["facenormalsepsilon"] = val
+        self['facenormalsepsilon'] = val
 
     @property
     def fresnel(self):
@@ -90,11 +86,11 @@ def fresnel(self):
         -------
         int|float
         """
-        return self["fresnel"]
+        return self['fresnel']
 
     @fresnel.setter
     def fresnel(self, val):
-        self["fresnel"] = val
+        self['fresnel'] = val
 
     @property
     def roughness(self):
@@ -109,11 +105,11 @@ def roughness(self):
         -------
         int|float
         """
-        return self["roughness"]
+        return self['roughness']
 
     @roughness.setter
     def roughness(self, val):
-        self["roughness"] = val
+        self['roughness'] = val
 
     @property
     def specular(self):
@@ -128,11 +124,11 @@ def specular(self):
         -------
         int|float
         """
-        return self["specular"]
+        return self['specular']
 
     @specular.setter
     def specular(self, val):
-        self["specular"] = val
+        self['specular'] = val
 
     @property
     def vertexnormalsepsilon(self):
@@ -147,11 +143,11 @@ def vertexnormalsepsilon(self):
         -------
         int|float
         """
-        return self["vertexnormalsepsilon"]
+        return self['vertexnormalsepsilon']
 
     @vertexnormalsepsilon.setter
     def vertexnormalsepsilon(self, val):
-        self["vertexnormalsepsilon"] = val
+        self['vertexnormalsepsilon'] = val
 
     @property
     def _prop_descriptions(self):
@@ -180,19 +176,17 @@ def _prop_descriptions(self):
             Epsilon for vertex normals calculation avoids math
             issues arising from degenerate geometry.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        ambient=None,
-        diffuse=None,
-        facenormalsepsilon=None,
-        fresnel=None,
-        roughness=None,
-        specular=None,
-        vertexnormalsepsilon=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            ambient=None,
+            diffuse=None,
+            facenormalsepsilon=None,
+            fresnel=None,
+            roughness=None,
+            specular=None,
+            vertexnormalsepsilon=None,
+            **kwargs
+        ):
         """
         Construct a new Lighting object
 
@@ -230,9 +224,9 @@ def __init__(
         -------
         Lighting
         """
-        super().__init__("lighting")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('lighting')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -242,22 +236,22 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.Lighting
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.Lighting`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("ambient", arg, ambient)
-        self._set_property("diffuse", arg, diffuse)
-        self._set_property("facenormalsepsilon", arg, facenormalsepsilon)
-        self._set_property("fresnel", arg, fresnel)
-        self._set_property("roughness", arg, roughness)
-        self._set_property("specular", arg, specular)
-        self._set_property("vertexnormalsepsilon", arg, vertexnormalsepsilon)
+an instance of :class:`plotly.graph_objs.volume.Lighting`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('ambient', arg, ambient)
+        self._set_property('diffuse', arg, diffuse)
+        self._set_property('facenormalsepsilon', arg, facenormalsepsilon)
+        self._set_property('fresnel', arg, fresnel)
+        self._set_property('roughness', arg, roughness)
+        self._set_property('specular', arg, specular)
+        self._set_property('vertexnormalsepsilon', arg, vertexnormalsepsilon)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/_lightposition.py b/plotly/graph_objs/volume/_lightposition.py
index 8b1ab5b88de..3508d3c9567 100644
--- a/plotly/graph_objs/volume/_lightposition.py
+++ b/plotly/graph_objs/volume/_lightposition.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Lightposition(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume"
-    _path_str = "volume.lightposition"
+    _parent_path_str = 'volume'
+    _path_str = 'volume.lightposition'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -23,11 +27,11 @@ def x(self):
         -------
         int|float
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -41,11 +45,11 @@ def y(self):
         -------
         int|float
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -59,11 +63,11 @@ def z(self):
         -------
         int|float
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -78,8 +82,13 @@ def _prop_descriptions(self):
             Numeric vector, representing the Z coordinate for each
             vertex.
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Lightposition object
 
@@ -103,9 +112,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Lightposition
         """
-        super().__init__("lightposition")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('lightposition')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -115,18 +124,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.Lightposition
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.Lightposition`"""
-            )
+an instance of :class:`plotly.graph_objs.volume.Lightposition`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/_slices.py b/plotly/graph_objs/volume/_slices.py
index 84938f11cb9..7ebf2938ea0 100644
--- a/plotly/graph_objs/volume/_slices.py
+++ b/plotly/graph_objs/volume/_slices.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Slices(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume"
-    _path_str = "volume.slices"
+    _parent_path_str = 'volume'
+    _path_str = 'volume.slices'
     _valid_props = {"x", "y", "z"}
 
     @property
@@ -24,11 +28,11 @@ def x(self):
         -------
         plotly.graph_objs.volume.slices.X
         """
-        return self["x"]
+        return self['x']
 
     @x.setter
     def x(self, val):
-        self["x"] = val
+        self['x'] = val
 
     @property
     def y(self):
@@ -43,11 +47,11 @@ def y(self):
         -------
         plotly.graph_objs.volume.slices.Y
         """
-        return self["y"]
+        return self['y']
 
     @y.setter
     def y(self, val):
-        self["y"] = val
+        self['y'] = val
 
     @property
     def z(self):
@@ -62,11 +66,11 @@ def z(self):
         -------
         plotly.graph_objs.volume.slices.Z
         """
-        return self["z"]
+        return self['z']
 
     @z.setter
     def z(self, val):
-        self["z"] = val
+        self['z'] = val
 
     @property
     def _prop_descriptions(self):
@@ -81,8 +85,13 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.volume.slices.Z` instance
             or dict with compatible properties
         """
-
-    def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            x=None,
+            y=None,
+            z=None,
+            **kwargs
+        ):
         """
         Construct a new Slices object
 
@@ -105,9 +114,9 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         -------
         Slices
         """
-        super().__init__("slices")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('slices')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -117,18 +126,18 @@ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.Slices
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.Slices`"""
-            )
+an instance of :class:`plotly.graph_objs.volume.Slices`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("x", arg, x)
-        self._set_property("y", arg, y)
-        self._set_property("z", arg, z)
+        self._set_property('x', arg, x)
+        self._set_property('y', arg, y)
+        self._set_property('z', arg, z)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/_spaceframe.py b/plotly/graph_objs/volume/_spaceframe.py
index 112bfa2ea67..0824416a13a 100644
--- a/plotly/graph_objs/volume/_spaceframe.py
+++ b/plotly/graph_objs/volume/_spaceframe.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Spaceframe(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume"
-    _path_str = "volume.spaceframe"
+    _parent_path_str = 'volume'
+    _path_str = 'volume.spaceframe'
     _valid_props = {"fill", "show"}
 
     @property
@@ -26,11 +30,11 @@ def fill(self):
         -------
         int|float
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def show(self):
@@ -46,11 +50,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -66,8 +70,12 @@ def _prop_descriptions(self):
             surfaces are disabled or filled with values less than
             1.
         """
-
-    def __init__(self, arg=None, fill=None, show=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            fill=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new Spaceframe object
 
@@ -92,9 +100,9 @@ def __init__(self, arg=None, fill=None, show=None, **kwargs):
         -------
         Spaceframe
         """
-        super().__init__("spaceframe")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('spaceframe')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -104,17 +112,17 @@ def __init__(self, arg=None, fill=None, show=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.Spaceframe
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.Spaceframe`"""
-            )
+an instance of :class:`plotly.graph_objs.volume.Spaceframe`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fill", arg, fill)
-        self._set_property("show", arg, show)
+        self._set_property('fill', arg, fill)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/_stream.py b/plotly/graph_objs/volume/_stream.py
index 8dc9b6fb433..96dfc0afac5 100644
--- a/plotly/graph_objs/volume/_stream.py
+++ b/plotly/graph_objs/volume/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume"
-    _path_str = "volume.stream"
+    _parent_path_str = 'volume'
+    _path_str = 'volume.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -88,9 +96,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -100,17 +108,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.volume.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/_surface.py b/plotly/graph_objs/volume/_surface.py
index 1b9812a9a98..c4fa0b246b6 100644
--- a/plotly/graph_objs/volume/_surface.py
+++ b/plotly/graph_objs/volume/_surface.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Surface(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume"
-    _path_str = "volume.surface"
+    _parent_path_str = 'volume'
+    _path_str = 'volume.surface'
     _valid_props = {"count", "fill", "pattern", "show"}
 
     @property
@@ -26,11 +30,11 @@ def count(self):
         -------
         int
         """
-        return self["count"]
+        return self['count']
 
     @count.setter
     def count(self, val):
-        self["count"] = val
+        self['count'] = val
 
     @property
     def fill(self):
@@ -47,11 +51,11 @@ def fill(self):
         -------
         int|float
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def pattern(self):
@@ -74,11 +78,11 @@ def pattern(self):
         -------
         Any
         """
-        return self["pattern"]
+        return self['pattern']
 
     @pattern.setter
     def pattern(self, val):
-        self["pattern"] = val
+        self['pattern'] = val
 
     @property
     def show(self):
@@ -92,11 +96,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -125,10 +129,14 @@ def _prop_descriptions(self):
             Hides/displays surfaces between minimum and maximum
             iso-values.
         """
-
-    def __init__(
-        self, arg=None, count=None, fill=None, pattern=None, show=None, **kwargs
-    ):
+    def __init__(self,
+            arg=None,
+            count=None,
+            fill=None,
+            pattern=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new Surface object
 
@@ -166,9 +174,9 @@ def __init__(
         -------
         Surface
         """
-        super().__init__("surface")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('surface')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -178,19 +186,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.Surface
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.Surface`"""
-            )
+an instance of :class:`plotly.graph_objs.volume.Surface`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("count", arg, count)
-        self._set_property("fill", arg, fill)
-        self._set_property("pattern", arg, pattern)
-        self._set_property("show", arg, show)
+        self._set_property('count', arg, count)
+        self._set_property('fill', arg, fill)
+        self._set_property('pattern', arg, pattern)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/caps/__init__.py b/plotly/graph_objs/volume/caps/__init__.py
index 649c038369f..bc24ca0a556 100644
--- a/plotly/graph_objs/volume/caps/__init__.py
+++ b/plotly/graph_objs/volume/caps/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._x import X
+    from ._y import Y
+    from ._z import Z
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._x.X', '._y.Y', '._z.Z']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._x.X", "._y.Y", "._z.Z"]
-)
diff --git a/plotly/graph_objs/volume/caps/_x.py b/plotly/graph_objs/volume/caps/_x.py
index f7a92b3c8ff..37639c34ad0 100644
--- a/plotly/graph_objs/volume/caps/_x.py
+++ b/plotly/graph_objs/volume/caps/_x.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class X(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume.caps"
-    _path_str = "volume.caps.x"
+    _parent_path_str = 'volume.caps'
+    _path_str = 'volume.caps.x'
     _valid_props = {"fill", "show"}
 
     @property
@@ -26,11 +30,11 @@ def fill(self):
         -------
         int|float
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def show(self):
@@ -47,11 +51,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -69,8 +73,12 @@ def _prop_descriptions(self):
             ratio less than one would allow the creation of
             openings parallel to the edges.
         """
-
-    def __init__(self, arg=None, fill=None, show=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            fill=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new X object
 
@@ -96,9 +104,9 @@ def __init__(self, arg=None, fill=None, show=None, **kwargs):
         -------
         X
         """
-        super().__init__("x")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('x')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -108,17 +116,17 @@ def __init__(self, arg=None, fill=None, show=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.caps.X
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.caps.X`"""
-            )
+an instance of :class:`plotly.graph_objs.volume.caps.X`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fill", arg, fill)
-        self._set_property("show", arg, show)
+        self._set_property('fill', arg, fill)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/caps/_y.py b/plotly/graph_objs/volume/caps/_y.py
index 0ff10c6f9e5..da8cd311acf 100644
--- a/plotly/graph_objs/volume/caps/_y.py
+++ b/plotly/graph_objs/volume/caps/_y.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Y(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume.caps"
-    _path_str = "volume.caps.y"
+    _parent_path_str = 'volume.caps'
+    _path_str = 'volume.caps.y'
     _valid_props = {"fill", "show"}
 
     @property
@@ -26,11 +30,11 @@ def fill(self):
         -------
         int|float
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def show(self):
@@ -47,11 +51,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -69,8 +73,12 @@ def _prop_descriptions(self):
             ratio less than one would allow the creation of
             openings parallel to the edges.
         """
-
-    def __init__(self, arg=None, fill=None, show=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            fill=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new Y object
 
@@ -96,9 +104,9 @@ def __init__(self, arg=None, fill=None, show=None, **kwargs):
         -------
         Y
         """
-        super().__init__("y")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('y')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -108,17 +116,17 @@ def __init__(self, arg=None, fill=None, show=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.caps.Y
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.caps.Y`"""
-            )
+an instance of :class:`plotly.graph_objs.volume.caps.Y`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fill", arg, fill)
-        self._set_property("show", arg, show)
+        self._set_property('fill', arg, fill)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/caps/_z.py b/plotly/graph_objs/volume/caps/_z.py
index a9bcd9c44e7..6e16372bcec 100644
--- a/plotly/graph_objs/volume/caps/_z.py
+++ b/plotly/graph_objs/volume/caps/_z.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Z(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume.caps"
-    _path_str = "volume.caps.z"
+    _parent_path_str = 'volume.caps'
+    _path_str = 'volume.caps.z'
     _valid_props = {"fill", "show"}
 
     @property
@@ -26,11 +30,11 @@ def fill(self):
         -------
         int|float
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def show(self):
@@ -47,11 +51,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -69,8 +73,12 @@ def _prop_descriptions(self):
             ratio less than one would allow the creation of
             openings parallel to the edges.
         """
-
-    def __init__(self, arg=None, fill=None, show=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            fill=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new Z object
 
@@ -96,9 +104,9 @@ def __init__(self, arg=None, fill=None, show=None, **kwargs):
         -------
         Z
         """
-        super().__init__("z")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('z')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -108,17 +116,17 @@ def __init__(self, arg=None, fill=None, show=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.caps.Z
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.caps.Z`"""
-            )
+an instance of :class:`plotly.graph_objs.volume.caps.Z`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fill", arg, fill)
-        self._set_property("show", arg, show)
+        self._set_property('fill', arg, fill)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/colorbar/__init__.py b/plotly/graph_objs/volume/colorbar/__init__.py
index cc97be86612..5358762a40b 100644
--- a/plotly/graph_objs/volume/colorbar/__init__.py
+++ b/plotly/graph_objs/volume/colorbar/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickfont import Tickfont
+    from ._tickformatstop import Tickformatstop
+    from ._title import Title
+    from . import title
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.title'],
+        ['._tickfont.Tickfont', '._tickformatstop.Tickformatstop', '._title.Title']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [".title"],
-    ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
-)
diff --git a/plotly/graph_objs/volume/colorbar/_tickfont.py b/plotly/graph_objs/volume/colorbar/_tickfont.py
index d851fe9bb5d..8f86b0e3bee 100644
--- a/plotly/graph_objs/volume/colorbar/_tickfont.py
+++ b/plotly/graph_objs/volume/colorbar/_tickfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Tickfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume.colorbar"
-    _path_str = "volume.colorbar.tickfont"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'volume.colorbar'
+    _path_str = 'volume.colorbar.tickfont'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Tickfont object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Tickfont
         """
-        super().__init__("tickfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.colorbar.Tickfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.colorbar.Tickfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.volume.colorbar.Tickfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/colorbar/_tickformatstop.py b/plotly/graph_objs/volume/colorbar/_tickformatstop.py
index 918dcd4992d..bcfef7aa9d4 100644
--- a/plotly/graph_objs/volume/colorbar/_tickformatstop.py
+++ b/plotly/graph_objs/volume/colorbar/_tickformatstop.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,32 +11,32 @@
 
 class Tickformatstop(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume.colorbar"
-    _path_str = "volume.colorbar.tickformatstop"
+    _parent_path_str = 'volume.colorbar'
+    _path_str = 'volume.colorbar.tickformatstop'
     _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
 
     @property
     def dtickrange(self):
         """
-            range [*min*, *max*], where "min", "max" - dtick values which
-            describe some zoom level, it is possible to omit "min" or "max"
-            value by passing "null"
-
-            The 'dtickrange' property is an info array that may be specified as:
+        range [*min*, *max*], where "min", "max" - dtick values which
+        describe some zoom level, it is possible to omit "min" or "max"
+        value by passing "null"
 
-            * a list or tuple of 2 elements where:
-        (0) The 'dtickrange[0]' property accepts values of any type
-        (1) The 'dtickrange[1]' property accepts values of any type
+        The 'dtickrange' property is an info array that may be specified as:
+    
+        * a list or tuple of 2 elements where:
+    (0) The 'dtickrange[0]' property accepts values of any type
+    (1) The 'dtickrange[1]' property accepts values of any type
 
-            Returns
-            -------
-            list
+        Returns
+        -------
+        list
         """
-        return self["dtickrange"]
+        return self['dtickrange']
 
     @dtickrange.setter
     def dtickrange(self, val):
-        self["dtickrange"] = val
+        self['dtickrange'] = val
 
     @property
     def enabled(self):
@@ -47,11 +51,11 @@ def enabled(self):
         -------
         bool
         """
-        return self["enabled"]
+        return self['enabled']
 
     @enabled.setter
     def enabled(self, val):
-        self["enabled"] = val
+        self['enabled'] = val
 
     @property
     def name(self):
@@ -72,11 +76,11 @@ def name(self):
         -------
         str
         """
-        return self["name"]
+        return self['name']
 
     @name.setter
     def name(self, val):
-        self["name"] = val
+        self['name'] = val
 
     @property
     def templateitemname(self):
@@ -98,11 +102,11 @@ def templateitemname(self):
         -------
         str
         """
-        return self["templateitemname"]
+        return self['templateitemname']
 
     @templateitemname.setter
     def templateitemname(self, val):
-        self["templateitemname"] = val
+        self['templateitemname'] = val
 
     @property
     def value(self):
@@ -118,11 +122,11 @@ def value(self):
         -------
         str
         """
-        return self["value"]
+        return self['value']
 
     @value.setter
     def value(self, val):
-        self["value"] = val
+        self['value'] = val
 
     @property
     def _prop_descriptions(self):
@@ -158,17 +162,15 @@ def _prop_descriptions(self):
             string - dtickformat for described zoom level, the same
             as "tickformat"
         """
-
-    def __init__(
-        self,
-        arg=None,
-        dtickrange=None,
-        enabled=None,
-        name=None,
-        templateitemname=None,
-        value=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            dtickrange=None,
+            enabled=None,
+            name=None,
+            templateitemname=None,
+            value=None,
+            **kwargs
+        ):
         """
         Construct a new Tickformatstop object
 
@@ -213,9 +215,9 @@ def __init__(
         -------
         Tickformatstop
         """
-        super().__init__("tickformatstops")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('tickformatstops')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -225,20 +227,20 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.colorbar.Tickformatstop
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.colorbar.Tickformatstop`"""
-            )
+an instance of :class:`plotly.graph_objs.volume.colorbar.Tickformatstop`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("dtickrange", arg, dtickrange)
-        self._set_property("enabled", arg, enabled)
-        self._set_property("name", arg, name)
-        self._set_property("templateitemname", arg, templateitemname)
-        self._set_property("value", arg, value)
+        self._set_property('dtickrange', arg, dtickrange)
+        self._set_property('enabled', arg, enabled)
+        self._set_property('name', arg, name)
+        self._set_property('templateitemname', arg, templateitemname)
+        self._set_property('value', arg, value)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/colorbar/_title.py b/plotly/graph_objs/volume/colorbar/_title.py
index 759532da0e9..925c1279260 100644
--- a/plotly/graph_objs/volume/colorbar/_title.py
+++ b/plotly/graph_objs/volume/colorbar/_title.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Title(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume.colorbar"
-    _path_str = "volume.colorbar.title"
+    _parent_path_str = 'volume.colorbar'
+    _path_str = 'volume.colorbar.title'
     _valid_props = {"font", "side", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.volume.colorbar.title.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def side(self):
@@ -47,11 +51,11 @@ def side(self):
         -------
         Any
         """
-        return self["side"]
+        return self['side']
 
     @side.setter
     def side(self, val):
-        self["side"] = val
+        self['side'] = val
 
     @property
     def text(self):
@@ -66,11 +70,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -85,8 +89,13 @@ def _prop_descriptions(self):
         text
             Sets the title of the color bar.
         """
-
-    def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            side=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Title object
 
@@ -110,9 +119,9 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         -------
         Title
         """
-        super().__init__("title")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('title')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -122,18 +131,18 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.colorbar.Title
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.colorbar.Title`"""
-            )
+an instance of :class:`plotly.graph_objs.volume.colorbar.Title`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("side", arg, side)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('side', arg, side)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/colorbar/title/__init__.py b/plotly/graph_objs/volume/colorbar/title/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/volume/colorbar/title/__init__.py
+++ b/plotly/graph_objs/volume/colorbar/title/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/volume/colorbar/title/_font.py b/plotly/graph_objs/volume/colorbar/title/_font.py
index 7529bd09c00..95d90ee7b7e 100644
--- a/plotly/graph_objs/volume/colorbar/title/_font.py
+++ b/plotly/graph_objs/volume/colorbar/title/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume.colorbar.title"
-    _path_str = "volume.colorbar.title.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'volume.colorbar.title'
+    _path_str = 'volume.colorbar.title.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.colorbar.title.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.colorbar.title.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.volume.colorbar.title.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/hoverlabel/__init__.py b/plotly/graph_objs/volume/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/volume/hoverlabel/__init__.py
+++ b/plotly/graph_objs/volume/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/volume/hoverlabel/_font.py b/plotly/graph_objs/volume/hoverlabel/_font.py
index 77794cf3f20..383edbfc664 100644
--- a/plotly/graph_objs/volume/hoverlabel/_font.py
+++ b/plotly/graph_objs/volume/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume.hoverlabel"
-    _path_str = "volume.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'volume.hoverlabel'
+    _path_str = 'volume.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.volume.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/legendgrouptitle/__init__.py b/plotly/graph_objs/volume/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/volume/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/volume/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/volume/legendgrouptitle/_font.py b/plotly/graph_objs/volume/legendgrouptitle/_font.py
index 2f508e87526..186b40b4d77 100644
--- a/plotly/graph_objs/volume/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/volume/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume.legendgrouptitle"
-    _path_str = "volume.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'volume.legendgrouptitle'
+    _path_str = 'volume.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.volume.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/slices/__init__.py b/plotly/graph_objs/volume/slices/__init__.py
index 649c038369f..bc24ca0a556 100644
--- a/plotly/graph_objs/volume/slices/__init__.py
+++ b/plotly/graph_objs/volume/slices/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._x import X
+    from ._y import Y
+    from ._z import Z
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._x.X', '._y.Y', '._z.Z']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._x.X", "._y.Y", "._z.Z"]
-)
diff --git a/plotly/graph_objs/volume/slices/_x.py b/plotly/graph_objs/volume/slices/_x.py
index 16e8e139d2a..cbfd9d44ca8 100644
--- a/plotly/graph_objs/volume/slices/_x.py
+++ b/plotly/graph_objs/volume/slices/_x.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class X(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume.slices"
-    _path_str = "volume.slices.x"
+    _parent_path_str = 'volume.slices'
+    _path_str = 'volume.slices.x'
     _valid_props = {"fill", "locations", "locationssrc", "show"}
 
     @property
@@ -26,11 +30,11 @@ def fill(self):
         -------
         int|float
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def locations(self):
@@ -46,11 +50,11 @@ def locations(self):
         -------
         numpy.ndarray
         """
-        return self["locations"]
+        return self['locations']
 
     @locations.setter
     def locations(self, val):
-        self["locations"] = val
+        self['locations'] = val
 
     @property
     def locationssrc(self):
@@ -65,11 +69,11 @@ def locationssrc(self):
         -------
         str
         """
-        return self["locationssrc"]
+        return self['locationssrc']
 
     @locationssrc.setter
     def locationssrc(self, val):
-        self["locationssrc"] = val
+        self['locationssrc'] = val
 
     @property
     def show(self):
@@ -84,11 +88,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -110,16 +114,14 @@ def _prop_descriptions(self):
             Determines whether or not slice planes about the x
             dimension are drawn.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        fill=None,
-        locations=None,
-        locationssrc=None,
-        show=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            fill=None,
+            locations=None,
+            locationssrc=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new X object
 
@@ -150,9 +152,9 @@ def __init__(
         -------
         X
         """
-        super().__init__("x")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('x')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -162,19 +164,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.slices.X
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.slices.X`"""
-            )
+an instance of :class:`plotly.graph_objs.volume.slices.X`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fill", arg, fill)
-        self._set_property("locations", arg, locations)
-        self._set_property("locationssrc", arg, locationssrc)
-        self._set_property("show", arg, show)
+        self._set_property('fill', arg, fill)
+        self._set_property('locations', arg, locations)
+        self._set_property('locationssrc', arg, locationssrc)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/slices/_y.py b/plotly/graph_objs/volume/slices/_y.py
index a6f1fac4262..f5c2f6bce9d 100644
--- a/plotly/graph_objs/volume/slices/_y.py
+++ b/plotly/graph_objs/volume/slices/_y.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Y(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume.slices"
-    _path_str = "volume.slices.y"
+    _parent_path_str = 'volume.slices'
+    _path_str = 'volume.slices.y'
     _valid_props = {"fill", "locations", "locationssrc", "show"}
 
     @property
@@ -26,11 +30,11 @@ def fill(self):
         -------
         int|float
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def locations(self):
@@ -46,11 +50,11 @@ def locations(self):
         -------
         numpy.ndarray
         """
-        return self["locations"]
+        return self['locations']
 
     @locations.setter
     def locations(self, val):
-        self["locations"] = val
+        self['locations'] = val
 
     @property
     def locationssrc(self):
@@ -65,11 +69,11 @@ def locationssrc(self):
         -------
         str
         """
-        return self["locationssrc"]
+        return self['locationssrc']
 
     @locationssrc.setter
     def locationssrc(self, val):
-        self["locationssrc"] = val
+        self['locationssrc'] = val
 
     @property
     def show(self):
@@ -84,11 +88,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -110,16 +114,14 @@ def _prop_descriptions(self):
             Determines whether or not slice planes about the y
             dimension are drawn.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        fill=None,
-        locations=None,
-        locationssrc=None,
-        show=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            fill=None,
+            locations=None,
+            locationssrc=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new Y object
 
@@ -150,9 +152,9 @@ def __init__(
         -------
         Y
         """
-        super().__init__("y")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('y')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -162,19 +164,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.slices.Y
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.slices.Y`"""
-            )
+an instance of :class:`plotly.graph_objs.volume.slices.Y`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fill", arg, fill)
-        self._set_property("locations", arg, locations)
-        self._set_property("locationssrc", arg, locationssrc)
-        self._set_property("show", arg, show)
+        self._set_property('fill', arg, fill)
+        self._set_property('locations', arg, locations)
+        self._set_property('locationssrc', arg, locationssrc)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/volume/slices/_z.py b/plotly/graph_objs/volume/slices/_z.py
index 37bb008f59f..b979b865a71 100644
--- a/plotly/graph_objs/volume/slices/_z.py
+++ b/plotly/graph_objs/volume/slices/_z.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Z(_BaseTraceHierarchyType):
 
-    _parent_path_str = "volume.slices"
-    _path_str = "volume.slices.z"
+    _parent_path_str = 'volume.slices'
+    _path_str = 'volume.slices.z'
     _valid_props = {"fill", "locations", "locationssrc", "show"}
 
     @property
@@ -26,11 +30,11 @@ def fill(self):
         -------
         int|float
         """
-        return self["fill"]
+        return self['fill']
 
     @fill.setter
     def fill(self, val):
-        self["fill"] = val
+        self['fill'] = val
 
     @property
     def locations(self):
@@ -46,11 +50,11 @@ def locations(self):
         -------
         numpy.ndarray
         """
-        return self["locations"]
+        return self['locations']
 
     @locations.setter
     def locations(self, val):
-        self["locations"] = val
+        self['locations'] = val
 
     @property
     def locationssrc(self):
@@ -65,11 +69,11 @@ def locationssrc(self):
         -------
         str
         """
-        return self["locationssrc"]
+        return self['locationssrc']
 
     @locationssrc.setter
     def locationssrc(self, val):
-        self["locationssrc"] = val
+        self['locationssrc'] = val
 
     @property
     def show(self):
@@ -84,11 +88,11 @@ def show(self):
         -------
         bool
         """
-        return self["show"]
+        return self['show']
 
     @show.setter
     def show(self, val):
-        self["show"] = val
+        self['show'] = val
 
     @property
     def _prop_descriptions(self):
@@ -110,16 +114,14 @@ def _prop_descriptions(self):
             Determines whether or not slice planes about the z
             dimension are drawn.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        fill=None,
-        locations=None,
-        locationssrc=None,
-        show=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            fill=None,
+            locations=None,
+            locationssrc=None,
+            show=None,
+            **kwargs
+        ):
         """
         Construct a new Z object
 
@@ -150,9 +152,9 @@ def __init__(
         -------
         Z
         """
-        super().__init__("z")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('z')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -162,19 +164,19 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.volume.slices.Z
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.volume.slices.Z`"""
-            )
+an instance of :class:`plotly.graph_objs.volume.slices.Z`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("fill", arg, fill)
-        self._set_property("locations", arg, locations)
-        self._set_property("locationssrc", arg, locationssrc)
-        self._set_property("show", arg, show)
+        self._set_property('fill', arg, fill)
+        self._set_property('locations', arg, locations)
+        self._set_property('locationssrc', arg, locationssrc)
+        self._set_property('show', arg, show)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/__init__.py b/plotly/graph_objs/waterfall/__init__.py
index 8ae0fae8378..8685aa3e534 100644
--- a/plotly/graph_objs/waterfall/__init__.py
+++ b/plotly/graph_objs/waterfall/__init__.py
@@ -1,26 +1,28 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._connector import Connector
+    from ._decreasing import Decreasing
+    from ._hoverlabel import Hoverlabel
+    from ._increasing import Increasing
+    from ._insidetextfont import Insidetextfont
+    from ._legendgrouptitle import Legendgrouptitle
+    from ._outsidetextfont import Outsidetextfont
+    from ._stream import Stream
+    from ._textfont import Textfont
+    from ._totals import Totals
+    from . import connector
+    from . import decreasing
+    from . import hoverlabel
+    from . import increasing
+    from . import legendgrouptitle
+    from . import totals
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.connector', '.decreasing', '.hoverlabel', '.increasing', '.legendgrouptitle', '.totals'],
+        ['._connector.Connector', '._decreasing.Decreasing', '._hoverlabel.Hoverlabel', '._increasing.Increasing', '._insidetextfont.Insidetextfont', '._legendgrouptitle.Legendgrouptitle', '._outsidetextfont.Outsidetextfont', '._stream.Stream', '._textfont.Textfont', '._totals.Totals']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [
-        ".connector",
-        ".decreasing",
-        ".hoverlabel",
-        ".increasing",
-        ".legendgrouptitle",
-        ".totals",
-    ],
-    [
-        "._connector.Connector",
-        "._decreasing.Decreasing",
-        "._hoverlabel.Hoverlabel",
-        "._increasing.Increasing",
-        "._insidetextfont.Insidetextfont",
-        "._legendgrouptitle.Legendgrouptitle",
-        "._outsidetextfont.Outsidetextfont",
-        "._stream.Stream",
-        "._textfont.Textfont",
-        "._totals.Totals",
-    ],
-)
diff --git a/plotly/graph_objs/waterfall/_connector.py b/plotly/graph_objs/waterfall/_connector.py
index 3532fa9ade1..bfa23c45d16 100644
--- a/plotly/graph_objs/waterfall/_connector.py
+++ b/plotly/graph_objs/waterfall/_connector.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Connector(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall"
-    _path_str = "waterfall.connector"
+    _parent_path_str = 'waterfall'
+    _path_str = 'waterfall.connector'
     _valid_props = {"line", "mode", "visible"}
 
     @property
@@ -24,11 +28,11 @@ def line(self):
         -------
         plotly.graph_objs.waterfall.connector.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def mode(self):
@@ -43,11 +47,11 @@ def mode(self):
         -------
         Any
         """
-        return self["mode"]
+        return self['mode']
 
     @mode.setter
     def mode(self, val):
-        self["mode"] = val
+        self['mode'] = val
 
     @property
     def visible(self):
@@ -61,11 +65,11 @@ def visible(self):
         -------
         bool
         """
-        return self["visible"]
+        return self['visible']
 
     @visible.setter
     def visible(self, val):
-        self["visible"] = val
+        self['visible'] = val
 
     @property
     def _prop_descriptions(self):
@@ -78,8 +82,13 @@ def _prop_descriptions(self):
         visible
             Determines if connector lines are drawn.
         """
-
-    def __init__(self, arg=None, line=None, mode=None, visible=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            line=None,
+            mode=None,
+            visible=None,
+            **kwargs
+        ):
         """
         Construct a new Connector object
 
@@ -101,9 +110,9 @@ def __init__(self, arg=None, line=None, mode=None, visible=None, **kwargs):
         -------
         Connector
         """
-        super().__init__("connector")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('connector')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -113,18 +122,18 @@ def __init__(self, arg=None, line=None, mode=None, visible=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.Connector
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.Connector`"""
-            )
+an instance of :class:`plotly.graph_objs.waterfall.Connector`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("line", arg, line)
-        self._set_property("mode", arg, mode)
-        self._set_property("visible", arg, visible)
+        self._set_property('line', arg, line)
+        self._set_property('mode', arg, mode)
+        self._set_property('visible', arg, visible)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/_decreasing.py b/plotly/graph_objs/waterfall/_decreasing.py
index 1433be21870..92e895a697c 100644
--- a/plotly/graph_objs/waterfall/_decreasing.py
+++ b/plotly/graph_objs/waterfall/_decreasing.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Decreasing(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall"
-    _path_str = "waterfall.decreasing"
+    _parent_path_str = 'waterfall'
+    _path_str = 'waterfall.decreasing'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.waterfall.decreasing.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.waterfall.decreasing.Marke
             r` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Decreasing object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Decreasing
         """
-        super().__init__("decreasing")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('decreasing')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.Decreasing
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.Decreasing`"""
-            )
+an instance of :class:`plotly.graph_objs.waterfall.Decreasing`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/_hoverlabel.py b/plotly/graph_objs/waterfall/_hoverlabel.py
index 02df5c7623e..e21c1a0b88c 100644
--- a/plotly/graph_objs/waterfall/_hoverlabel.py
+++ b/plotly/graph_objs/waterfall/_hoverlabel.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Hoverlabel(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall"
-    _path_str = "waterfall.hoverlabel"
-    _valid_props = {
-        "align",
-        "alignsrc",
-        "bgcolor",
-        "bgcolorsrc",
-        "bordercolor",
-        "bordercolorsrc",
-        "font",
-        "namelength",
-        "namelengthsrc",
-    }
+    _parent_path_str = 'waterfall'
+    _path_str = 'waterfall.hoverlabel'
+    _valid_props = {"align", "alignsrc", "bgcolor", "bgcolorsrc", "bordercolor", "bordercolorsrc", "font", "namelength", "namelengthsrc"}
 
     @property
     def align(self):
@@ -37,11 +31,11 @@ def align(self):
         -------
         Any|numpy.ndarray
         """
-        return self["align"]
+        return self['align']
 
     @align.setter
     def align(self, val):
-        self["align"] = val
+        self['align'] = val
 
     @property
     def alignsrc(self):
@@ -55,11 +49,11 @@ def alignsrc(self):
         -------
         str
         """
-        return self["alignsrc"]
+        return self['alignsrc']
 
     @alignsrc.setter
     def alignsrc(self, val):
-        self["alignsrc"] = val
+        self['alignsrc'] = val
 
     @property
     def bgcolor(self):
@@ -78,11 +72,11 @@ def bgcolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bgcolor"]
+        return self['bgcolor']
 
     @bgcolor.setter
     def bgcolor(self, val):
-        self["bgcolor"] = val
+        self['bgcolor'] = val
 
     @property
     def bgcolorsrc(self):
@@ -96,11 +90,11 @@ def bgcolorsrc(self):
         -------
         str
         """
-        return self["bgcolorsrc"]
+        return self['bgcolorsrc']
 
     @bgcolorsrc.setter
     def bgcolorsrc(self, val):
-        self["bgcolorsrc"] = val
+        self['bgcolorsrc'] = val
 
     @property
     def bordercolor(self):
@@ -119,11 +113,11 @@ def bordercolor(self):
         -------
         str|numpy.ndarray
         """
-        return self["bordercolor"]
+        return self['bordercolor']
 
     @bordercolor.setter
     def bordercolor(self, val):
-        self["bordercolor"] = val
+        self['bordercolor'] = val
 
     @property
     def bordercolorsrc(self):
@@ -138,11 +132,11 @@ def bordercolorsrc(self):
         -------
         str
         """
-        return self["bordercolorsrc"]
+        return self['bordercolorsrc']
 
     @bordercolorsrc.setter
     def bordercolorsrc(self, val):
-        self["bordercolorsrc"] = val
+        self['bordercolorsrc'] = val
 
     @property
     def font(self):
@@ -159,11 +153,11 @@ def font(self):
         -------
         plotly.graph_objs.waterfall.hoverlabel.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def namelength(self):
@@ -184,11 +178,11 @@ def namelength(self):
         -------
         int|numpy.ndarray
         """
-        return self["namelength"]
+        return self['namelength']
 
     @namelength.setter
     def namelength(self, val):
-        self["namelength"] = val
+        self['namelength'] = val
 
     @property
     def namelengthsrc(self):
@@ -203,11 +197,11 @@ def namelengthsrc(self):
         -------
         str
         """
-        return self["namelengthsrc"]
+        return self['namelengthsrc']
 
     @namelengthsrc.setter
     def namelengthsrc(self, val):
-        self["namelengthsrc"] = val
+        self['namelengthsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -245,21 +239,19 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `namelength`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        align=None,
-        alignsrc=None,
-        bgcolor=None,
-        bgcolorsrc=None,
-        bordercolor=None,
-        bordercolorsrc=None,
-        font=None,
-        namelength=None,
-        namelengthsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            align=None,
+            alignsrc=None,
+            bgcolor=None,
+            bgcolorsrc=None,
+            bordercolor=None,
+            bordercolorsrc=None,
+            font=None,
+            namelength=None,
+            namelengthsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Hoverlabel object
 
@@ -306,9 +298,9 @@ def __init__(
         -------
         Hoverlabel
         """
-        super().__init__("hoverlabel")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('hoverlabel')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -318,24 +310,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.Hoverlabel
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.Hoverlabel`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("align", arg, align)
-        self._set_property("alignsrc", arg, alignsrc)
-        self._set_property("bgcolor", arg, bgcolor)
-        self._set_property("bgcolorsrc", arg, bgcolorsrc)
-        self._set_property("bordercolor", arg, bordercolor)
-        self._set_property("bordercolorsrc", arg, bordercolorsrc)
-        self._set_property("font", arg, font)
-        self._set_property("namelength", arg, namelength)
-        self._set_property("namelengthsrc", arg, namelengthsrc)
+an instance of :class:`plotly.graph_objs.waterfall.Hoverlabel`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('align', arg, align)
+        self._set_property('alignsrc', arg, alignsrc)
+        self._set_property('bgcolor', arg, bgcolor)
+        self._set_property('bgcolorsrc', arg, bgcolorsrc)
+        self._set_property('bordercolor', arg, bordercolor)
+        self._set_property('bordercolorsrc', arg, bordercolorsrc)
+        self._set_property('font', arg, font)
+        self._set_property('namelength', arg, namelength)
+        self._set_property('namelengthsrc', arg, namelengthsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/_increasing.py b/plotly/graph_objs/waterfall/_increasing.py
index d36313c5fd3..8835ae3ad46 100644
--- a/plotly/graph_objs/waterfall/_increasing.py
+++ b/plotly/graph_objs/waterfall/_increasing.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Increasing(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall"
-    _path_str = "waterfall.increasing"
+    _parent_path_str = 'waterfall'
+    _path_str = 'waterfall.increasing'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.waterfall.increasing.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.waterfall.increasing.Marke
             r` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Increasing object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Increasing
         """
-        super().__init__("increasing")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('increasing')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.Increasing
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.Increasing`"""
-            )
+an instance of :class:`plotly.graph_objs.waterfall.Increasing`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/_insidetextfont.py b/plotly/graph_objs/waterfall/_insidetextfont.py
index c918e211648..d858d120e6f 100644
--- a/plotly/graph_objs/waterfall/_insidetextfont.py
+++ b/plotly/graph_objs/waterfall/_insidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Insidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall"
-    _path_str = "waterfall.insidetextfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'waterfall'
+    _path_str = 'waterfall.insidetextfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Insidetextfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Insidetextfont
         """
-        super().__init__("insidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('insidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.Insidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.Insidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.waterfall.Insidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/_legendgrouptitle.py b/plotly/graph_objs/waterfall/_legendgrouptitle.py
index d57811c7aa7..f227258836f 100644
--- a/plotly/graph_objs/waterfall/_legendgrouptitle.py
+++ b/plotly/graph_objs/waterfall/_legendgrouptitle.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Legendgrouptitle(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall"
-    _path_str = "waterfall.legendgrouptitle"
+    _parent_path_str = 'waterfall'
+    _path_str = 'waterfall.legendgrouptitle'
     _valid_props = {"font", "text"}
 
     @property
@@ -26,11 +30,11 @@ def font(self):
         -------
         plotly.graph_objs.waterfall.legendgrouptitle.Font
         """
-        return self["font"]
+        return self['font']
 
     @font.setter
     def font(self, val):
-        self["font"] = val
+        self['font'] = val
 
     @property
     def text(self):
@@ -45,11 +49,11 @@ def text(self):
         -------
         str
         """
-        return self["text"]
+        return self['text']
 
     @text.setter
     def text(self, val):
-        self["text"] = val
+        self['text'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         text
             Sets the title of the legend group.
         """
-
-    def __init__(self, arg=None, font=None, text=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            font=None,
+            text=None,
+            **kwargs
+        ):
         """
         Construct a new Legendgrouptitle object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         -------
         Legendgrouptitle
         """
-        super().__init__("legendgrouptitle")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('legendgrouptitle')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, font=None, text=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.Legendgrouptitle
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.Legendgrouptitle`"""
-            )
+an instance of :class:`plotly.graph_objs.waterfall.Legendgrouptitle`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("font", arg, font)
-        self._set_property("text", arg, text)
+        self._set_property('font', arg, font)
+        self._set_property('text', arg, text)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/_outsidetextfont.py b/plotly/graph_objs/waterfall/_outsidetextfont.py
index 38fe043f8c9..08adeca52f7 100644
--- a/plotly/graph_objs/waterfall/_outsidetextfont.py
+++ b/plotly/graph_objs/waterfall/_outsidetextfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Outsidetextfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall"
-    _path_str = "waterfall.outsidetextfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'waterfall'
+    _path_str = 'waterfall.outsidetextfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Outsidetextfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Outsidetextfont
         """
-        super().__init__("outsidetextfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('outsidetextfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.Outsidetextfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.Outsidetextfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.waterfall.Outsidetextfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/_stream.py b/plotly/graph_objs/waterfall/_stream.py
index c0c4a9db8df..c4211d6c449 100644
--- a/plotly/graph_objs/waterfall/_stream.py
+++ b/plotly/graph_objs/waterfall/_stream.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Stream(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall"
-    _path_str = "waterfall.stream"
+    _parent_path_str = 'waterfall'
+    _path_str = 'waterfall.stream'
     _valid_props = {"maxpoints", "token"}
 
     @property
@@ -25,11 +29,11 @@ def maxpoints(self):
         -------
         int|float
         """
-        return self["maxpoints"]
+        return self['maxpoints']
 
     @maxpoints.setter
     def maxpoints(self, val):
-        self["maxpoints"] = val
+        self['maxpoints'] = val
 
     @property
     def token(self):
@@ -45,11 +49,11 @@ def token(self):
         -------
         str
         """
-        return self["token"]
+        return self['token']
 
     @token.setter
     def token(self, val):
-        self["token"] = val
+        self['token'] = val
 
     @property
     def _prop_descriptions(self):
@@ -64,8 +68,12 @@ def _prop_descriptions(self):
             a stream. See https://chart-studio.plotly.com/settings
             for more details.
         """
-
-    def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            maxpoints=None,
+            token=None,
+            **kwargs
+        ):
         """
         Construct a new Stream object
 
@@ -89,9 +97,9 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         -------
         Stream
         """
-        super().__init__("stream")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('stream')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -101,17 +109,17 @@ def __init__(self, arg=None, maxpoints=None, token=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.Stream
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.Stream`"""
-            )
+an instance of :class:`plotly.graph_objs.waterfall.Stream`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("maxpoints", arg, maxpoints)
-        self._set_property("token", arg, token)
+        self._set_property('maxpoints', arg, maxpoints)
+        self._set_property('token', arg, token)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/_textfont.py b/plotly/graph_objs/waterfall/_textfont.py
index 8fd220afe58..34dfd9f70f2 100644
--- a/plotly/graph_objs/waterfall/_textfont.py
+++ b/plotly/graph_objs/waterfall/_textfont.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Textfont(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall"
-    _path_str = "waterfall.textfont"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'waterfall'
+    _path_str = 'waterfall.textfont'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Textfont object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Textfont
         """
-        super().__init__("textfont")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('textfont')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.Textfont
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.Textfont`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.waterfall.Textfont`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/_totals.py b/plotly/graph_objs/waterfall/_totals.py
index 79c8cd300cf..0241cde718c 100644
--- a/plotly/graph_objs/waterfall/_totals.py
+++ b/plotly/graph_objs/waterfall/_totals.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Totals(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall"
-    _path_str = "waterfall.totals"
+    _parent_path_str = 'waterfall'
+    _path_str = 'waterfall.totals'
     _valid_props = {"marker"}
 
     @property
@@ -24,11 +28,11 @@ def marker(self):
         -------
         plotly.graph_objs.waterfall.totals.Marker
         """
-        return self["marker"]
+        return self['marker']
 
     @marker.setter
     def marker(self, val):
-        self["marker"] = val
+        self['marker'] = val
 
     @property
     def _prop_descriptions(self):
@@ -37,8 +41,11 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.waterfall.totals.Marker`
             instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, marker=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            marker=None,
+            **kwargs
+        ):
         """
         Construct a new Totals object
 
@@ -56,9 +63,9 @@ def __init__(self, arg=None, marker=None, **kwargs):
         -------
         Totals
         """
-        super().__init__("totals")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('totals')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -68,16 +75,16 @@ def __init__(self, arg=None, marker=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.Totals
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.Totals`"""
-            )
+an instance of :class:`plotly.graph_objs.waterfall.Totals`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("marker", arg, marker)
+        self._set_property('marker', arg, marker)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/connector/__init__.py b/plotly/graph_objs/waterfall/connector/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/waterfall/connector/__init__.py
+++ b/plotly/graph_objs/waterfall/connector/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/waterfall/connector/_line.py b/plotly/graph_objs/waterfall/connector/_line.py
index 46a8c33f586..caa61092b9f 100644
--- a/plotly/graph_objs/waterfall/connector/_line.py
+++ b/plotly/graph_objs/waterfall/connector/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall.connector"
-    _path_str = "waterfall.connector.line"
+    _parent_path_str = 'waterfall.connector'
+    _path_str = 'waterfall.connector.line'
     _valid_props = {"color", "dash", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def dash(self):
@@ -51,11 +55,11 @@ def dash(self):
         -------
         str
         """
-        return self["dash"]
+        return self['dash']
 
     @dash.setter
     def dash(self, val):
-        self["dash"] = val
+        self['dash'] = val
 
     @property
     def width(self):
@@ -69,11 +73,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -88,8 +92,13 @@ def _prop_descriptions(self):
         width
             Sets the line width (in px).
         """
-
-    def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            dash=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -113,9 +122,9 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -125,18 +134,18 @@ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.connector.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.connector.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.waterfall.connector.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("dash", arg, dash)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('dash', arg, dash)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/decreasing/__init__.py b/plotly/graph_objs/waterfall/decreasing/__init__.py
index 83d0eda7aae..2cd74bc4102 100644
--- a/plotly/graph_objs/waterfall/decreasing/__init__.py
+++ b/plotly/graph_objs/waterfall/decreasing/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from . import marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.marker'],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".marker"], ["._marker.Marker"]
-)
diff --git a/plotly/graph_objs/waterfall/decreasing/_marker.py b/plotly/graph_objs/waterfall/decreasing/_marker.py
index a4320abf13d..6157f8025e2 100644
--- a/plotly/graph_objs/waterfall/decreasing/_marker.py
+++ b/plotly/graph_objs/waterfall/decreasing/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall.decreasing"
-    _path_str = "waterfall.decreasing.marker"
+    _parent_path_str = 'waterfall.decreasing'
+    _path_str = 'waterfall.decreasing.marker'
     _valid_props = {"color", "line"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def line(self):
@@ -46,11 +50,11 @@ def line(self):
         -------
         plotly.graph_objs.waterfall.decreasing.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def _prop_descriptions(self):
@@ -61,8 +65,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.waterfall.decreasing.marke
             r.Line` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, color=None, line=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            line=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -82,9 +90,9 @@ def __init__(self, arg=None, color=None, line=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -94,17 +102,17 @@ def __init__(self, arg=None, color=None, line=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.decreasing.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.decreasing.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.waterfall.decreasing.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("line", arg, line)
+        self._set_property('color', arg, color)
+        self._set_property('line', arg, line)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/decreasing/marker/__init__.py b/plotly/graph_objs/waterfall/decreasing/marker/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/waterfall/decreasing/marker/__init__.py
+++ b/plotly/graph_objs/waterfall/decreasing/marker/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/waterfall/decreasing/marker/_line.py b/plotly/graph_objs/waterfall/decreasing/marker/_line.py
index 611fdbf0a94..112f3574429 100644
--- a/plotly/graph_objs/waterfall/decreasing/marker/_line.py
+++ b/plotly/graph_objs/waterfall/decreasing/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall.decreasing.marker"
-    _path_str = "waterfall.decreasing.marker.line"
+    _parent_path_str = 'waterfall.decreasing.marker'
+    _path_str = 'waterfall.decreasing.marker.line'
     _valid_props = {"color", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def width(self):
@@ -45,11 +49,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         width
             Sets the line width of all decreasing values.
         """
-
-    def __init__(self, arg=None, color=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.decreasing.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.decreasing.marker.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.waterfall.decreasing.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/hoverlabel/__init__.py b/plotly/graph_objs/waterfall/hoverlabel/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/waterfall/hoverlabel/__init__.py
+++ b/plotly/graph_objs/waterfall/hoverlabel/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/waterfall/hoverlabel/_font.py b/plotly/graph_objs/waterfall/hoverlabel/_font.py
index d1522a0fb2f..c1bf6ebf6de 100644
--- a/plotly/graph_objs/waterfall/hoverlabel/_font.py
+++ b/plotly/graph_objs/waterfall/hoverlabel/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,28 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall.hoverlabel"
-    _path_str = "waterfall.hoverlabel.font"
-    _valid_props = {
-        "color",
-        "colorsrc",
-        "family",
-        "familysrc",
-        "lineposition",
-        "linepositionsrc",
-        "shadow",
-        "shadowsrc",
-        "size",
-        "sizesrc",
-        "style",
-        "stylesrc",
-        "textcase",
-        "textcasesrc",
-        "variant",
-        "variantsrc",
-        "weight",
-        "weightsrc",
-    }
+    _parent_path_str = 'waterfall.hoverlabel'
+    _path_str = 'waterfall.hoverlabel.font'
+    _valid_props = {"color", "colorsrc", "family", "familysrc", "lineposition", "linepositionsrc", "shadow", "shadowsrc", "size", "sizesrc", "style", "stylesrc", "textcase", "textcasesrc", "variant", "variantsrc", "weight", "weightsrc"}
 
     @property
     def color(self):
@@ -45,11 +30,11 @@ def color(self):
         -------
         str|numpy.ndarray
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def colorsrc(self):
@@ -63,11 +48,11 @@ def colorsrc(self):
         -------
         str
         """
-        return self["colorsrc"]
+        return self['colorsrc']
 
     @colorsrc.setter
     def colorsrc(self, val):
-        self["colorsrc"] = val
+        self['colorsrc'] = val
 
     @property
     def family(self):
@@ -86,11 +71,11 @@ def family(self):
         -------
         str|numpy.ndarray
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def familysrc(self):
@@ -104,11 +89,11 @@ def familysrc(self):
         -------
         str
         """
-        return self["familysrc"]
+        return self['familysrc']
 
     @familysrc.setter
     def familysrc(self, val):
-        self["familysrc"] = val
+        self['familysrc'] = val
 
     @property
     def lineposition(self):
@@ -128,11 +113,11 @@ def lineposition(self):
         -------
         Any|numpy.ndarray
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def linepositionsrc(self):
@@ -147,11 +132,11 @@ def linepositionsrc(self):
         -------
         str
         """
-        return self["linepositionsrc"]
+        return self['linepositionsrc']
 
     @linepositionsrc.setter
     def linepositionsrc(self, val):
-        self["linepositionsrc"] = val
+        self['linepositionsrc'] = val
 
     @property
     def shadow(self):
@@ -170,11 +155,11 @@ def shadow(self):
         -------
         str|numpy.ndarray
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def shadowsrc(self):
@@ -188,11 +173,11 @@ def shadowsrc(self):
         -------
         str
         """
-        return self["shadowsrc"]
+        return self['shadowsrc']
 
     @shadowsrc.setter
     def shadowsrc(self, val):
-        self["shadowsrc"] = val
+        self['shadowsrc'] = val
 
     @property
     def size(self):
@@ -205,11 +190,11 @@ def size(self):
         -------
         int|float|numpy.ndarray
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def sizesrc(self):
@@ -223,11 +208,11 @@ def sizesrc(self):
         -------
         str
         """
-        return self["sizesrc"]
+        return self['sizesrc']
 
     @sizesrc.setter
     def sizesrc(self, val):
-        self["sizesrc"] = val
+        self['sizesrc'] = val
 
     @property
     def style(self):
@@ -244,11 +229,11 @@ def style(self):
         -------
         Any|numpy.ndarray
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def stylesrc(self):
@@ -262,11 +247,11 @@ def stylesrc(self):
         -------
         str
         """
-        return self["stylesrc"]
+        return self['stylesrc']
 
     @stylesrc.setter
     def stylesrc(self, val):
-        self["stylesrc"] = val
+        self['stylesrc'] = val
 
     @property
     def textcase(self):
@@ -284,11 +269,11 @@ def textcase(self):
         -------
         Any|numpy.ndarray
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def textcasesrc(self):
@@ -302,11 +287,11 @@ def textcasesrc(self):
         -------
         str
         """
-        return self["textcasesrc"]
+        return self['textcasesrc']
 
     @textcasesrc.setter
     def textcasesrc(self, val):
-        self["textcasesrc"] = val
+        self['textcasesrc'] = val
 
     @property
     def variant(self):
@@ -323,11 +308,11 @@ def variant(self):
         -------
         Any|numpy.ndarray
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def variantsrc(self):
@@ -341,11 +326,11 @@ def variantsrc(self):
         -------
         str
         """
-        return self["variantsrc"]
+        return self['variantsrc']
 
     @variantsrc.setter
     def variantsrc(self, val):
-        self["variantsrc"] = val
+        self['variantsrc'] = val
 
     @property
     def weight(self):
@@ -362,11 +347,11 @@ def weight(self):
         -------
         int|numpy.ndarray
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def weightsrc(self):
@@ -380,11 +365,11 @@ def weightsrc(self):
         -------
         str
         """
-        return self["weightsrc"]
+        return self['weightsrc']
 
     @weightsrc.setter
     def weightsrc(self, val):
-        self["weightsrc"] = val
+        self['weightsrc'] = val
 
     @property
     def _prop_descriptions(self):
@@ -448,30 +433,28 @@ def _prop_descriptions(self):
             Sets the source reference on Chart Studio Cloud for
             `weight`.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        colorsrc=None,
-        family=None,
-        familysrc=None,
-        lineposition=None,
-        linepositionsrc=None,
-        shadow=None,
-        shadowsrc=None,
-        size=None,
-        sizesrc=None,
-        style=None,
-        stylesrc=None,
-        textcase=None,
-        textcasesrc=None,
-        variant=None,
-        variantsrc=None,
-        weight=None,
-        weightsrc=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            colorsrc=None,
+            family=None,
+            familysrc=None,
+            lineposition=None,
+            linepositionsrc=None,
+            shadow=None,
+            shadowsrc=None,
+            size=None,
+            sizesrc=None,
+            style=None,
+            stylesrc=None,
+            textcase=None,
+            textcasesrc=None,
+            variant=None,
+            variantsrc=None,
+            weight=None,
+            weightsrc=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -546,9 +529,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -558,33 +541,33 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.hoverlabel.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.hoverlabel.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("colorsrc", arg, colorsrc)
-        self._set_property("family", arg, family)
-        self._set_property("familysrc", arg, familysrc)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("linepositionsrc", arg, linepositionsrc)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("shadowsrc", arg, shadowsrc)
-        self._set_property("size", arg, size)
-        self._set_property("sizesrc", arg, sizesrc)
-        self._set_property("style", arg, style)
-        self._set_property("stylesrc", arg, stylesrc)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("textcasesrc", arg, textcasesrc)
-        self._set_property("variant", arg, variant)
-        self._set_property("variantsrc", arg, variantsrc)
-        self._set_property("weight", arg, weight)
-        self._set_property("weightsrc", arg, weightsrc)
+an instance of :class:`plotly.graph_objs.waterfall.hoverlabel.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('colorsrc', arg, colorsrc)
+        self._set_property('family', arg, family)
+        self._set_property('familysrc', arg, familysrc)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('linepositionsrc', arg, linepositionsrc)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('shadowsrc', arg, shadowsrc)
+        self._set_property('size', arg, size)
+        self._set_property('sizesrc', arg, sizesrc)
+        self._set_property('style', arg, style)
+        self._set_property('stylesrc', arg, stylesrc)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('textcasesrc', arg, textcasesrc)
+        self._set_property('variant', arg, variant)
+        self._set_property('variantsrc', arg, variantsrc)
+        self._set_property('weight', arg, weight)
+        self._set_property('weightsrc', arg, weightsrc)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/increasing/__init__.py b/plotly/graph_objs/waterfall/increasing/__init__.py
index 83d0eda7aae..2cd74bc4102 100644
--- a/plotly/graph_objs/waterfall/increasing/__init__.py
+++ b/plotly/graph_objs/waterfall/increasing/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from . import marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.marker'],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".marker"], ["._marker.Marker"]
-)
diff --git a/plotly/graph_objs/waterfall/increasing/_marker.py b/plotly/graph_objs/waterfall/increasing/_marker.py
index fa5dea7af79..8ba4737456d 100644
--- a/plotly/graph_objs/waterfall/increasing/_marker.py
+++ b/plotly/graph_objs/waterfall/increasing/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall.increasing"
-    _path_str = "waterfall.increasing.marker"
+    _parent_path_str = 'waterfall.increasing'
+    _path_str = 'waterfall.increasing.marker'
     _valid_props = {"color", "line"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def line(self):
@@ -46,11 +50,11 @@ def line(self):
         -------
         plotly.graph_objs.waterfall.increasing.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def _prop_descriptions(self):
@@ -61,8 +65,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.waterfall.increasing.marke
             r.Line` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, color=None, line=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            line=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -82,9 +90,9 @@ def __init__(self, arg=None, color=None, line=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -94,17 +102,17 @@ def __init__(self, arg=None, color=None, line=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.increasing.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.increasing.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.waterfall.increasing.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("line", arg, line)
+        self._set_property('color', arg, color)
+        self._set_property('line', arg, line)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/increasing/marker/__init__.py b/plotly/graph_objs/waterfall/increasing/marker/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/waterfall/increasing/marker/__init__.py
+++ b/plotly/graph_objs/waterfall/increasing/marker/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/waterfall/increasing/marker/_line.py b/plotly/graph_objs/waterfall/increasing/marker/_line.py
index 33899da3f60..740610d5640 100644
--- a/plotly/graph_objs/waterfall/increasing/marker/_line.py
+++ b/plotly/graph_objs/waterfall/increasing/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall.increasing.marker"
-    _path_str = "waterfall.increasing.marker.line"
+    _parent_path_str = 'waterfall.increasing.marker'
+    _path_str = 'waterfall.increasing.marker.line'
     _valid_props = {"color", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def width(self):
@@ -45,11 +49,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -59,8 +63,12 @@ def _prop_descriptions(self):
         width
             Sets the line width of all increasing values.
         """
-
-    def __init__(self, arg=None, color=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -79,9 +87,9 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -91,17 +99,17 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.increasing.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.increasing.marker.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.waterfall.increasing.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/legendgrouptitle/__init__.py b/plotly/graph_objs/waterfall/legendgrouptitle/__init__.py
index f78e7c474e2..6799e4eba6e 100644
--- a/plotly/graph_objs/waterfall/legendgrouptitle/__init__.py
+++ b/plotly/graph_objs/waterfall/legendgrouptitle/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import Font
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._font.Font']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/plotly/graph_objs/waterfall/legendgrouptitle/_font.py b/plotly/graph_objs/waterfall/legendgrouptitle/_font.py
index 3b1914da886..cddbeb38d6e 100644
--- a/plotly/graph_objs/waterfall/legendgrouptitle/_font.py
+++ b/plotly/graph_objs/waterfall/legendgrouptitle/_font.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,19 +11,9 @@
 
 class Font(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall.legendgrouptitle"
-    _path_str = "waterfall.legendgrouptitle.font"
-    _valid_props = {
-        "color",
-        "family",
-        "lineposition",
-        "shadow",
-        "size",
-        "style",
-        "textcase",
-        "variant",
-        "weight",
-    }
+    _parent_path_str = 'waterfall.legendgrouptitle'
+    _path_str = 'waterfall.legendgrouptitle.font'
+    _valid_props = {"color", "family", "lineposition", "shadow", "size", "style", "textcase", "variant", "weight"}
 
     @property
     def color(self):
@@ -35,11 +29,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def family(self):
@@ -57,11 +51,11 @@ def family(self):
         -------
         str
         """
-        return self["family"]
+        return self['family']
 
     @family.setter
     def family(self, val):
-        self["family"] = val
+        self['family'] = val
 
     @property
     def lineposition(self):
@@ -80,11 +74,11 @@ def lineposition(self):
         -------
         Any
         """
-        return self["lineposition"]
+        return self['lineposition']
 
     @lineposition.setter
     def lineposition(self, val):
-        self["lineposition"] = val
+        self['lineposition'] = val
 
     @property
     def shadow(self):
@@ -102,11 +96,11 @@ def shadow(self):
         -------
         str
         """
-        return self["shadow"]
+        return self['shadow']
 
     @shadow.setter
     def shadow(self, val):
-        self["shadow"] = val
+        self['shadow'] = val
 
     @property
     def size(self):
@@ -118,11 +112,11 @@ def size(self):
         -------
         int|float
         """
-        return self["size"]
+        return self['size']
 
     @size.setter
     def size(self, val):
-        self["size"] = val
+        self['size'] = val
 
     @property
     def style(self):
@@ -138,11 +132,11 @@ def style(self):
         -------
         Any
         """
-        return self["style"]
+        return self['style']
 
     @style.setter
     def style(self, val):
-        self["style"] = val
+        self['style'] = val
 
     @property
     def textcase(self):
@@ -159,11 +153,11 @@ def textcase(self):
         -------
         Any
         """
-        return self["textcase"]
+        return self['textcase']
 
     @textcase.setter
     def textcase(self, val):
-        self["textcase"] = val
+        self['textcase'] = val
 
     @property
     def variant(self):
@@ -179,11 +173,11 @@ def variant(self):
         -------
         Any
         """
-        return self["variant"]
+        return self['variant']
 
     @variant.setter
     def variant(self, val):
-        self["variant"] = val
+        self['variant'] = val
 
     @property
     def weight(self):
@@ -199,11 +193,11 @@ def weight(self):
         -------
         int
         """
-        return self["weight"]
+        return self['weight']
 
     @weight.setter
     def weight(self, val):
-        self["weight"] = val
+        self['weight'] = val
 
     @property
     def _prop_descriptions(self):
@@ -240,21 +234,19 @@ def _prop_descriptions(self):
         weight
             Sets the weight (or boldness) of the font.
         """
-
-    def __init__(
-        self,
-        arg=None,
-        color=None,
-        family=None,
-        lineposition=None,
-        shadow=None,
-        size=None,
-        style=None,
-        textcase=None,
-        variant=None,
-        weight=None,
-        **kwargs,
-    ):
+    def __init__(self,
+            arg=None,
+            color=None,
+            family=None,
+            lineposition=None,
+            shadow=None,
+            size=None,
+            style=None,
+            textcase=None,
+            variant=None,
+            weight=None,
+            **kwargs
+        ):
         """
         Construct a new Font object
 
@@ -302,9 +294,9 @@ def __init__(
         -------
         Font
         """
-        super().__init__("font")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('font')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -314,24 +306,24 @@ def __init__(
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.legendgrouptitle.Font
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.legendgrouptitle.Font`"""
-            )
-
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
-
-        self._set_property("color", arg, color)
-        self._set_property("family", arg, family)
-        self._set_property("lineposition", arg, lineposition)
-        self._set_property("shadow", arg, shadow)
-        self._set_property("size", arg, size)
-        self._set_property("style", arg, style)
-        self._set_property("textcase", arg, textcase)
-        self._set_property("variant", arg, variant)
-        self._set_property("weight", arg, weight)
+an instance of :class:`plotly.graph_objs.waterfall.legendgrouptitle.Font`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
+
+
+        self._set_property('color', arg, color)
+        self._set_property('family', arg, family)
+        self._set_property('lineposition', arg, lineposition)
+        self._set_property('shadow', arg, shadow)
+        self._set_property('size', arg, size)
+        self._set_property('style', arg, style)
+        self._set_property('textcase', arg, textcase)
+        self._set_property('variant', arg, variant)
+        self._set_property('weight', arg, weight)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/totals/__init__.py b/plotly/graph_objs/waterfall/totals/__init__.py
index 83d0eda7aae..2cd74bc4102 100644
--- a/plotly/graph_objs/waterfall/totals/__init__.py
+++ b/plotly/graph_objs/waterfall/totals/__init__.py
@@ -1,6 +1,14 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import Marker
+    from . import marker
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        ['.marker'],
+        ['._marker.Marker']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [".marker"], ["._marker.Marker"]
-)
diff --git a/plotly/graph_objs/waterfall/totals/_marker.py b/plotly/graph_objs/waterfall/totals/_marker.py
index 4ff03460913..e571d8c5427 100644
--- a/plotly/graph_objs/waterfall/totals/_marker.py
+++ b/plotly/graph_objs/waterfall/totals/_marker.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Marker(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall.totals"
-    _path_str = "waterfall.totals.marker"
+    _parent_path_str = 'waterfall.totals'
+    _path_str = 'waterfall.totals.marker'
     _valid_props = {"color", "line"}
 
     @property
@@ -28,11 +32,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def line(self):
@@ -47,11 +51,11 @@ def line(self):
         -------
         plotly.graph_objs.waterfall.totals.marker.Line
         """
-        return self["line"]
+        return self['line']
 
     @line.setter
     def line(self, val):
-        self["line"] = val
+        self['line'] = val
 
     @property
     def _prop_descriptions(self):
@@ -63,8 +67,12 @@ def _prop_descriptions(self):
             :class:`plotly.graph_objects.waterfall.totals.marker.Li
             ne` instance or dict with compatible properties
         """
-
-    def __init__(self, arg=None, color=None, line=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            line=None,
+            **kwargs
+        ):
         """
         Construct a new Marker object
 
@@ -85,9 +93,9 @@ def __init__(self, arg=None, color=None, line=None, **kwargs):
         -------
         Marker
         """
-        super().__init__("marker")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('marker')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -97,17 +105,17 @@ def __init__(self, arg=None, color=None, line=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.totals.Marker
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.totals.Marker`"""
-            )
+an instance of :class:`plotly.graph_objs.waterfall.totals.Marker`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("line", arg, line)
+        self._set_property('color', arg, color)
+        self._set_property('line', arg, line)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/graph_objs/waterfall/totals/marker/__init__.py b/plotly/graph_objs/waterfall/totals/marker/__init__.py
index 579ff002cec..a745ef6458a 100644
--- a/plotly/graph_objs/waterfall/totals/marker/__init__.py
+++ b/plotly/graph_objs/waterfall/totals/marker/__init__.py
@@ -1,4 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import Line
+else:
+    from _plotly_utils.importers import relative_import
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ['._line.Line']
+    )
+
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/plotly/graph_objs/waterfall/totals/marker/_line.py b/plotly/graph_objs/waterfall/totals/marker/_line.py
index d1ebe28d920..4369a8c9b93 100644
--- a/plotly/graph_objs/waterfall/totals/marker/_line.py
+++ b/plotly/graph_objs/waterfall/totals/marker/_line.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -7,8 +11,8 @@
 
 class Line(_BaseTraceHierarchyType):
 
-    _parent_path_str = "waterfall.totals.marker"
-    _path_str = "waterfall.totals.marker.line"
+    _parent_path_str = 'waterfall.totals.marker'
+    _path_str = 'waterfall.totals.marker.line'
     _valid_props = {"color", "width"}
 
     @property
@@ -27,11 +31,11 @@ def color(self):
         -------
         str
         """
-        return self["color"]
+        return self['color']
 
     @color.setter
     def color(self, val):
-        self["color"] = val
+        self['color'] = val
 
     @property
     def width(self):
@@ -45,11 +49,11 @@ def width(self):
         -------
         int|float
         """
-        return self["width"]
+        return self['width']
 
     @width.setter
     def width(self, val):
-        self["width"] = val
+        self['width'] = val
 
     @property
     def _prop_descriptions(self):
@@ -61,8 +65,12 @@ def _prop_descriptions(self):
             Sets the line width of all intermediate sums and total
             values.
         """
-
-    def __init__(self, arg=None, color=None, width=None, **kwargs):
+    def __init__(self,
+            arg=None,
+            color=None,
+            width=None,
+            **kwargs
+        ):
         """
         Construct a new Line object
 
@@ -83,9 +91,9 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         -------
         Line
         """
-        super().__init__("line")
-        if "_parent" in kwargs:
-            self._parent = kwargs["_parent"]
+        super().__init__('line')
+        if '_parent' in kwargs:
+            self._parent = kwargs['_parent']
             return
 
         if arg is None:
@@ -95,17 +103,17 @@ def __init__(self, arg=None, color=None, width=None, **kwargs):
         elif isinstance(arg, dict):
             arg = _copy.copy(arg)
         else:
-            raise ValueError(
-                """\
+            raise ValueError("""\
 The first argument to the plotly.graph_objs.waterfall.totals.marker.Line
 constructor must be a dict or
-an instance of :class:`plotly.graph_objs.waterfall.totals.marker.Line`"""
-            )
+an instance of :class:`plotly.graph_objs.waterfall.totals.marker.Line`""")
+
+        self._skip_invalid = kwargs.pop('skip_invalid', False)
+        self._validate = kwargs.pop('_validate', True)
+        
 
-        self._skip_invalid = kwargs.pop("skip_invalid", False)
-        self._validate = kwargs.pop("_validate", True)
 
-        self._set_property("color", arg, color)
-        self._set_property("width", arg, width)
+        self._set_property('color', arg, color)
+        self._set_property('width', arg, width)
         self._process_kwargs(**dict(arg, **kwargs))
         self._skip_invalid = False
diff --git a/plotly/validators/__init__.py b/plotly/validators/__init__.py
index 375c16bf3c3..b1e82581049 100644
--- a/plotly/validators/__init__.py
+++ b/plotly/validators/__init__.py
@@ -1,61 +1,117 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._waterfall.WaterfallValidator",
-        "._volume.VolumeValidator",
-        "._violin.ViolinValidator",
-        "._treemap.TreemapValidator",
-        "._table.TableValidator",
-        "._surface.SurfaceValidator",
-        "._sunburst.SunburstValidator",
-        "._streamtube.StreamtubeValidator",
-        "._splom.SplomValidator",
-        "._scatterternary.ScatterternaryValidator",
-        "._scattersmith.ScattersmithValidator",
-        "._scatterpolargl.ScatterpolarglValidator",
-        "._scatterpolar.ScatterpolarValidator",
-        "._scattermapbox.ScattermapboxValidator",
-        "._scattermap.ScattermapValidator",
-        "._scattergl.ScatterglValidator",
-        "._scattergeo.ScattergeoValidator",
-        "._scattercarpet.ScattercarpetValidator",
-        "._scatter3d.Scatter3DValidator",
-        "._scatter.ScatterValidator",
-        "._sankey.SankeyValidator",
-        "._pie.PieValidator",
-        "._parcoords.ParcoordsValidator",
-        "._parcats.ParcatsValidator",
-        "._ohlc.OhlcValidator",
-        "._mesh3d.Mesh3DValidator",
-        "._isosurface.IsosurfaceValidator",
-        "._indicator.IndicatorValidator",
-        "._image.ImageValidator",
-        "._icicle.IcicleValidator",
-        "._histogram2dcontour.Histogram2DcontourValidator",
-        "._histogram2d.Histogram2DValidator",
-        "._histogram.HistogramValidator",
-        "._heatmap.HeatmapValidator",
-        "._funnelarea.FunnelareaValidator",
-        "._funnel.FunnelValidator",
-        "._densitymapbox.DensitymapboxValidator",
-        "._densitymap.DensitymapValidator",
-        "._contourcarpet.ContourcarpetValidator",
-        "._contour.ContourValidator",
-        "._cone.ConeValidator",
-        "._choroplethmapbox.ChoroplethmapboxValidator",
-        "._choroplethmap.ChoroplethmapValidator",
-        "._choropleth.ChoroplethValidator",
-        "._carpet.CarpetValidator",
-        "._candlestick.CandlestickValidator",
-        "._box.BoxValidator",
-        "._barpolar.BarpolarValidator",
-        "._bar.BarValidator",
-        "._layout.LayoutValidator",
-        "._frames.FramesValidator",
-        "._data.DataValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._waterfall import WaterfallValidator
+    from ._volume import VolumeValidator
+    from ._violin import ViolinValidator
+    from ._treemap import TreemapValidator
+    from ._table import TableValidator
+    from ._surface import SurfaceValidator
+    from ._sunburst import SunburstValidator
+    from ._streamtube import StreamtubeValidator
+    from ._splom import SplomValidator
+    from ._scatterternary import ScatterternaryValidator
+    from ._scattersmith import ScattersmithValidator
+    from ._scatterpolargl import ScatterpolarglValidator
+    from ._scatterpolar import ScatterpolarValidator
+    from ._scattermapbox import ScattermapboxValidator
+    from ._scattermap import ScattermapValidator
+    from ._scattergl import ScatterglValidator
+    from ._scattergeo import ScattergeoValidator
+    from ._scattercarpet import ScattercarpetValidator
+    from ._scatter3d import Scatter3DValidator
+    from ._scatter import ScatterValidator
+    from ._sankey import SankeyValidator
+    from ._pie import PieValidator
+    from ._parcoords import ParcoordsValidator
+    from ._parcats import ParcatsValidator
+    from ._ohlc import OhlcValidator
+    from ._mesh3d import Mesh3DValidator
+    from ._isosurface import IsosurfaceValidator
+    from ._indicator import IndicatorValidator
+    from ._image import ImageValidator
+    from ._icicle import IcicleValidator
+    from ._histogram2dcontour import Histogram2DcontourValidator
+    from ._histogram2d import Histogram2DValidator
+    from ._histogram import HistogramValidator
+    from ._heatmap import HeatmapValidator
+    from ._funnelarea import FunnelareaValidator
+    from ._funnel import FunnelValidator
+    from ._densitymapbox import DensitymapboxValidator
+    from ._densitymap import DensitymapValidator
+    from ._contourcarpet import ContourcarpetValidator
+    from ._contour import ContourValidator
+    from ._cone import ConeValidator
+    from ._choroplethmapbox import ChoroplethmapboxValidator
+    from ._choroplethmap import ChoroplethmapValidator
+    from ._choropleth import ChoroplethValidator
+    from ._carpet import CarpetValidator
+    from ._candlestick import CandlestickValidator
+    from ._box import BoxValidator
+    from ._barpolar import BarpolarValidator
+    from ._bar import BarValidator
+    from ._layout import LayoutValidator
+    from ._frames import FramesValidator
+    from ._data import DataValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._waterfall.WaterfallValidator",
+            "._volume.VolumeValidator",
+            "._violin.ViolinValidator",
+            "._treemap.TreemapValidator",
+            "._table.TableValidator",
+            "._surface.SurfaceValidator",
+            "._sunburst.SunburstValidator",
+            "._streamtube.StreamtubeValidator",
+            "._splom.SplomValidator",
+            "._scatterternary.ScatterternaryValidator",
+            "._scattersmith.ScattersmithValidator",
+            "._scatterpolargl.ScatterpolarglValidator",
+            "._scatterpolar.ScatterpolarValidator",
+            "._scattermapbox.ScattermapboxValidator",
+            "._scattermap.ScattermapValidator",
+            "._scattergl.ScatterglValidator",
+            "._scattergeo.ScattergeoValidator",
+            "._scattercarpet.ScattercarpetValidator",
+            "._scatter3d.Scatter3DValidator",
+            "._scatter.ScatterValidator",
+            "._sankey.SankeyValidator",
+            "._pie.PieValidator",
+            "._parcoords.ParcoordsValidator",
+            "._parcats.ParcatsValidator",
+            "._ohlc.OhlcValidator",
+            "._mesh3d.Mesh3DValidator",
+            "._isosurface.IsosurfaceValidator",
+            "._indicator.IndicatorValidator",
+            "._image.ImageValidator",
+            "._icicle.IcicleValidator",
+            "._histogram2dcontour.Histogram2DcontourValidator",
+            "._histogram2d.Histogram2DValidator",
+            "._histogram.HistogramValidator",
+            "._heatmap.HeatmapValidator",
+            "._funnelarea.FunnelareaValidator",
+            "._funnel.FunnelValidator",
+            "._densitymapbox.DensitymapboxValidator",
+            "._densitymap.DensitymapValidator",
+            "._contourcarpet.ContourcarpetValidator",
+            "._contour.ContourValidator",
+            "._cone.ConeValidator",
+            "._choroplethmapbox.ChoroplethmapboxValidator",
+            "._choroplethmap.ChoroplethmapValidator",
+            "._choropleth.ChoroplethValidator",
+            "._carpet.CarpetValidator",
+            "._candlestick.CandlestickValidator",
+            "._box.BoxValidator",
+            "._barpolar.BarpolarValidator",
+            "._bar.BarValidator",
+            "._layout.LayoutValidator",
+            "._frames.FramesValidator",
+            "._data.DataValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/__init__.py b/plotly/validators/bar/__init__.py
index ca538949b3d..152121c1866 100644
--- a/plotly/validators/bar/__init__.py
+++ b/plotly/validators/bar/__init__.py
@@ -1,83 +1,161 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zorder.ZorderValidator",
-        "._ysrc.YsrcValidator",
-        "._yperiodalignment.YperiodalignmentValidator",
-        "._yperiod0.Yperiod0Validator",
-        "._yperiod.YperiodValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._ycalendar.YcalendarValidator",
-        "._yaxis.YaxisValidator",
-        "._y0.Y0Validator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xperiodalignment.XperiodalignmentValidator",
-        "._xperiod0.Xperiod0Validator",
-        "._xperiod.XperiodValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xcalendar.XcalendarValidator",
-        "._xaxis.XaxisValidator",
-        "._x0.X0Validator",
-        "._x.XValidator",
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textpositionsrc.TextpositionsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textfont.TextfontValidator",
-        "._textangle.TextangleValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._outsidetextfont.OutsidetextfontValidator",
-        "._orientation.OrientationValidator",
-        "._opacity.OpacityValidator",
-        "._offsetsrc.OffsetsrcValidator",
-        "._offsetgroup.OffsetgroupValidator",
-        "._offset.OffsetValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._insidetextfont.InsidetextfontValidator",
-        "._insidetextanchor.InsidetextanchorValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._error_y.Error_YValidator",
-        "._error_x.Error_XValidator",
-        "._dy.DyValidator",
-        "._dx.DxValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._constraintext.ConstraintextValidator",
-        "._cliponaxis.CliponaxisValidator",
-        "._basesrc.BasesrcValidator",
-        "._base.BaseValidator",
-        "._alignmentgroup.AlignmentgroupValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zorder import ZorderValidator
+    from ._ysrc import YsrcValidator
+    from ._yperiodalignment import YperiodalignmentValidator
+    from ._yperiod0 import Yperiod0Validator
+    from ._yperiod import YperiodValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._ycalendar import YcalendarValidator
+    from ._yaxis import YaxisValidator
+    from ._y0 import Y0Validator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xperiodalignment import XperiodalignmentValidator
+    from ._xperiod0 import Xperiod0Validator
+    from ._xperiod import XperiodValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xcalendar import XcalendarValidator
+    from ._xaxis import XaxisValidator
+    from ._x0 import X0Validator
+    from ._x import XValidator
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textpositionsrc import TextpositionsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textfont import TextfontValidator
+    from ._textangle import TextangleValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._outsidetextfont import OutsidetextfontValidator
+    from ._orientation import OrientationValidator
+    from ._opacity import OpacityValidator
+    from ._offsetsrc import OffsetsrcValidator
+    from ._offsetgroup import OffsetgroupValidator
+    from ._offset import OffsetValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._insidetextfont import InsidetextfontValidator
+    from ._insidetextanchor import InsidetextanchorValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._error_y import Error_YValidator
+    from ._error_x import Error_XValidator
+    from ._dy import DyValidator
+    from ._dx import DxValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._constraintext import ConstraintextValidator
+    from ._cliponaxis import CliponaxisValidator
+    from ._basesrc import BasesrcValidator
+    from ._base import BaseValidator
+    from ._alignmentgroup import AlignmentgroupValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zorder.ZorderValidator",
+            "._ysrc.YsrcValidator",
+            "._yperiodalignment.YperiodalignmentValidator",
+            "._yperiod0.Yperiod0Validator",
+            "._yperiod.YperiodValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._ycalendar.YcalendarValidator",
+            "._yaxis.YaxisValidator",
+            "._y0.Y0Validator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xperiodalignment.XperiodalignmentValidator",
+            "._xperiod0.Xperiod0Validator",
+            "._xperiod.XperiodValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xcalendar.XcalendarValidator",
+            "._xaxis.XaxisValidator",
+            "._x0.X0Validator",
+            "._x.XValidator",
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textpositionsrc.TextpositionsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textfont.TextfontValidator",
+            "._textangle.TextangleValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._outsidetextfont.OutsidetextfontValidator",
+            "._orientation.OrientationValidator",
+            "._opacity.OpacityValidator",
+            "._offsetsrc.OffsetsrcValidator",
+            "._offsetgroup.OffsetgroupValidator",
+            "._offset.OffsetValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._insidetextfont.InsidetextfontValidator",
+            "._insidetextanchor.InsidetextanchorValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._error_y.Error_YValidator",
+            "._error_x.Error_XValidator",
+            "._dy.DyValidator",
+            "._dx.DxValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._constraintext.ConstraintextValidator",
+            "._cliponaxis.CliponaxisValidator",
+            "._basesrc.BasesrcValidator",
+            "._base.BaseValidator",
+            "._alignmentgroup.AlignmentgroupValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/error_x/__init__.py b/plotly/validators/bar/error_x/__init__.py
index 62838bdb731..2e3ce59d75d 100644
--- a/plotly/validators/bar/error_x/__init__.py
+++ b/plotly/validators/bar/error_x/__init__.py
@@ -1,24 +1,43 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._valueminus.ValueminusValidator",
-        "._value.ValueValidator",
-        "._type.TypeValidator",
-        "._tracerefminus.TracerefminusValidator",
-        "._traceref.TracerefValidator",
-        "._thickness.ThicknessValidator",
-        "._symmetric.SymmetricValidator",
-        "._copy_ystyle.Copy_YstyleValidator",
-        "._color.ColorValidator",
-        "._arraysrc.ArraysrcValidator",
-        "._arrayminussrc.ArrayminussrcValidator",
-        "._arrayminus.ArrayminusValidator",
-        "._array.ArrayValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._valueminus import ValueminusValidator
+    from ._value import ValueValidator
+    from ._type import TypeValidator
+    from ._tracerefminus import TracerefminusValidator
+    from ._traceref import TracerefValidator
+    from ._thickness import ThicknessValidator
+    from ._symmetric import SymmetricValidator
+    from ._copy_ystyle import Copy_YstyleValidator
+    from ._color import ColorValidator
+    from ._arraysrc import ArraysrcValidator
+    from ._arrayminussrc import ArrayminussrcValidator
+    from ._arrayminus import ArrayminusValidator
+    from ._array import ArrayValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._valueminus.ValueminusValidator",
+            "._value.ValueValidator",
+            "._type.TypeValidator",
+            "._tracerefminus.TracerefminusValidator",
+            "._traceref.TracerefValidator",
+            "._thickness.ThicknessValidator",
+            "._symmetric.SymmetricValidator",
+            "._copy_ystyle.Copy_YstyleValidator",
+            "._color.ColorValidator",
+            "._arraysrc.ArraysrcValidator",
+            "._arrayminussrc.ArrayminussrcValidator",
+            "._arrayminus.ArrayminusValidator",
+            "._array.ArrayValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/error_y/__init__.py b/plotly/validators/bar/error_y/__init__.py
index ea49850d5fe..eff09cd6a0a 100644
--- a/plotly/validators/bar/error_y/__init__.py
+++ b/plotly/validators/bar/error_y/__init__.py
@@ -1,23 +1,41 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._valueminus.ValueminusValidator",
-        "._value.ValueValidator",
-        "._type.TypeValidator",
-        "._tracerefminus.TracerefminusValidator",
-        "._traceref.TracerefValidator",
-        "._thickness.ThicknessValidator",
-        "._symmetric.SymmetricValidator",
-        "._color.ColorValidator",
-        "._arraysrc.ArraysrcValidator",
-        "._arrayminussrc.ArrayminussrcValidator",
-        "._arrayminus.ArrayminusValidator",
-        "._array.ArrayValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._valueminus import ValueminusValidator
+    from ._value import ValueValidator
+    from ._type import TypeValidator
+    from ._tracerefminus import TracerefminusValidator
+    from ._traceref import TracerefValidator
+    from ._thickness import ThicknessValidator
+    from ._symmetric import SymmetricValidator
+    from ._color import ColorValidator
+    from ._arraysrc import ArraysrcValidator
+    from ._arrayminussrc import ArrayminussrcValidator
+    from ._arrayminus import ArrayminusValidator
+    from ._array import ArrayValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._valueminus.ValueminusValidator",
+            "._value.ValueValidator",
+            "._type.TypeValidator",
+            "._tracerefminus.TracerefminusValidator",
+            "._traceref.TracerefValidator",
+            "._thickness.ThicknessValidator",
+            "._symmetric.SymmetricValidator",
+            "._color.ColorValidator",
+            "._arraysrc.ArraysrcValidator",
+            "._arrayminussrc.ArrayminussrcValidator",
+            "._arrayminus.ArrayminusValidator",
+            "._array.ArrayValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/hoverlabel/__init__.py b/plotly/validators/bar/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/bar/hoverlabel/__init__.py
+++ b/plotly/validators/bar/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/hoverlabel/font/__init__.py b/plotly/validators/bar/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/bar/hoverlabel/font/__init__.py
+++ b/plotly/validators/bar/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/insidetextfont/__init__.py b/plotly/validators/bar/insidetextfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/bar/insidetextfont/__init__.py
+++ b/plotly/validators/bar/insidetextfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/legendgrouptitle/__init__.py b/plotly/validators/bar/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/bar/legendgrouptitle/__init__.py
+++ b/plotly/validators/bar/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/bar/legendgrouptitle/font/__init__.py b/plotly/validators/bar/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/bar/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/bar/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/marker/__init__.py b/plotly/validators/bar/marker/__init__.py
index 69ad877d807..8f8e3d4a932 100644
--- a/plotly/validators/bar/marker/__init__.py
+++ b/plotly/validators/bar/marker/__init__.py
@@ -1,26 +1,47 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._pattern.PatternValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._line.LineValidator",
-        "._cornerradius.CornerradiusValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._pattern import PatternValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._line import LineValidator
+    from ._cornerradius import CornerradiusValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._pattern.PatternValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._line.LineValidator",
+            "._cornerradius.CornerradiusValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/marker/colorbar/__init__.py b/plotly/validators/bar/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/bar/marker/colorbar/__init__.py
+++ b/plotly/validators/bar/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/marker/colorbar/tickfont/__init__.py b/plotly/validators/bar/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/bar/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/bar/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/bar/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/bar/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/bar/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/marker/colorbar/title/__init__.py b/plotly/validators/bar/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/bar/marker/colorbar/title/__init__.py
+++ b/plotly/validators/bar/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/bar/marker/colorbar/title/font/__init__.py b/plotly/validators/bar/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/bar/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/bar/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/marker/line/__init__.py b/plotly/validators/bar/marker/line/__init__.py
index 4ba3ea340b5..facbe33f884 100644
--- a/plotly/validators/bar/marker/line/__init__.py
+++ b/plotly/validators/bar/marker/line/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._reversescale.ReversescaleValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._reversescale import ReversescaleValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._reversescale.ReversescaleValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/marker/pattern/__init__.py b/plotly/validators/bar/marker/pattern/__init__.py
index e42ccc4d0fb..e190f962c46 100644
--- a/plotly/validators/bar/marker/pattern/__init__.py
+++ b/plotly/validators/bar/marker/pattern/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._soliditysrc.SoliditysrcValidator",
-        "._solidity.SolidityValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shapesrc.ShapesrcValidator",
-        "._shape.ShapeValidator",
-        "._fillmode.FillmodeValidator",
-        "._fgopacity.FgopacityValidator",
-        "._fgcolorsrc.FgcolorsrcValidator",
-        "._fgcolor.FgcolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._soliditysrc import SoliditysrcValidator
+    from ._solidity import SolidityValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shapesrc import ShapesrcValidator
+    from ._shape import ShapeValidator
+    from ._fillmode import FillmodeValidator
+    from ._fgopacity import FgopacityValidator
+    from ._fgcolorsrc import FgcolorsrcValidator
+    from ._fgcolor import FgcolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._soliditysrc.SoliditysrcValidator",
+            "._solidity.SolidityValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shapesrc.ShapesrcValidator",
+            "._shape.ShapeValidator",
+            "._fillmode.FillmodeValidator",
+            "._fgopacity.FgopacityValidator",
+            "._fgcolorsrc.FgcolorsrcValidator",
+            "._fgcolor.FgcolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/outsidetextfont/__init__.py b/plotly/validators/bar/outsidetextfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/bar/outsidetextfont/__init__.py
+++ b/plotly/validators/bar/outsidetextfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/selected/__init__.py b/plotly/validators/bar/selected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/bar/selected/__init__.py
+++ b/plotly/validators/bar/selected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/bar/selected/marker/__init__.py b/plotly/validators/bar/selected/marker/__init__.py
index 653e5729338..d8f31347bfd 100644
--- a/plotly/validators/bar/selected/marker/__init__.py
+++ b/plotly/validators/bar/selected/marker/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/bar/selected/textfont/__init__.py b/plotly/validators/bar/selected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/bar/selected/textfont/__init__.py
+++ b/plotly/validators/bar/selected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/bar/stream/__init__.py b/plotly/validators/bar/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/bar/stream/__init__.py
+++ b/plotly/validators/bar/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/bar/textfont/__init__.py b/plotly/validators/bar/textfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/bar/textfont/__init__.py
+++ b/plotly/validators/bar/textfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/bar/unselected/__init__.py b/plotly/validators/bar/unselected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/bar/unselected/__init__.py
+++ b/plotly/validators/bar/unselected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/bar/unselected/marker/__init__.py b/plotly/validators/bar/unselected/marker/__init__.py
index 653e5729338..d8f31347bfd 100644
--- a/plotly/validators/bar/unselected/marker/__init__.py
+++ b/plotly/validators/bar/unselected/marker/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/bar/unselected/textfont/__init__.py b/plotly/validators/bar/unselected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/bar/unselected/textfont/__init__.py
+++ b/plotly/validators/bar/unselected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/barpolar/__init__.py b/plotly/validators/barpolar/__init__.py
index 75779f181df..bb1ecd886ba 100644
--- a/plotly/validators/barpolar/__init__.py
+++ b/plotly/validators/barpolar/__init__.py
@@ -1,56 +1,107 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._thetaunit.ThetaunitValidator",
-        "._thetasrc.ThetasrcValidator",
-        "._theta0.Theta0Validator",
-        "._theta.ThetaValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._subplot.SubplotValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._rsrc.RsrcValidator",
-        "._r0.R0Validator",
-        "._r.RValidator",
-        "._opacity.OpacityValidator",
-        "._offsetsrc.OffsetsrcValidator",
-        "._offset.OffsetValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._dtheta.DthetaValidator",
-        "._dr.DrValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._basesrc.BasesrcValidator",
-        "._base.BaseValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._thetaunit import ThetaunitValidator
+    from ._thetasrc import ThetasrcValidator
+    from ._theta0 import Theta0Validator
+    from ._theta import ThetaValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._subplot import SubplotValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._rsrc import RsrcValidator
+    from ._r0 import R0Validator
+    from ._r import RValidator
+    from ._opacity import OpacityValidator
+    from ._offsetsrc import OffsetsrcValidator
+    from ._offset import OffsetValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._dtheta import DthetaValidator
+    from ._dr import DrValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._basesrc import BasesrcValidator
+    from ._base import BaseValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._thetaunit.ThetaunitValidator",
+            "._thetasrc.ThetasrcValidator",
+            "._theta0.Theta0Validator",
+            "._theta.ThetaValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._subplot.SubplotValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._rsrc.RsrcValidator",
+            "._r0.R0Validator",
+            "._r.RValidator",
+            "._opacity.OpacityValidator",
+            "._offsetsrc.OffsetsrcValidator",
+            "._offset.OffsetValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._dtheta.DthetaValidator",
+            "._dr.DrValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._basesrc.BasesrcValidator",
+            "._base.BaseValidator",
+        ],
+    )
diff --git a/plotly/validators/barpolar/hoverlabel/__init__.py b/plotly/validators/barpolar/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/barpolar/hoverlabel/__init__.py
+++ b/plotly/validators/barpolar/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/barpolar/hoverlabel/font/__init__.py b/plotly/validators/barpolar/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/barpolar/hoverlabel/font/__init__.py
+++ b/plotly/validators/barpolar/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/barpolar/legendgrouptitle/__init__.py b/plotly/validators/barpolar/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/barpolar/legendgrouptitle/__init__.py
+++ b/plotly/validators/barpolar/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/barpolar/legendgrouptitle/font/__init__.py b/plotly/validators/barpolar/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/barpolar/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/barpolar/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/barpolar/marker/__init__.py b/plotly/validators/barpolar/marker/__init__.py
index 339b1c7bb8c..8fa50057372 100644
--- a/plotly/validators/barpolar/marker/__init__.py
+++ b/plotly/validators/barpolar/marker/__init__.py
@@ -1,25 +1,45 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._pattern.PatternValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._line.LineValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._pattern import PatternValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._line import LineValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._pattern.PatternValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._line.LineValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/barpolar/marker/colorbar/__init__.py b/plotly/validators/barpolar/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/barpolar/marker/colorbar/__init__.py
+++ b/plotly/validators/barpolar/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/barpolar/marker/colorbar/tickfont/__init__.py b/plotly/validators/barpolar/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/barpolar/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/barpolar/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/barpolar/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/barpolar/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/barpolar/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/barpolar/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/barpolar/marker/colorbar/title/__init__.py b/plotly/validators/barpolar/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/barpolar/marker/colorbar/title/__init__.py
+++ b/plotly/validators/barpolar/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/barpolar/marker/colorbar/title/font/__init__.py b/plotly/validators/barpolar/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/barpolar/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/barpolar/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/barpolar/marker/line/__init__.py b/plotly/validators/barpolar/marker/line/__init__.py
index 4ba3ea340b5..facbe33f884 100644
--- a/plotly/validators/barpolar/marker/line/__init__.py
+++ b/plotly/validators/barpolar/marker/line/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._reversescale.ReversescaleValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._reversescale import ReversescaleValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._reversescale.ReversescaleValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/barpolar/marker/pattern/__init__.py b/plotly/validators/barpolar/marker/pattern/__init__.py
index e42ccc4d0fb..e190f962c46 100644
--- a/plotly/validators/barpolar/marker/pattern/__init__.py
+++ b/plotly/validators/barpolar/marker/pattern/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._soliditysrc.SoliditysrcValidator",
-        "._solidity.SolidityValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shapesrc.ShapesrcValidator",
-        "._shape.ShapeValidator",
-        "._fillmode.FillmodeValidator",
-        "._fgopacity.FgopacityValidator",
-        "._fgcolorsrc.FgcolorsrcValidator",
-        "._fgcolor.FgcolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._soliditysrc import SoliditysrcValidator
+    from ._solidity import SolidityValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shapesrc import ShapesrcValidator
+    from ._shape import ShapeValidator
+    from ._fillmode import FillmodeValidator
+    from ._fgopacity import FgopacityValidator
+    from ._fgcolorsrc import FgcolorsrcValidator
+    from ._fgcolor import FgcolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._soliditysrc.SoliditysrcValidator",
+            "._solidity.SolidityValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shapesrc.ShapesrcValidator",
+            "._shape.ShapeValidator",
+            "._fillmode.FillmodeValidator",
+            "._fgopacity.FgopacityValidator",
+            "._fgcolorsrc.FgcolorsrcValidator",
+            "._fgcolor.FgcolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/barpolar/selected/__init__.py b/plotly/validators/barpolar/selected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/barpolar/selected/__init__.py
+++ b/plotly/validators/barpolar/selected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/barpolar/selected/marker/__init__.py b/plotly/validators/barpolar/selected/marker/__init__.py
index 653e5729338..d8f31347bfd 100644
--- a/plotly/validators/barpolar/selected/marker/__init__.py
+++ b/plotly/validators/barpolar/selected/marker/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/barpolar/selected/textfont/__init__.py b/plotly/validators/barpolar/selected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/barpolar/selected/textfont/__init__.py
+++ b/plotly/validators/barpolar/selected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/barpolar/stream/__init__.py b/plotly/validators/barpolar/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/barpolar/stream/__init__.py
+++ b/plotly/validators/barpolar/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/barpolar/unselected/__init__.py b/plotly/validators/barpolar/unselected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/barpolar/unselected/__init__.py
+++ b/plotly/validators/barpolar/unselected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/barpolar/unselected/marker/__init__.py b/plotly/validators/barpolar/unselected/marker/__init__.py
index 653e5729338..d8f31347bfd 100644
--- a/plotly/validators/barpolar/unselected/marker/__init__.py
+++ b/plotly/validators/barpolar/unselected/marker/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/barpolar/unselected/textfont/__init__.py b/plotly/validators/barpolar/unselected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/barpolar/unselected/textfont/__init__.py
+++ b/plotly/validators/barpolar/unselected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/box/__init__.py b/plotly/validators/box/__init__.py
index ccfd18ac333..3970b2cf4be 100644
--- a/plotly/validators/box/__init__.py
+++ b/plotly/validators/box/__init__.py
@@ -1,95 +1,185 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zorder.ZorderValidator",
-        "._ysrc.YsrcValidator",
-        "._yperiodalignment.YperiodalignmentValidator",
-        "._yperiod0.Yperiod0Validator",
-        "._yperiod.YperiodValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._ycalendar.YcalendarValidator",
-        "._yaxis.YaxisValidator",
-        "._y0.Y0Validator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xperiodalignment.XperiodalignmentValidator",
-        "._xperiod0.Xperiod0Validator",
-        "._xperiod.XperiodValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xcalendar.XcalendarValidator",
-        "._xaxis.XaxisValidator",
-        "._x0.X0Validator",
-        "._x.XValidator",
-        "._width.WidthValidator",
-        "._whiskerwidth.WhiskerwidthValidator",
-        "._visible.VisibleValidator",
-        "._upperfencesrc.UpperfencesrcValidator",
-        "._upperfence.UpperfenceValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._sizemode.SizemodeValidator",
-        "._showwhiskers.ShowwhiskersValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._sdsrc.SdsrcValidator",
-        "._sdmultiple.SdmultipleValidator",
-        "._sd.SdValidator",
-        "._quartilemethod.QuartilemethodValidator",
-        "._q3src.Q3SrcValidator",
-        "._q3.Q3Validator",
-        "._q1src.Q1SrcValidator",
-        "._q1.Q1Validator",
-        "._pointpos.PointposValidator",
-        "._orientation.OrientationValidator",
-        "._opacity.OpacityValidator",
-        "._offsetgroup.OffsetgroupValidator",
-        "._notchwidth.NotchwidthValidator",
-        "._notchspansrc.NotchspansrcValidator",
-        "._notchspan.NotchspanValidator",
-        "._notched.NotchedValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._mediansrc.MediansrcValidator",
-        "._median.MedianValidator",
-        "._meansrc.MeansrcValidator",
-        "._mean.MeanValidator",
-        "._marker.MarkerValidator",
-        "._lowerfencesrc.LowerfencesrcValidator",
-        "._lowerfence.LowerfenceValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._jitter.JitterValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoveron.HoveronValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._fillcolor.FillcolorValidator",
-        "._dy.DyValidator",
-        "._dx.DxValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._boxpoints.BoxpointsValidator",
-        "._boxmean.BoxmeanValidator",
-        "._alignmentgroup.AlignmentgroupValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zorder import ZorderValidator
+    from ._ysrc import YsrcValidator
+    from ._yperiodalignment import YperiodalignmentValidator
+    from ._yperiod0 import Yperiod0Validator
+    from ._yperiod import YperiodValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._ycalendar import YcalendarValidator
+    from ._yaxis import YaxisValidator
+    from ._y0 import Y0Validator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xperiodalignment import XperiodalignmentValidator
+    from ._xperiod0 import Xperiod0Validator
+    from ._xperiod import XperiodValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xcalendar import XcalendarValidator
+    from ._xaxis import XaxisValidator
+    from ._x0 import X0Validator
+    from ._x import XValidator
+    from ._width import WidthValidator
+    from ._whiskerwidth import WhiskerwidthValidator
+    from ._visible import VisibleValidator
+    from ._upperfencesrc import UpperfencesrcValidator
+    from ._upperfence import UpperfenceValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._sizemode import SizemodeValidator
+    from ._showwhiskers import ShowwhiskersValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._sdsrc import SdsrcValidator
+    from ._sdmultiple import SdmultipleValidator
+    from ._sd import SdValidator
+    from ._quartilemethod import QuartilemethodValidator
+    from ._q3src import Q3SrcValidator
+    from ._q3 import Q3Validator
+    from ._q1src import Q1SrcValidator
+    from ._q1 import Q1Validator
+    from ._pointpos import PointposValidator
+    from ._orientation import OrientationValidator
+    from ._opacity import OpacityValidator
+    from ._offsetgroup import OffsetgroupValidator
+    from ._notchwidth import NotchwidthValidator
+    from ._notchspansrc import NotchspansrcValidator
+    from ._notchspan import NotchspanValidator
+    from ._notched import NotchedValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._mediansrc import MediansrcValidator
+    from ._median import MedianValidator
+    from ._meansrc import MeansrcValidator
+    from ._mean import MeanValidator
+    from ._marker import MarkerValidator
+    from ._lowerfencesrc import LowerfencesrcValidator
+    from ._lowerfence import LowerfenceValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._jitter import JitterValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoveron import HoveronValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._fillcolor import FillcolorValidator
+    from ._dy import DyValidator
+    from ._dx import DxValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._boxpoints import BoxpointsValidator
+    from ._boxmean import BoxmeanValidator
+    from ._alignmentgroup import AlignmentgroupValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zorder.ZorderValidator",
+            "._ysrc.YsrcValidator",
+            "._yperiodalignment.YperiodalignmentValidator",
+            "._yperiod0.Yperiod0Validator",
+            "._yperiod.YperiodValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._ycalendar.YcalendarValidator",
+            "._yaxis.YaxisValidator",
+            "._y0.Y0Validator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xperiodalignment.XperiodalignmentValidator",
+            "._xperiod0.Xperiod0Validator",
+            "._xperiod.XperiodValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xcalendar.XcalendarValidator",
+            "._xaxis.XaxisValidator",
+            "._x0.X0Validator",
+            "._x.XValidator",
+            "._width.WidthValidator",
+            "._whiskerwidth.WhiskerwidthValidator",
+            "._visible.VisibleValidator",
+            "._upperfencesrc.UpperfencesrcValidator",
+            "._upperfence.UpperfenceValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._sizemode.SizemodeValidator",
+            "._showwhiskers.ShowwhiskersValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._sdsrc.SdsrcValidator",
+            "._sdmultiple.SdmultipleValidator",
+            "._sd.SdValidator",
+            "._quartilemethod.QuartilemethodValidator",
+            "._q3src.Q3SrcValidator",
+            "._q3.Q3Validator",
+            "._q1src.Q1SrcValidator",
+            "._q1.Q1Validator",
+            "._pointpos.PointposValidator",
+            "._orientation.OrientationValidator",
+            "._opacity.OpacityValidator",
+            "._offsetgroup.OffsetgroupValidator",
+            "._notchwidth.NotchwidthValidator",
+            "._notchspansrc.NotchspansrcValidator",
+            "._notchspan.NotchspanValidator",
+            "._notched.NotchedValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._mediansrc.MediansrcValidator",
+            "._median.MedianValidator",
+            "._meansrc.MeansrcValidator",
+            "._mean.MeanValidator",
+            "._marker.MarkerValidator",
+            "._lowerfencesrc.LowerfencesrcValidator",
+            "._lowerfence.LowerfenceValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._jitter.JitterValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoveron.HoveronValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._fillcolor.FillcolorValidator",
+            "._dy.DyValidator",
+            "._dx.DxValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._boxpoints.BoxpointsValidator",
+            "._boxmean.BoxmeanValidator",
+            "._alignmentgroup.AlignmentgroupValidator",
+        ],
+    )
diff --git a/plotly/validators/box/hoverlabel/__init__.py b/plotly/validators/box/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/box/hoverlabel/__init__.py
+++ b/plotly/validators/box/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/box/hoverlabel/font/__init__.py b/plotly/validators/box/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/box/hoverlabel/font/__init__.py
+++ b/plotly/validators/box/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/box/legendgrouptitle/__init__.py b/plotly/validators/box/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/box/legendgrouptitle/__init__.py
+++ b/plotly/validators/box/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/box/legendgrouptitle/font/__init__.py b/plotly/validators/box/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/box/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/box/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/box/line/__init__.py b/plotly/validators/box/line/__init__.py
index d49328faace..63a516578b5 100644
--- a/plotly/validators/box/line/__init__.py
+++ b/plotly/validators/box/line/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/box/marker/__init__.py b/plotly/validators/box/marker/__init__.py
index e15653f2f3d..59cc1848f17 100644
--- a/plotly/validators/box/marker/__init__.py
+++ b/plotly/validators/box/marker/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._symbol.SymbolValidator",
-        "._size.SizeValidator",
-        "._outliercolor.OutliercolorValidator",
-        "._opacity.OpacityValidator",
-        "._line.LineValidator",
-        "._color.ColorValidator",
-        "._angle.AngleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._symbol import SymbolValidator
+    from ._size import SizeValidator
+    from ._outliercolor import OutliercolorValidator
+    from ._opacity import OpacityValidator
+    from ._line import LineValidator
+    from ._color import ColorValidator
+    from ._angle import AngleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._symbol.SymbolValidator",
+            "._size.SizeValidator",
+            "._outliercolor.OutliercolorValidator",
+            "._opacity.OpacityValidator",
+            "._line.LineValidator",
+            "._color.ColorValidator",
+            "._angle.AngleValidator",
+        ],
+    )
diff --git a/plotly/validators/box/marker/line/__init__.py b/plotly/validators/box/marker/line/__init__.py
index e296cd48503..7778bf581ee 100644
--- a/plotly/validators/box/marker/line/__init__.py
+++ b/plotly/validators/box/marker/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._outlierwidth.OutlierwidthValidator",
-        "._outliercolor.OutliercolorValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._outlierwidth import OutlierwidthValidator
+    from ._outliercolor import OutliercolorValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._outlierwidth.OutlierwidthValidator",
+            "._outliercolor.OutliercolorValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/box/selected/__init__.py b/plotly/validators/box/selected/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/box/selected/__init__.py
+++ b/plotly/validators/box/selected/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/box/selected/marker/__init__.py b/plotly/validators/box/selected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/box/selected/marker/__init__.py
+++ b/plotly/validators/box/selected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/box/stream/__init__.py b/plotly/validators/box/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/box/stream/__init__.py
+++ b/plotly/validators/box/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/box/unselected/__init__.py b/plotly/validators/box/unselected/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/box/unselected/__init__.py
+++ b/plotly/validators/box/unselected/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/box/unselected/marker/__init__.py b/plotly/validators/box/unselected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/box/unselected/marker/__init__.py
+++ b/plotly/validators/box/unselected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/candlestick/__init__.py b/plotly/validators/candlestick/__init__.py
index 8737b9b8244..ad4090b7f54 100644
--- a/plotly/validators/candlestick/__init__.py
+++ b/plotly/validators/candlestick/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zorder.ZorderValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._yaxis.YaxisValidator",
-        "._xsrc.XsrcValidator",
-        "._xperiodalignment.XperiodalignmentValidator",
-        "._xperiod0.Xperiod0Validator",
-        "._xperiod.XperiodValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xcalendar.XcalendarValidator",
-        "._xaxis.XaxisValidator",
-        "._x.XValidator",
-        "._whiskerwidth.WhiskerwidthValidator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._opensrc.OpensrcValidator",
-        "._open.OpenValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._lowsrc.LowsrcValidator",
-        "._low.LowValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._increasing.IncreasingValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._highsrc.HighsrcValidator",
-        "._high.HighValidator",
-        "._decreasing.DecreasingValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._closesrc.ClosesrcValidator",
-        "._close.CloseValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zorder import ZorderValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._yaxis import YaxisValidator
+    from ._xsrc import XsrcValidator
+    from ._xperiodalignment import XperiodalignmentValidator
+    from ._xperiod0 import Xperiod0Validator
+    from ._xperiod import XperiodValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xcalendar import XcalendarValidator
+    from ._xaxis import XaxisValidator
+    from ._x import XValidator
+    from ._whiskerwidth import WhiskerwidthValidator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._opensrc import OpensrcValidator
+    from ._open import OpenValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._lowsrc import LowsrcValidator
+    from ._low import LowValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._increasing import IncreasingValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._highsrc import HighsrcValidator
+    from ._high import HighValidator
+    from ._decreasing import DecreasingValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._closesrc import ClosesrcValidator
+    from ._close import CloseValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zorder.ZorderValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._yaxis.YaxisValidator",
+            "._xsrc.XsrcValidator",
+            "._xperiodalignment.XperiodalignmentValidator",
+            "._xperiod0.Xperiod0Validator",
+            "._xperiod.XperiodValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xcalendar.XcalendarValidator",
+            "._xaxis.XaxisValidator",
+            "._x.XValidator",
+            "._whiskerwidth.WhiskerwidthValidator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._opensrc.OpensrcValidator",
+            "._open.OpenValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._lowsrc.LowsrcValidator",
+            "._low.LowValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._increasing.IncreasingValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._highsrc.HighsrcValidator",
+            "._high.HighValidator",
+            "._decreasing.DecreasingValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._closesrc.ClosesrcValidator",
+            "._close.CloseValidator",
+        ],
+    )
diff --git a/plotly/validators/candlestick/decreasing/__init__.py b/plotly/validators/candlestick/decreasing/__init__.py
index 94446eb3057..07aaa323c2b 100644
--- a/plotly/validators/candlestick/decreasing/__init__.py
+++ b/plotly/validators/candlestick/decreasing/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._line.LineValidator", "._fillcolor.FillcolorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import LineValidator
+    from ._fillcolor import FillcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._line.LineValidator", "._fillcolor.FillcolorValidator"]
+    )
diff --git a/plotly/validators/candlestick/decreasing/line/__init__.py b/plotly/validators/candlestick/decreasing/line/__init__.py
index d49328faace..63a516578b5 100644
--- a/plotly/validators/candlestick/decreasing/line/__init__.py
+++ b/plotly/validators/candlestick/decreasing/line/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/candlestick/hoverlabel/__init__.py b/plotly/validators/candlestick/hoverlabel/__init__.py
index f4773f7cdd5..5504c36e76f 100644
--- a/plotly/validators/candlestick/hoverlabel/__init__.py
+++ b/plotly/validators/candlestick/hoverlabel/__init__.py
@@ -1,19 +1,33 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._split.SplitValidator",
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._split import SplitValidator
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._split.SplitValidator",
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/candlestick/hoverlabel/font/__init__.py b/plotly/validators/candlestick/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/candlestick/hoverlabel/font/__init__.py
+++ b/plotly/validators/candlestick/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/candlestick/increasing/__init__.py b/plotly/validators/candlestick/increasing/__init__.py
index 94446eb3057..07aaa323c2b 100644
--- a/plotly/validators/candlestick/increasing/__init__.py
+++ b/plotly/validators/candlestick/increasing/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._line.LineValidator", "._fillcolor.FillcolorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import LineValidator
+    from ._fillcolor import FillcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._line.LineValidator", "._fillcolor.FillcolorValidator"]
+    )
diff --git a/plotly/validators/candlestick/increasing/line/__init__.py b/plotly/validators/candlestick/increasing/line/__init__.py
index d49328faace..63a516578b5 100644
--- a/plotly/validators/candlestick/increasing/line/__init__.py
+++ b/plotly/validators/candlestick/increasing/line/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/candlestick/legendgrouptitle/__init__.py b/plotly/validators/candlestick/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/candlestick/legendgrouptitle/__init__.py
+++ b/plotly/validators/candlestick/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/candlestick/legendgrouptitle/font/__init__.py b/plotly/validators/candlestick/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/candlestick/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/candlestick/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/candlestick/line/__init__.py b/plotly/validators/candlestick/line/__init__.py
index c61e0d7012a..99e75bd2714 100644
--- a/plotly/validators/candlestick/line/__init__.py
+++ b/plotly/validators/candlestick/line/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._width.WidthValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._width.WidthValidator"]
+    )
diff --git a/plotly/validators/candlestick/stream/__init__.py b/plotly/validators/candlestick/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/candlestick/stream/__init__.py
+++ b/plotly/validators/candlestick/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/carpet/__init__.py b/plotly/validators/carpet/__init__.py
index 52df60daab2..93ee44386eb 100644
--- a/plotly/validators/carpet/__init__.py
+++ b/plotly/validators/carpet/__init__.py
@@ -1,46 +1,87 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zorder.ZorderValidator",
-        "._ysrc.YsrcValidator",
-        "._yaxis.YaxisValidator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xaxis.XaxisValidator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._stream.StreamValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._font.FontValidator",
-        "._db.DbValidator",
-        "._da.DaValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._color.ColorValidator",
-        "._cheaterslope.CheaterslopeValidator",
-        "._carpet.CarpetValidator",
-        "._bsrc.BsrcValidator",
-        "._baxis.BaxisValidator",
-        "._b0.B0Validator",
-        "._b.BValidator",
-        "._asrc.AsrcValidator",
-        "._aaxis.AaxisValidator",
-        "._a0.A0Validator",
-        "._a.AValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zorder import ZorderValidator
+    from ._ysrc import YsrcValidator
+    from ._yaxis import YaxisValidator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xaxis import XaxisValidator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._stream import StreamValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._font import FontValidator
+    from ._db import DbValidator
+    from ._da import DaValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._color import ColorValidator
+    from ._cheaterslope import CheaterslopeValidator
+    from ._carpet import CarpetValidator
+    from ._bsrc import BsrcValidator
+    from ._baxis import BaxisValidator
+    from ._b0 import B0Validator
+    from ._b import BValidator
+    from ._asrc import AsrcValidator
+    from ._aaxis import AaxisValidator
+    from ._a0 import A0Validator
+    from ._a import AValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zorder.ZorderValidator",
+            "._ysrc.YsrcValidator",
+            "._yaxis.YaxisValidator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xaxis.XaxisValidator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._stream.StreamValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._font.FontValidator",
+            "._db.DbValidator",
+            "._da.DaValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._color.ColorValidator",
+            "._cheaterslope.CheaterslopeValidator",
+            "._carpet.CarpetValidator",
+            "._bsrc.BsrcValidator",
+            "._baxis.BaxisValidator",
+            "._b0.B0Validator",
+            "._b.BValidator",
+            "._asrc.AsrcValidator",
+            "._aaxis.AaxisValidator",
+            "._a0.A0Validator",
+            "._a.AValidator",
+        ],
+    )
diff --git a/plotly/validators/carpet/aaxis/__init__.py b/plotly/validators/carpet/aaxis/__init__.py
index eb5d615977d..5d27db03f95 100644
--- a/plotly/validators/carpet/aaxis/__init__.py
+++ b/plotly/validators/carpet/aaxis/__init__.py
@@ -1,67 +1,129 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._type.TypeValidator",
-        "._title.TitleValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._startlinewidth.StartlinewidthValidator",
-        "._startlinecolor.StartlinecolorValidator",
-        "._startline.StartlineValidator",
-        "._smoothing.SmoothingValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showline.ShowlineValidator",
-        "._showgrid.ShowgridValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._rangemode.RangemodeValidator",
-        "._range.RangeValidator",
-        "._nticks.NticksValidator",
-        "._minorgridwidth.MinorgridwidthValidator",
-        "._minorgriddash.MinorgriddashValidator",
-        "._minorgridcount.MinorgridcountValidator",
-        "._minorgridcolor.MinorgridcolorValidator",
-        "._minexponent.MinexponentValidator",
-        "._linewidth.LinewidthValidator",
-        "._linecolor.LinecolorValidator",
-        "._labelsuffix.LabelsuffixValidator",
-        "._labelprefix.LabelprefixValidator",
-        "._labelpadding.LabelpaddingValidator",
-        "._labelalias.LabelaliasValidator",
-        "._gridwidth.GridwidthValidator",
-        "._griddash.GriddashValidator",
-        "._gridcolor.GridcolorValidator",
-        "._fixedrange.FixedrangeValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._endlinewidth.EndlinewidthValidator",
-        "._endlinecolor.EndlinecolorValidator",
-        "._endline.EndlineValidator",
-        "._dtick.DtickValidator",
-        "._color.ColorValidator",
-        "._cheatertype.CheatertypeValidator",
-        "._categoryorder.CategoryorderValidator",
-        "._categoryarraysrc.CategoryarraysrcValidator",
-        "._categoryarray.CategoryarrayValidator",
-        "._autotypenumbers.AutotypenumbersValidator",
-        "._autorange.AutorangeValidator",
-        "._arraytick0.Arraytick0Validator",
-        "._arraydtick.ArraydtickValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._type import TypeValidator
+    from ._title import TitleValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._startlinewidth import StartlinewidthValidator
+    from ._startlinecolor import StartlinecolorValidator
+    from ._startline import StartlineValidator
+    from ._smoothing import SmoothingValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showline import ShowlineValidator
+    from ._showgrid import ShowgridValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._rangemode import RangemodeValidator
+    from ._range import RangeValidator
+    from ._nticks import NticksValidator
+    from ._minorgridwidth import MinorgridwidthValidator
+    from ._minorgriddash import MinorgriddashValidator
+    from ._minorgridcount import MinorgridcountValidator
+    from ._minorgridcolor import MinorgridcolorValidator
+    from ._minexponent import MinexponentValidator
+    from ._linewidth import LinewidthValidator
+    from ._linecolor import LinecolorValidator
+    from ._labelsuffix import LabelsuffixValidator
+    from ._labelprefix import LabelprefixValidator
+    from ._labelpadding import LabelpaddingValidator
+    from ._labelalias import LabelaliasValidator
+    from ._gridwidth import GridwidthValidator
+    from ._griddash import GriddashValidator
+    from ._gridcolor import GridcolorValidator
+    from ._fixedrange import FixedrangeValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._endlinewidth import EndlinewidthValidator
+    from ._endlinecolor import EndlinecolorValidator
+    from ._endline import EndlineValidator
+    from ._dtick import DtickValidator
+    from ._color import ColorValidator
+    from ._cheatertype import CheatertypeValidator
+    from ._categoryorder import CategoryorderValidator
+    from ._categoryarraysrc import CategoryarraysrcValidator
+    from ._categoryarray import CategoryarrayValidator
+    from ._autotypenumbers import AutotypenumbersValidator
+    from ._autorange import AutorangeValidator
+    from ._arraytick0 import Arraytick0Validator
+    from ._arraydtick import ArraydtickValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._type.TypeValidator",
+            "._title.TitleValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._startlinewidth.StartlinewidthValidator",
+            "._startlinecolor.StartlinecolorValidator",
+            "._startline.StartlineValidator",
+            "._smoothing.SmoothingValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showline.ShowlineValidator",
+            "._showgrid.ShowgridValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._rangemode.RangemodeValidator",
+            "._range.RangeValidator",
+            "._nticks.NticksValidator",
+            "._minorgridwidth.MinorgridwidthValidator",
+            "._minorgriddash.MinorgriddashValidator",
+            "._minorgridcount.MinorgridcountValidator",
+            "._minorgridcolor.MinorgridcolorValidator",
+            "._minexponent.MinexponentValidator",
+            "._linewidth.LinewidthValidator",
+            "._linecolor.LinecolorValidator",
+            "._labelsuffix.LabelsuffixValidator",
+            "._labelprefix.LabelprefixValidator",
+            "._labelpadding.LabelpaddingValidator",
+            "._labelalias.LabelaliasValidator",
+            "._gridwidth.GridwidthValidator",
+            "._griddash.GriddashValidator",
+            "._gridcolor.GridcolorValidator",
+            "._fixedrange.FixedrangeValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._endlinewidth.EndlinewidthValidator",
+            "._endlinecolor.EndlinecolorValidator",
+            "._endline.EndlineValidator",
+            "._dtick.DtickValidator",
+            "._color.ColorValidator",
+            "._cheatertype.CheatertypeValidator",
+            "._categoryorder.CategoryorderValidator",
+            "._categoryarraysrc.CategoryarraysrcValidator",
+            "._categoryarray.CategoryarrayValidator",
+            "._autotypenumbers.AutotypenumbersValidator",
+            "._autorange.AutorangeValidator",
+            "._arraytick0.Arraytick0Validator",
+            "._arraydtick.ArraydtickValidator",
+        ],
+    )
diff --git a/plotly/validators/carpet/aaxis/tickfont/__init__.py b/plotly/validators/carpet/aaxis/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/carpet/aaxis/tickfont/__init__.py
+++ b/plotly/validators/carpet/aaxis/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/carpet/aaxis/tickformatstop/__init__.py b/plotly/validators/carpet/aaxis/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/carpet/aaxis/tickformatstop/__init__.py
+++ b/plotly/validators/carpet/aaxis/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/carpet/aaxis/title/__init__.py b/plotly/validators/carpet/aaxis/title/__init__.py
index 5a003b67cd8..ff2ee4cb29f 100644
--- a/plotly/validators/carpet/aaxis/title/__init__.py
+++ b/plotly/validators/carpet/aaxis/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._offset.OffsetValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._offset import OffsetValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._offset.OffsetValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/carpet/aaxis/title/font/__init__.py b/plotly/validators/carpet/aaxis/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/carpet/aaxis/title/font/__init__.py
+++ b/plotly/validators/carpet/aaxis/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/carpet/baxis/__init__.py b/plotly/validators/carpet/baxis/__init__.py
index eb5d615977d..5d27db03f95 100644
--- a/plotly/validators/carpet/baxis/__init__.py
+++ b/plotly/validators/carpet/baxis/__init__.py
@@ -1,67 +1,129 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._type.TypeValidator",
-        "._title.TitleValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._startlinewidth.StartlinewidthValidator",
-        "._startlinecolor.StartlinecolorValidator",
-        "._startline.StartlineValidator",
-        "._smoothing.SmoothingValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showline.ShowlineValidator",
-        "._showgrid.ShowgridValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._rangemode.RangemodeValidator",
-        "._range.RangeValidator",
-        "._nticks.NticksValidator",
-        "._minorgridwidth.MinorgridwidthValidator",
-        "._minorgriddash.MinorgriddashValidator",
-        "._minorgridcount.MinorgridcountValidator",
-        "._minorgridcolor.MinorgridcolorValidator",
-        "._minexponent.MinexponentValidator",
-        "._linewidth.LinewidthValidator",
-        "._linecolor.LinecolorValidator",
-        "._labelsuffix.LabelsuffixValidator",
-        "._labelprefix.LabelprefixValidator",
-        "._labelpadding.LabelpaddingValidator",
-        "._labelalias.LabelaliasValidator",
-        "._gridwidth.GridwidthValidator",
-        "._griddash.GriddashValidator",
-        "._gridcolor.GridcolorValidator",
-        "._fixedrange.FixedrangeValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._endlinewidth.EndlinewidthValidator",
-        "._endlinecolor.EndlinecolorValidator",
-        "._endline.EndlineValidator",
-        "._dtick.DtickValidator",
-        "._color.ColorValidator",
-        "._cheatertype.CheatertypeValidator",
-        "._categoryorder.CategoryorderValidator",
-        "._categoryarraysrc.CategoryarraysrcValidator",
-        "._categoryarray.CategoryarrayValidator",
-        "._autotypenumbers.AutotypenumbersValidator",
-        "._autorange.AutorangeValidator",
-        "._arraytick0.Arraytick0Validator",
-        "._arraydtick.ArraydtickValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._type import TypeValidator
+    from ._title import TitleValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._startlinewidth import StartlinewidthValidator
+    from ._startlinecolor import StartlinecolorValidator
+    from ._startline import StartlineValidator
+    from ._smoothing import SmoothingValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showline import ShowlineValidator
+    from ._showgrid import ShowgridValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._rangemode import RangemodeValidator
+    from ._range import RangeValidator
+    from ._nticks import NticksValidator
+    from ._minorgridwidth import MinorgridwidthValidator
+    from ._minorgriddash import MinorgriddashValidator
+    from ._minorgridcount import MinorgridcountValidator
+    from ._minorgridcolor import MinorgridcolorValidator
+    from ._minexponent import MinexponentValidator
+    from ._linewidth import LinewidthValidator
+    from ._linecolor import LinecolorValidator
+    from ._labelsuffix import LabelsuffixValidator
+    from ._labelprefix import LabelprefixValidator
+    from ._labelpadding import LabelpaddingValidator
+    from ._labelalias import LabelaliasValidator
+    from ._gridwidth import GridwidthValidator
+    from ._griddash import GriddashValidator
+    from ._gridcolor import GridcolorValidator
+    from ._fixedrange import FixedrangeValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._endlinewidth import EndlinewidthValidator
+    from ._endlinecolor import EndlinecolorValidator
+    from ._endline import EndlineValidator
+    from ._dtick import DtickValidator
+    from ._color import ColorValidator
+    from ._cheatertype import CheatertypeValidator
+    from ._categoryorder import CategoryorderValidator
+    from ._categoryarraysrc import CategoryarraysrcValidator
+    from ._categoryarray import CategoryarrayValidator
+    from ._autotypenumbers import AutotypenumbersValidator
+    from ._autorange import AutorangeValidator
+    from ._arraytick0 import Arraytick0Validator
+    from ._arraydtick import ArraydtickValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._type.TypeValidator",
+            "._title.TitleValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._startlinewidth.StartlinewidthValidator",
+            "._startlinecolor.StartlinecolorValidator",
+            "._startline.StartlineValidator",
+            "._smoothing.SmoothingValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showline.ShowlineValidator",
+            "._showgrid.ShowgridValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._rangemode.RangemodeValidator",
+            "._range.RangeValidator",
+            "._nticks.NticksValidator",
+            "._minorgridwidth.MinorgridwidthValidator",
+            "._minorgriddash.MinorgriddashValidator",
+            "._minorgridcount.MinorgridcountValidator",
+            "._minorgridcolor.MinorgridcolorValidator",
+            "._minexponent.MinexponentValidator",
+            "._linewidth.LinewidthValidator",
+            "._linecolor.LinecolorValidator",
+            "._labelsuffix.LabelsuffixValidator",
+            "._labelprefix.LabelprefixValidator",
+            "._labelpadding.LabelpaddingValidator",
+            "._labelalias.LabelaliasValidator",
+            "._gridwidth.GridwidthValidator",
+            "._griddash.GriddashValidator",
+            "._gridcolor.GridcolorValidator",
+            "._fixedrange.FixedrangeValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._endlinewidth.EndlinewidthValidator",
+            "._endlinecolor.EndlinecolorValidator",
+            "._endline.EndlineValidator",
+            "._dtick.DtickValidator",
+            "._color.ColorValidator",
+            "._cheatertype.CheatertypeValidator",
+            "._categoryorder.CategoryorderValidator",
+            "._categoryarraysrc.CategoryarraysrcValidator",
+            "._categoryarray.CategoryarrayValidator",
+            "._autotypenumbers.AutotypenumbersValidator",
+            "._autorange.AutorangeValidator",
+            "._arraytick0.Arraytick0Validator",
+            "._arraydtick.ArraydtickValidator",
+        ],
+    )
diff --git a/plotly/validators/carpet/baxis/tickfont/__init__.py b/plotly/validators/carpet/baxis/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/carpet/baxis/tickfont/__init__.py
+++ b/plotly/validators/carpet/baxis/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/carpet/baxis/tickformatstop/__init__.py b/plotly/validators/carpet/baxis/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/carpet/baxis/tickformatstop/__init__.py
+++ b/plotly/validators/carpet/baxis/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/carpet/baxis/title/__init__.py b/plotly/validators/carpet/baxis/title/__init__.py
index 5a003b67cd8..ff2ee4cb29f 100644
--- a/plotly/validators/carpet/baxis/title/__init__.py
+++ b/plotly/validators/carpet/baxis/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._offset.OffsetValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._offset import OffsetValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._offset.OffsetValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/carpet/baxis/title/font/__init__.py b/plotly/validators/carpet/baxis/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/carpet/baxis/title/font/__init__.py
+++ b/plotly/validators/carpet/baxis/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/carpet/font/__init__.py b/plotly/validators/carpet/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/carpet/font/__init__.py
+++ b/plotly/validators/carpet/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/carpet/legendgrouptitle/__init__.py b/plotly/validators/carpet/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/carpet/legendgrouptitle/__init__.py
+++ b/plotly/validators/carpet/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/carpet/legendgrouptitle/font/__init__.py b/plotly/validators/carpet/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/carpet/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/carpet/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/carpet/stream/__init__.py b/plotly/validators/carpet/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/carpet/stream/__init__.py
+++ b/plotly/validators/carpet/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/choropleth/__init__.py b/plotly/validators/choropleth/__init__.py
index f988bf1cc8f..b1f72cd16e9 100644
--- a/plotly/validators/choropleth/__init__.py
+++ b/plotly/validators/choropleth/__init__.py
@@ -1,57 +1,109 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zmin.ZminValidator",
-        "._zmid.ZmidValidator",
-        "._zmax.ZmaxValidator",
-        "._zauto.ZautoValidator",
-        "._z.ZValidator",
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._showscale.ShowscaleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._reversescale.ReversescaleValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._locationssrc.LocationssrcValidator",
-        "._locations.LocationsValidator",
-        "._locationmode.LocationmodeValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._geojson.GeojsonValidator",
-        "._geo.GeoValidator",
-        "._featureidkey.FeatureidkeyValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zmin import ZminValidator
+    from ._zmid import ZmidValidator
+    from ._zmax import ZmaxValidator
+    from ._zauto import ZautoValidator
+    from ._z import ZValidator
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._showscale import ShowscaleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._reversescale import ReversescaleValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._locationssrc import LocationssrcValidator
+    from ._locations import LocationsValidator
+    from ._locationmode import LocationmodeValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._geojson import GeojsonValidator
+    from ._geo import GeoValidator
+    from ._featureidkey import FeatureidkeyValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zmin.ZminValidator",
+            "._zmid.ZmidValidator",
+            "._zmax.ZmaxValidator",
+            "._zauto.ZautoValidator",
+            "._z.ZValidator",
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._showscale.ShowscaleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._reversescale.ReversescaleValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._locationssrc.LocationssrcValidator",
+            "._locations.LocationsValidator",
+            "._locationmode.LocationmodeValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._geojson.GeojsonValidator",
+            "._geo.GeoValidator",
+            "._featureidkey.FeatureidkeyValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/choropleth/_geojson.py b/plotly/validators/choropleth/_geojson.py
index 526993193cf..4a91823a388 100644
--- a/plotly/validators/choropleth/_geojson.py
+++ b/plotly/validators/choropleth/_geojson.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -5,10 +9,9 @@
 
 
 class GeojsonValidator(_bv.AnyValidator):
-    def __init__(self, plotly_name="geojson", parent_name="choropleth", **kwargs):
-        super().__init__(
-            plotly_name,
-            parent_name,
-            edit_type=kwargs.pop("edit_type", "calc"),
-            **kwargs,
-        )
+    def __init__(self, plotly_name='geojson',
+                       parent_name='choropleth',
+                       **kwargs):
+        super().__init__(plotly_name, parent_name,
+                 edit_type=kwargs.pop('edit_type', 'calc'),
+        **kwargs)
\ No newline at end of file
diff --git a/plotly/validators/choropleth/colorbar/__init__.py b/plotly/validators/choropleth/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/choropleth/colorbar/__init__.py
+++ b/plotly/validators/choropleth/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/choropleth/colorbar/tickfont/__init__.py b/plotly/validators/choropleth/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/choropleth/colorbar/tickfont/__init__.py
+++ b/plotly/validators/choropleth/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/choropleth/colorbar/tickformatstop/__init__.py b/plotly/validators/choropleth/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/choropleth/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/choropleth/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/choropleth/colorbar/title/__init__.py b/plotly/validators/choropleth/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/choropleth/colorbar/title/__init__.py
+++ b/plotly/validators/choropleth/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/choropleth/colorbar/title/font/__init__.py b/plotly/validators/choropleth/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/choropleth/colorbar/title/font/__init__.py
+++ b/plotly/validators/choropleth/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/choropleth/hoverlabel/__init__.py b/plotly/validators/choropleth/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/choropleth/hoverlabel/__init__.py
+++ b/plotly/validators/choropleth/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/choropleth/hoverlabel/font/__init__.py b/plotly/validators/choropleth/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/choropleth/hoverlabel/font/__init__.py
+++ b/plotly/validators/choropleth/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/choropleth/legendgrouptitle/__init__.py b/plotly/validators/choropleth/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/choropleth/legendgrouptitle/__init__.py
+++ b/plotly/validators/choropleth/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/choropleth/legendgrouptitle/font/__init__.py b/plotly/validators/choropleth/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/choropleth/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/choropleth/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/choropleth/marker/__init__.py b/plotly/validators/choropleth/marker/__init__.py
index 3f0890dec84..711bedd189e 100644
--- a/plotly/validators/choropleth/marker/__init__.py
+++ b/plotly/validators/choropleth/marker/__init__.py
@@ -1,12 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._line.LineValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._line import LineValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._line.LineValidator",
+        ],
+    )
diff --git a/plotly/validators/choropleth/marker/line/__init__.py b/plotly/validators/choropleth/marker/line/__init__.py
index ca6d32f725b..a2b9e1ae50c 100644
--- a/plotly/validators/choropleth/marker/line/__init__.py
+++ b/plotly/validators/choropleth/marker/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/choropleth/selected/__init__.py b/plotly/validators/choropleth/selected/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/choropleth/selected/__init__.py
+++ b/plotly/validators/choropleth/selected/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/choropleth/selected/marker/__init__.py b/plotly/validators/choropleth/selected/marker/__init__.py
index ea80a8a0f0d..049134a716d 100644
--- a/plotly/validators/choropleth/selected/marker/__init__.py
+++ b/plotly/validators/choropleth/selected/marker/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator"]
+    )
diff --git a/plotly/validators/choropleth/stream/__init__.py b/plotly/validators/choropleth/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/choropleth/stream/__init__.py
+++ b/plotly/validators/choropleth/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/choropleth/unselected/__init__.py b/plotly/validators/choropleth/unselected/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/choropleth/unselected/__init__.py
+++ b/plotly/validators/choropleth/unselected/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/choropleth/unselected/marker/__init__.py b/plotly/validators/choropleth/unselected/marker/__init__.py
index ea80a8a0f0d..049134a716d 100644
--- a/plotly/validators/choropleth/unselected/marker/__init__.py
+++ b/plotly/validators/choropleth/unselected/marker/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator"]
+    )
diff --git a/plotly/validators/choroplethmap/__init__.py b/plotly/validators/choroplethmap/__init__.py
index 6cc11beb49d..7fe8fbdc42c 100644
--- a/plotly/validators/choroplethmap/__init__.py
+++ b/plotly/validators/choroplethmap/__init__.py
@@ -1,57 +1,109 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zmin.ZminValidator",
-        "._zmid.ZmidValidator",
-        "._zmax.ZmaxValidator",
-        "._zauto.ZautoValidator",
-        "._z.ZValidator",
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._subplot.SubplotValidator",
-        "._stream.StreamValidator",
-        "._showscale.ShowscaleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._reversescale.ReversescaleValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._locationssrc.LocationssrcValidator",
-        "._locations.LocationsValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._geojson.GeojsonValidator",
-        "._featureidkey.FeatureidkeyValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._below.BelowValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zmin import ZminValidator
+    from ._zmid import ZmidValidator
+    from ._zmax import ZmaxValidator
+    from ._zauto import ZautoValidator
+    from ._z import ZValidator
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._subplot import SubplotValidator
+    from ._stream import StreamValidator
+    from ._showscale import ShowscaleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._reversescale import ReversescaleValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._locationssrc import LocationssrcValidator
+    from ._locations import LocationsValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._geojson import GeojsonValidator
+    from ._featureidkey import FeatureidkeyValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._below import BelowValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zmin.ZminValidator",
+            "._zmid.ZmidValidator",
+            "._zmax.ZmaxValidator",
+            "._zauto.ZautoValidator",
+            "._z.ZValidator",
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._subplot.SubplotValidator",
+            "._stream.StreamValidator",
+            "._showscale.ShowscaleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._reversescale.ReversescaleValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._locationssrc.LocationssrcValidator",
+            "._locations.LocationsValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._geojson.GeojsonValidator",
+            "._featureidkey.FeatureidkeyValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._below.BelowValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmap/_geojson.py b/plotly/validators/choroplethmap/_geojson.py
index bde48c2a79d..773a65cd3e6 100644
--- a/plotly/validators/choroplethmap/_geojson.py
+++ b/plotly/validators/choroplethmap/_geojson.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -5,10 +9,9 @@
 
 
 class GeojsonValidator(_bv.AnyValidator):
-    def __init__(self, plotly_name="geojson", parent_name="choroplethmap", **kwargs):
-        super().__init__(
-            plotly_name,
-            parent_name,
-            edit_type=kwargs.pop("edit_type", "calc"),
-            **kwargs,
-        )
+    def __init__(self, plotly_name='geojson',
+                       parent_name='choroplethmap',
+                       **kwargs):
+        super().__init__(plotly_name, parent_name,
+                 edit_type=kwargs.pop('edit_type', 'calc'),
+        **kwargs)
\ No newline at end of file
diff --git a/plotly/validators/choroplethmap/colorbar/__init__.py b/plotly/validators/choroplethmap/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/choroplethmap/colorbar/__init__.py
+++ b/plotly/validators/choroplethmap/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmap/colorbar/tickfont/__init__.py b/plotly/validators/choroplethmap/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/choroplethmap/colorbar/tickfont/__init__.py
+++ b/plotly/validators/choroplethmap/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmap/colorbar/tickformatstop/__init__.py b/plotly/validators/choroplethmap/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/choroplethmap/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/choroplethmap/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmap/colorbar/title/__init__.py b/plotly/validators/choroplethmap/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/choroplethmap/colorbar/title/__init__.py
+++ b/plotly/validators/choroplethmap/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/choroplethmap/colorbar/title/font/__init__.py b/plotly/validators/choroplethmap/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/choroplethmap/colorbar/title/font/__init__.py
+++ b/plotly/validators/choroplethmap/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmap/hoverlabel/__init__.py b/plotly/validators/choroplethmap/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/choroplethmap/hoverlabel/__init__.py
+++ b/plotly/validators/choroplethmap/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmap/hoverlabel/font/__init__.py b/plotly/validators/choroplethmap/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/choroplethmap/hoverlabel/font/__init__.py
+++ b/plotly/validators/choroplethmap/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmap/legendgrouptitle/__init__.py b/plotly/validators/choroplethmap/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/choroplethmap/legendgrouptitle/__init__.py
+++ b/plotly/validators/choroplethmap/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/choroplethmap/legendgrouptitle/font/__init__.py b/plotly/validators/choroplethmap/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/choroplethmap/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/choroplethmap/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmap/marker/__init__.py b/plotly/validators/choroplethmap/marker/__init__.py
index 3f0890dec84..711bedd189e 100644
--- a/plotly/validators/choroplethmap/marker/__init__.py
+++ b/plotly/validators/choroplethmap/marker/__init__.py
@@ -1,12 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._line.LineValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._line import LineValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._line.LineValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmap/marker/line/__init__.py b/plotly/validators/choroplethmap/marker/line/__init__.py
index ca6d32f725b..a2b9e1ae50c 100644
--- a/plotly/validators/choroplethmap/marker/line/__init__.py
+++ b/plotly/validators/choroplethmap/marker/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmap/selected/__init__.py b/plotly/validators/choroplethmap/selected/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/choroplethmap/selected/__init__.py
+++ b/plotly/validators/choroplethmap/selected/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/choroplethmap/selected/marker/__init__.py b/plotly/validators/choroplethmap/selected/marker/__init__.py
index ea80a8a0f0d..049134a716d 100644
--- a/plotly/validators/choroplethmap/selected/marker/__init__.py
+++ b/plotly/validators/choroplethmap/selected/marker/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator"]
+    )
diff --git a/plotly/validators/choroplethmap/stream/__init__.py b/plotly/validators/choroplethmap/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/choroplethmap/stream/__init__.py
+++ b/plotly/validators/choroplethmap/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/choroplethmap/unselected/__init__.py b/plotly/validators/choroplethmap/unselected/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/choroplethmap/unselected/__init__.py
+++ b/plotly/validators/choroplethmap/unselected/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/choroplethmap/unselected/marker/__init__.py b/plotly/validators/choroplethmap/unselected/marker/__init__.py
index ea80a8a0f0d..049134a716d 100644
--- a/plotly/validators/choroplethmap/unselected/marker/__init__.py
+++ b/plotly/validators/choroplethmap/unselected/marker/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator"]
+    )
diff --git a/plotly/validators/choroplethmapbox/__init__.py b/plotly/validators/choroplethmapbox/__init__.py
index 6cc11beb49d..7fe8fbdc42c 100644
--- a/plotly/validators/choroplethmapbox/__init__.py
+++ b/plotly/validators/choroplethmapbox/__init__.py
@@ -1,57 +1,109 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zmin.ZminValidator",
-        "._zmid.ZmidValidator",
-        "._zmax.ZmaxValidator",
-        "._zauto.ZautoValidator",
-        "._z.ZValidator",
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._subplot.SubplotValidator",
-        "._stream.StreamValidator",
-        "._showscale.ShowscaleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._reversescale.ReversescaleValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._locationssrc.LocationssrcValidator",
-        "._locations.LocationsValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._geojson.GeojsonValidator",
-        "._featureidkey.FeatureidkeyValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._below.BelowValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zmin import ZminValidator
+    from ._zmid import ZmidValidator
+    from ._zmax import ZmaxValidator
+    from ._zauto import ZautoValidator
+    from ._z import ZValidator
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._subplot import SubplotValidator
+    from ._stream import StreamValidator
+    from ._showscale import ShowscaleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._reversescale import ReversescaleValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._locationssrc import LocationssrcValidator
+    from ._locations import LocationsValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._geojson import GeojsonValidator
+    from ._featureidkey import FeatureidkeyValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._below import BelowValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zmin.ZminValidator",
+            "._zmid.ZmidValidator",
+            "._zmax.ZmaxValidator",
+            "._zauto.ZautoValidator",
+            "._z.ZValidator",
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._subplot.SubplotValidator",
+            "._stream.StreamValidator",
+            "._showscale.ShowscaleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._reversescale.ReversescaleValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._locationssrc.LocationssrcValidator",
+            "._locations.LocationsValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._geojson.GeojsonValidator",
+            "._featureidkey.FeatureidkeyValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._below.BelowValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmapbox/_geojson.py b/plotly/validators/choroplethmapbox/_geojson.py
index 9faa789169e..7a0fd40f84e 100644
--- a/plotly/validators/choroplethmapbox/_geojson.py
+++ b/plotly/validators/choroplethmapbox/_geojson.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -5,10 +9,9 @@
 
 
 class GeojsonValidator(_bv.AnyValidator):
-    def __init__(self, plotly_name="geojson", parent_name="choroplethmapbox", **kwargs):
-        super().__init__(
-            plotly_name,
-            parent_name,
-            edit_type=kwargs.pop("edit_type", "calc"),
-            **kwargs,
-        )
+    def __init__(self, plotly_name='geojson',
+                       parent_name='choroplethmapbox',
+                       **kwargs):
+        super().__init__(plotly_name, parent_name,
+                 edit_type=kwargs.pop('edit_type', 'calc'),
+        **kwargs)
\ No newline at end of file
diff --git a/plotly/validators/choroplethmapbox/colorbar/__init__.py b/plotly/validators/choroplethmapbox/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/choroplethmapbox/colorbar/__init__.py
+++ b/plotly/validators/choroplethmapbox/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmapbox/colorbar/tickfont/__init__.py b/plotly/validators/choroplethmapbox/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/choroplethmapbox/colorbar/tickfont/__init__.py
+++ b/plotly/validators/choroplethmapbox/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmapbox/colorbar/tickformatstop/__init__.py b/plotly/validators/choroplethmapbox/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/choroplethmapbox/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/choroplethmapbox/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmapbox/colorbar/title/__init__.py b/plotly/validators/choroplethmapbox/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/choroplethmapbox/colorbar/title/__init__.py
+++ b/plotly/validators/choroplethmapbox/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/choroplethmapbox/colorbar/title/font/__init__.py b/plotly/validators/choroplethmapbox/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/choroplethmapbox/colorbar/title/font/__init__.py
+++ b/plotly/validators/choroplethmapbox/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmapbox/hoverlabel/__init__.py b/plotly/validators/choroplethmapbox/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/choroplethmapbox/hoverlabel/__init__.py
+++ b/plotly/validators/choroplethmapbox/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmapbox/hoverlabel/font/__init__.py b/plotly/validators/choroplethmapbox/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/choroplethmapbox/hoverlabel/font/__init__.py
+++ b/plotly/validators/choroplethmapbox/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmapbox/legendgrouptitle/__init__.py b/plotly/validators/choroplethmapbox/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/choroplethmapbox/legendgrouptitle/__init__.py
+++ b/plotly/validators/choroplethmapbox/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/choroplethmapbox/legendgrouptitle/font/__init__.py b/plotly/validators/choroplethmapbox/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/choroplethmapbox/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/choroplethmapbox/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmapbox/marker/__init__.py b/plotly/validators/choroplethmapbox/marker/__init__.py
index 3f0890dec84..711bedd189e 100644
--- a/plotly/validators/choroplethmapbox/marker/__init__.py
+++ b/plotly/validators/choroplethmapbox/marker/__init__.py
@@ -1,12 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._line.LineValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._line import LineValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._line.LineValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmapbox/marker/line/__init__.py b/plotly/validators/choroplethmapbox/marker/line/__init__.py
index ca6d32f725b..a2b9e1ae50c 100644
--- a/plotly/validators/choroplethmapbox/marker/line/__init__.py
+++ b/plotly/validators/choroplethmapbox/marker/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/choroplethmapbox/selected/__init__.py b/plotly/validators/choroplethmapbox/selected/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/choroplethmapbox/selected/__init__.py
+++ b/plotly/validators/choroplethmapbox/selected/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/choroplethmapbox/selected/marker/__init__.py b/plotly/validators/choroplethmapbox/selected/marker/__init__.py
index ea80a8a0f0d..049134a716d 100644
--- a/plotly/validators/choroplethmapbox/selected/marker/__init__.py
+++ b/plotly/validators/choroplethmapbox/selected/marker/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator"]
+    )
diff --git a/plotly/validators/choroplethmapbox/stream/__init__.py b/plotly/validators/choroplethmapbox/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/choroplethmapbox/stream/__init__.py
+++ b/plotly/validators/choroplethmapbox/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/choroplethmapbox/unselected/__init__.py b/plotly/validators/choroplethmapbox/unselected/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/choroplethmapbox/unselected/__init__.py
+++ b/plotly/validators/choroplethmapbox/unselected/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/choroplethmapbox/unselected/marker/__init__.py b/plotly/validators/choroplethmapbox/unselected/marker/__init__.py
index ea80a8a0f0d..049134a716d 100644
--- a/plotly/validators/choroplethmapbox/unselected/marker/__init__.py
+++ b/plotly/validators/choroplethmapbox/unselected/marker/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator"]
+    )
diff --git a/plotly/validators/cone/__init__.py b/plotly/validators/cone/__init__.py
index 7d1632100c2..4d36d20a24f 100644
--- a/plotly/validators/cone/__init__.py
+++ b/plotly/validators/cone/__init__.py
@@ -1,70 +1,135 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zhoverformat.ZhoverformatValidator",
-        "._z.ZValidator",
-        "._ysrc.YsrcValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._x.XValidator",
-        "._wsrc.WsrcValidator",
-        "._whoverformat.WhoverformatValidator",
-        "._w.WValidator",
-        "._vsrc.VsrcValidator",
-        "._visible.VisibleValidator",
-        "._vhoverformat.VhoverformatValidator",
-        "._v.VValidator",
-        "._usrc.UsrcValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._uhoverformat.UhoverformatValidator",
-        "._u.UValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._sizeref.SizerefValidator",
-        "._sizemode.SizemodeValidator",
-        "._showscale.ShowscaleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._scene.SceneValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._lightposition.LightpositionValidator",
-        "._lighting.LightingValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-        "._anchor.AnchorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zhoverformat import ZhoverformatValidator
+    from ._z import ZValidator
+    from ._ysrc import YsrcValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._x import XValidator
+    from ._wsrc import WsrcValidator
+    from ._whoverformat import WhoverformatValidator
+    from ._w import WValidator
+    from ._vsrc import VsrcValidator
+    from ._visible import VisibleValidator
+    from ._vhoverformat import VhoverformatValidator
+    from ._v import VValidator
+    from ._usrc import UsrcValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._uhoverformat import UhoverformatValidator
+    from ._u import UValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._sizeref import SizerefValidator
+    from ._sizemode import SizemodeValidator
+    from ._showscale import ShowscaleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._scene import SceneValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._lightposition import LightpositionValidator
+    from ._lighting import LightingValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+    from ._anchor import AnchorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zhoverformat.ZhoverformatValidator",
+            "._z.ZValidator",
+            "._ysrc.YsrcValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._x.XValidator",
+            "._wsrc.WsrcValidator",
+            "._whoverformat.WhoverformatValidator",
+            "._w.WValidator",
+            "._vsrc.VsrcValidator",
+            "._visible.VisibleValidator",
+            "._vhoverformat.VhoverformatValidator",
+            "._v.VValidator",
+            "._usrc.UsrcValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._uhoverformat.UhoverformatValidator",
+            "._u.UValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._sizeref.SizerefValidator",
+            "._sizemode.SizemodeValidator",
+            "._showscale.ShowscaleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._scene.SceneValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._lightposition.LightpositionValidator",
+            "._lighting.LightingValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+            "._anchor.AnchorValidator",
+        ],
+    )
diff --git a/plotly/validators/cone/colorbar/__init__.py b/plotly/validators/cone/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/cone/colorbar/__init__.py
+++ b/plotly/validators/cone/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/cone/colorbar/tickfont/__init__.py b/plotly/validators/cone/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/cone/colorbar/tickfont/__init__.py
+++ b/plotly/validators/cone/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/cone/colorbar/tickformatstop/__init__.py b/plotly/validators/cone/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/cone/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/cone/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/cone/colorbar/title/__init__.py b/plotly/validators/cone/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/cone/colorbar/title/__init__.py
+++ b/plotly/validators/cone/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/cone/colorbar/title/font/__init__.py b/plotly/validators/cone/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/cone/colorbar/title/font/__init__.py
+++ b/plotly/validators/cone/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/cone/hoverlabel/__init__.py b/plotly/validators/cone/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/cone/hoverlabel/__init__.py
+++ b/plotly/validators/cone/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/cone/hoverlabel/font/__init__.py b/plotly/validators/cone/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/cone/hoverlabel/font/__init__.py
+++ b/plotly/validators/cone/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/cone/legendgrouptitle/__init__.py b/plotly/validators/cone/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/cone/legendgrouptitle/__init__.py
+++ b/plotly/validators/cone/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/cone/legendgrouptitle/font/__init__.py b/plotly/validators/cone/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/cone/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/cone/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/cone/lighting/__init__.py b/plotly/validators/cone/lighting/__init__.py
index 1f11e1b86fc..028351f35d6 100644
--- a/plotly/validators/cone/lighting/__init__.py
+++ b/plotly/validators/cone/lighting/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._vertexnormalsepsilon.VertexnormalsepsilonValidator",
-        "._specular.SpecularValidator",
-        "._roughness.RoughnessValidator",
-        "._fresnel.FresnelValidator",
-        "._facenormalsepsilon.FacenormalsepsilonValidator",
-        "._diffuse.DiffuseValidator",
-        "._ambient.AmbientValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._vertexnormalsepsilon import VertexnormalsepsilonValidator
+    from ._specular import SpecularValidator
+    from ._roughness import RoughnessValidator
+    from ._fresnel import FresnelValidator
+    from ._facenormalsepsilon import FacenormalsepsilonValidator
+    from ._diffuse import DiffuseValidator
+    from ._ambient import AmbientValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._vertexnormalsepsilon.VertexnormalsepsilonValidator",
+            "._specular.SpecularValidator",
+            "._roughness.RoughnessValidator",
+            "._fresnel.FresnelValidator",
+            "._facenormalsepsilon.FacenormalsepsilonValidator",
+            "._diffuse.DiffuseValidator",
+            "._ambient.AmbientValidator",
+        ],
+    )
diff --git a/plotly/validators/cone/lightposition/__init__.py b/plotly/validators/cone/lightposition/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/cone/lightposition/__init__.py
+++ b/plotly/validators/cone/lightposition/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/cone/stream/__init__.py b/plotly/validators/cone/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/cone/stream/__init__.py
+++ b/plotly/validators/cone/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/contour/__init__.py b/plotly/validators/contour/__init__.py
index a6dc766c996..23cad4b2bf3 100644
--- a/plotly/validators/contour/__init__.py
+++ b/plotly/validators/contour/__init__.py
@@ -1,82 +1,159 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zorder.ZorderValidator",
-        "._zmin.ZminValidator",
-        "._zmid.ZmidValidator",
-        "._zmax.ZmaxValidator",
-        "._zhoverformat.ZhoverformatValidator",
-        "._zauto.ZautoValidator",
-        "._z.ZValidator",
-        "._ytype.YtypeValidator",
-        "._ysrc.YsrcValidator",
-        "._yperiodalignment.YperiodalignmentValidator",
-        "._yperiod0.Yperiod0Validator",
-        "._yperiod.YperiodValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._ycalendar.YcalendarValidator",
-        "._yaxis.YaxisValidator",
-        "._y0.Y0Validator",
-        "._y.YValidator",
-        "._xtype.XtypeValidator",
-        "._xsrc.XsrcValidator",
-        "._xperiodalignment.XperiodalignmentValidator",
-        "._xperiod0.Xperiod0Validator",
-        "._xperiod.XperiodValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xcalendar.XcalendarValidator",
-        "._xaxis.XaxisValidator",
-        "._x0.X0Validator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._transpose.TransposeValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._showscale.ShowscaleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacity.OpacityValidator",
-        "._ncontours.NcontoursValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverongaps.HoverongapsValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._fillcolor.FillcolorValidator",
-        "._dy.DyValidator",
-        "._dx.DxValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._contours.ContoursValidator",
-        "._connectgaps.ConnectgapsValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._autocontour.AutocontourValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zorder import ZorderValidator
+    from ._zmin import ZminValidator
+    from ._zmid import ZmidValidator
+    from ._zmax import ZmaxValidator
+    from ._zhoverformat import ZhoverformatValidator
+    from ._zauto import ZautoValidator
+    from ._z import ZValidator
+    from ._ytype import YtypeValidator
+    from ._ysrc import YsrcValidator
+    from ._yperiodalignment import YperiodalignmentValidator
+    from ._yperiod0 import Yperiod0Validator
+    from ._yperiod import YperiodValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._ycalendar import YcalendarValidator
+    from ._yaxis import YaxisValidator
+    from ._y0 import Y0Validator
+    from ._y import YValidator
+    from ._xtype import XtypeValidator
+    from ._xsrc import XsrcValidator
+    from ._xperiodalignment import XperiodalignmentValidator
+    from ._xperiod0 import Xperiod0Validator
+    from ._xperiod import XperiodValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xcalendar import XcalendarValidator
+    from ._xaxis import XaxisValidator
+    from ._x0 import X0Validator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._transpose import TransposeValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._showscale import ShowscaleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacity import OpacityValidator
+    from ._ncontours import NcontoursValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverongaps import HoverongapsValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._fillcolor import FillcolorValidator
+    from ._dy import DyValidator
+    from ._dx import DxValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._contours import ContoursValidator
+    from ._connectgaps import ConnectgapsValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._autocontour import AutocontourValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zorder.ZorderValidator",
+            "._zmin.ZminValidator",
+            "._zmid.ZmidValidator",
+            "._zmax.ZmaxValidator",
+            "._zhoverformat.ZhoverformatValidator",
+            "._zauto.ZautoValidator",
+            "._z.ZValidator",
+            "._ytype.YtypeValidator",
+            "._ysrc.YsrcValidator",
+            "._yperiodalignment.YperiodalignmentValidator",
+            "._yperiod0.Yperiod0Validator",
+            "._yperiod.YperiodValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._ycalendar.YcalendarValidator",
+            "._yaxis.YaxisValidator",
+            "._y0.Y0Validator",
+            "._y.YValidator",
+            "._xtype.XtypeValidator",
+            "._xsrc.XsrcValidator",
+            "._xperiodalignment.XperiodalignmentValidator",
+            "._xperiod0.Xperiod0Validator",
+            "._xperiod.XperiodValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xcalendar.XcalendarValidator",
+            "._xaxis.XaxisValidator",
+            "._x0.X0Validator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._transpose.TransposeValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._showscale.ShowscaleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacity.OpacityValidator",
+            "._ncontours.NcontoursValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverongaps.HoverongapsValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._fillcolor.FillcolorValidator",
+            "._dy.DyValidator",
+            "._dx.DxValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._contours.ContoursValidator",
+            "._connectgaps.ConnectgapsValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._autocontour.AutocontourValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/contour/colorbar/__init__.py b/plotly/validators/contour/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/contour/colorbar/__init__.py
+++ b/plotly/validators/contour/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/contour/colorbar/tickfont/__init__.py b/plotly/validators/contour/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/contour/colorbar/tickfont/__init__.py
+++ b/plotly/validators/contour/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/contour/colorbar/tickformatstop/__init__.py b/plotly/validators/contour/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/contour/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/contour/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/contour/colorbar/title/__init__.py b/plotly/validators/contour/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/contour/colorbar/title/__init__.py
+++ b/plotly/validators/contour/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/contour/colorbar/title/font/__init__.py b/plotly/validators/contour/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/contour/colorbar/title/font/__init__.py
+++ b/plotly/validators/contour/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/contour/contours/__init__.py b/plotly/validators/contour/contours/__init__.py
index 230a907cd74..0650ad574bd 100644
--- a/plotly/validators/contour/contours/__init__.py
+++ b/plotly/validators/contour/contours/__init__.py
@@ -1,20 +1,35 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._type.TypeValidator",
-        "._start.StartValidator",
-        "._size.SizeValidator",
-        "._showlines.ShowlinesValidator",
-        "._showlabels.ShowlabelsValidator",
-        "._operation.OperationValidator",
-        "._labelformat.LabelformatValidator",
-        "._labelfont.LabelfontValidator",
-        "._end.EndValidator",
-        "._coloring.ColoringValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._type import TypeValidator
+    from ._start import StartValidator
+    from ._size import SizeValidator
+    from ._showlines import ShowlinesValidator
+    from ._showlabels import ShowlabelsValidator
+    from ._operation import OperationValidator
+    from ._labelformat import LabelformatValidator
+    from ._labelfont import LabelfontValidator
+    from ._end import EndValidator
+    from ._coloring import ColoringValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._type.TypeValidator",
+            "._start.StartValidator",
+            "._size.SizeValidator",
+            "._showlines.ShowlinesValidator",
+            "._showlabels.ShowlabelsValidator",
+            "._operation.OperationValidator",
+            "._labelformat.LabelformatValidator",
+            "._labelfont.LabelfontValidator",
+            "._end.EndValidator",
+            "._coloring.ColoringValidator",
+        ],
+    )
diff --git a/plotly/validators/contour/contours/labelfont/__init__.py b/plotly/validators/contour/contours/labelfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/contour/contours/labelfont/__init__.py
+++ b/plotly/validators/contour/contours/labelfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/contour/hoverlabel/__init__.py b/plotly/validators/contour/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/contour/hoverlabel/__init__.py
+++ b/plotly/validators/contour/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/contour/hoverlabel/font/__init__.py b/plotly/validators/contour/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/contour/hoverlabel/font/__init__.py
+++ b/plotly/validators/contour/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/contour/legendgrouptitle/__init__.py b/plotly/validators/contour/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/contour/legendgrouptitle/__init__.py
+++ b/plotly/validators/contour/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/contour/legendgrouptitle/font/__init__.py b/plotly/validators/contour/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/contour/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/contour/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/contour/line/__init__.py b/plotly/validators/contour/line/__init__.py
index 13c597bfd2a..cc28ee67fea 100644
--- a/plotly/validators/contour/line/__init__.py
+++ b/plotly/validators/contour/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._smoothing.SmoothingValidator",
-        "._dash.DashValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._smoothing import SmoothingValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._smoothing.SmoothingValidator",
+            "._dash.DashValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/contour/stream/__init__.py b/plotly/validators/contour/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/contour/stream/__init__.py
+++ b/plotly/validators/contour/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/contour/textfont/__init__.py b/plotly/validators/contour/textfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/contour/textfont/__init__.py
+++ b/plotly/validators/contour/textfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/contourcarpet/__init__.py b/plotly/validators/contourcarpet/__init__.py
index 549ec31e256..b65146b937e 100644
--- a/plotly/validators/contourcarpet/__init__.py
+++ b/plotly/validators/contourcarpet/__init__.py
@@ -1,63 +1,121 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zorder.ZorderValidator",
-        "._zmin.ZminValidator",
-        "._zmid.ZmidValidator",
-        "._zmax.ZmaxValidator",
-        "._zauto.ZautoValidator",
-        "._z.ZValidator",
-        "._yaxis.YaxisValidator",
-        "._xaxis.XaxisValidator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._transpose.TransposeValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._showscale.ShowscaleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacity.OpacityValidator",
-        "._ncontours.NcontoursValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._fillcolor.FillcolorValidator",
-        "._db.DbValidator",
-        "._da.DaValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._contours.ContoursValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._carpet.CarpetValidator",
-        "._btype.BtypeValidator",
-        "._bsrc.BsrcValidator",
-        "._b0.B0Validator",
-        "._b.BValidator",
-        "._autocontour.AutocontourValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-        "._atype.AtypeValidator",
-        "._asrc.AsrcValidator",
-        "._a0.A0Validator",
-        "._a.AValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zorder import ZorderValidator
+    from ._zmin import ZminValidator
+    from ._zmid import ZmidValidator
+    from ._zmax import ZmaxValidator
+    from ._zauto import ZautoValidator
+    from ._z import ZValidator
+    from ._yaxis import YaxisValidator
+    from ._xaxis import XaxisValidator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._transpose import TransposeValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._showscale import ShowscaleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacity import OpacityValidator
+    from ._ncontours import NcontoursValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._fillcolor import FillcolorValidator
+    from ._db import DbValidator
+    from ._da import DaValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._contours import ContoursValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._carpet import CarpetValidator
+    from ._btype import BtypeValidator
+    from ._bsrc import BsrcValidator
+    from ._b0 import B0Validator
+    from ._b import BValidator
+    from ._autocontour import AutocontourValidator
+    from ._autocolorscale import AutocolorscaleValidator
+    from ._atype import AtypeValidator
+    from ._asrc import AsrcValidator
+    from ._a0 import A0Validator
+    from ._a import AValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zorder.ZorderValidator",
+            "._zmin.ZminValidator",
+            "._zmid.ZmidValidator",
+            "._zmax.ZmaxValidator",
+            "._zauto.ZautoValidator",
+            "._z.ZValidator",
+            "._yaxis.YaxisValidator",
+            "._xaxis.XaxisValidator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._transpose.TransposeValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._showscale.ShowscaleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacity.OpacityValidator",
+            "._ncontours.NcontoursValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._fillcolor.FillcolorValidator",
+            "._db.DbValidator",
+            "._da.DaValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._contours.ContoursValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._carpet.CarpetValidator",
+            "._btype.BtypeValidator",
+            "._bsrc.BsrcValidator",
+            "._b0.B0Validator",
+            "._b.BValidator",
+            "._autocontour.AutocontourValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+            "._atype.AtypeValidator",
+            "._asrc.AsrcValidator",
+            "._a0.A0Validator",
+            "._a.AValidator",
+        ],
+    )
diff --git a/plotly/validators/contourcarpet/colorbar/__init__.py b/plotly/validators/contourcarpet/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/contourcarpet/colorbar/__init__.py
+++ b/plotly/validators/contourcarpet/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/contourcarpet/colorbar/tickfont/__init__.py b/plotly/validators/contourcarpet/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/contourcarpet/colorbar/tickfont/__init__.py
+++ b/plotly/validators/contourcarpet/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/contourcarpet/colorbar/tickformatstop/__init__.py b/plotly/validators/contourcarpet/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/contourcarpet/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/contourcarpet/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/contourcarpet/colorbar/title/__init__.py b/plotly/validators/contourcarpet/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/contourcarpet/colorbar/title/__init__.py
+++ b/plotly/validators/contourcarpet/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/contourcarpet/colorbar/title/font/__init__.py b/plotly/validators/contourcarpet/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/contourcarpet/colorbar/title/font/__init__.py
+++ b/plotly/validators/contourcarpet/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/contourcarpet/contours/__init__.py b/plotly/validators/contourcarpet/contours/__init__.py
index 230a907cd74..0650ad574bd 100644
--- a/plotly/validators/contourcarpet/contours/__init__.py
+++ b/plotly/validators/contourcarpet/contours/__init__.py
@@ -1,20 +1,35 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._type.TypeValidator",
-        "._start.StartValidator",
-        "._size.SizeValidator",
-        "._showlines.ShowlinesValidator",
-        "._showlabels.ShowlabelsValidator",
-        "._operation.OperationValidator",
-        "._labelformat.LabelformatValidator",
-        "._labelfont.LabelfontValidator",
-        "._end.EndValidator",
-        "._coloring.ColoringValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._type import TypeValidator
+    from ._start import StartValidator
+    from ._size import SizeValidator
+    from ._showlines import ShowlinesValidator
+    from ._showlabels import ShowlabelsValidator
+    from ._operation import OperationValidator
+    from ._labelformat import LabelformatValidator
+    from ._labelfont import LabelfontValidator
+    from ._end import EndValidator
+    from ._coloring import ColoringValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._type.TypeValidator",
+            "._start.StartValidator",
+            "._size.SizeValidator",
+            "._showlines.ShowlinesValidator",
+            "._showlabels.ShowlabelsValidator",
+            "._operation.OperationValidator",
+            "._labelformat.LabelformatValidator",
+            "._labelfont.LabelfontValidator",
+            "._end.EndValidator",
+            "._coloring.ColoringValidator",
+        ],
+    )
diff --git a/plotly/validators/contourcarpet/contours/labelfont/__init__.py b/plotly/validators/contourcarpet/contours/labelfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/contourcarpet/contours/labelfont/__init__.py
+++ b/plotly/validators/contourcarpet/contours/labelfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/contourcarpet/legendgrouptitle/__init__.py b/plotly/validators/contourcarpet/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/contourcarpet/legendgrouptitle/__init__.py
+++ b/plotly/validators/contourcarpet/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/contourcarpet/legendgrouptitle/font/__init__.py b/plotly/validators/contourcarpet/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/contourcarpet/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/contourcarpet/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/contourcarpet/line/__init__.py b/plotly/validators/contourcarpet/line/__init__.py
index 13c597bfd2a..cc28ee67fea 100644
--- a/plotly/validators/contourcarpet/line/__init__.py
+++ b/plotly/validators/contourcarpet/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._smoothing.SmoothingValidator",
-        "._dash.DashValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._smoothing import SmoothingValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._smoothing.SmoothingValidator",
+            "._dash.DashValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/contourcarpet/stream/__init__.py b/plotly/validators/contourcarpet/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/contourcarpet/stream/__init__.py
+++ b/plotly/validators/contourcarpet/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/densitymap/__init__.py b/plotly/validators/densitymap/__init__.py
index 7ccb6f00425..20b2797e60d 100644
--- a/plotly/validators/densitymap/__init__.py
+++ b/plotly/validators/densitymap/__init__.py
@@ -1,56 +1,107 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zmin.ZminValidator",
-        "._zmid.ZmidValidator",
-        "._zmax.ZmaxValidator",
-        "._zauto.ZautoValidator",
-        "._z.ZValidator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._subplot.SubplotValidator",
-        "._stream.StreamValidator",
-        "._showscale.ShowscaleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._reversescale.ReversescaleValidator",
-        "._radiussrc.RadiussrcValidator",
-        "._radius.RadiusValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._lonsrc.LonsrcValidator",
-        "._lon.LonValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._latsrc.LatsrcValidator",
-        "._lat.LatValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._below.BelowValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zmin import ZminValidator
+    from ._zmid import ZmidValidator
+    from ._zmax import ZmaxValidator
+    from ._zauto import ZautoValidator
+    from ._z import ZValidator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._subplot import SubplotValidator
+    from ._stream import StreamValidator
+    from ._showscale import ShowscaleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._reversescale import ReversescaleValidator
+    from ._radiussrc import RadiussrcValidator
+    from ._radius import RadiusValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._lonsrc import LonsrcValidator
+    from ._lon import LonValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._latsrc import LatsrcValidator
+    from ._lat import LatValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._below import BelowValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zmin.ZminValidator",
+            "._zmid.ZmidValidator",
+            "._zmax.ZmaxValidator",
+            "._zauto.ZautoValidator",
+            "._z.ZValidator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._subplot.SubplotValidator",
+            "._stream.StreamValidator",
+            "._showscale.ShowscaleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._reversescale.ReversescaleValidator",
+            "._radiussrc.RadiussrcValidator",
+            "._radius.RadiusValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._lonsrc.LonsrcValidator",
+            "._lon.LonValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._latsrc.LatsrcValidator",
+            "._lat.LatValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._below.BelowValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/densitymap/colorbar/__init__.py b/plotly/validators/densitymap/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/densitymap/colorbar/__init__.py
+++ b/plotly/validators/densitymap/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/densitymap/colorbar/tickfont/__init__.py b/plotly/validators/densitymap/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/densitymap/colorbar/tickfont/__init__.py
+++ b/plotly/validators/densitymap/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/densitymap/colorbar/tickformatstop/__init__.py b/plotly/validators/densitymap/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/densitymap/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/densitymap/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/densitymap/colorbar/title/__init__.py b/plotly/validators/densitymap/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/densitymap/colorbar/title/__init__.py
+++ b/plotly/validators/densitymap/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/densitymap/colorbar/title/font/__init__.py b/plotly/validators/densitymap/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/densitymap/colorbar/title/font/__init__.py
+++ b/plotly/validators/densitymap/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/densitymap/hoverlabel/__init__.py b/plotly/validators/densitymap/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/densitymap/hoverlabel/__init__.py
+++ b/plotly/validators/densitymap/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/densitymap/hoverlabel/font/__init__.py b/plotly/validators/densitymap/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/densitymap/hoverlabel/font/__init__.py
+++ b/plotly/validators/densitymap/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/densitymap/legendgrouptitle/__init__.py b/plotly/validators/densitymap/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/densitymap/legendgrouptitle/__init__.py
+++ b/plotly/validators/densitymap/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/densitymap/legendgrouptitle/font/__init__.py b/plotly/validators/densitymap/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/densitymap/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/densitymap/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/densitymap/stream/__init__.py b/plotly/validators/densitymap/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/densitymap/stream/__init__.py
+++ b/plotly/validators/densitymap/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/densitymapbox/__init__.py b/plotly/validators/densitymapbox/__init__.py
index 7ccb6f00425..20b2797e60d 100644
--- a/plotly/validators/densitymapbox/__init__.py
+++ b/plotly/validators/densitymapbox/__init__.py
@@ -1,56 +1,107 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zmin.ZminValidator",
-        "._zmid.ZmidValidator",
-        "._zmax.ZmaxValidator",
-        "._zauto.ZautoValidator",
-        "._z.ZValidator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._subplot.SubplotValidator",
-        "._stream.StreamValidator",
-        "._showscale.ShowscaleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._reversescale.ReversescaleValidator",
-        "._radiussrc.RadiussrcValidator",
-        "._radius.RadiusValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._lonsrc.LonsrcValidator",
-        "._lon.LonValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._latsrc.LatsrcValidator",
-        "._lat.LatValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._below.BelowValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zmin import ZminValidator
+    from ._zmid import ZmidValidator
+    from ._zmax import ZmaxValidator
+    from ._zauto import ZautoValidator
+    from ._z import ZValidator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._subplot import SubplotValidator
+    from ._stream import StreamValidator
+    from ._showscale import ShowscaleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._reversescale import ReversescaleValidator
+    from ._radiussrc import RadiussrcValidator
+    from ._radius import RadiusValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._lonsrc import LonsrcValidator
+    from ._lon import LonValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._latsrc import LatsrcValidator
+    from ._lat import LatValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._below import BelowValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zmin.ZminValidator",
+            "._zmid.ZmidValidator",
+            "._zmax.ZmaxValidator",
+            "._zauto.ZautoValidator",
+            "._z.ZValidator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._subplot.SubplotValidator",
+            "._stream.StreamValidator",
+            "._showscale.ShowscaleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._reversescale.ReversescaleValidator",
+            "._radiussrc.RadiussrcValidator",
+            "._radius.RadiusValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._lonsrc.LonsrcValidator",
+            "._lon.LonValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._latsrc.LatsrcValidator",
+            "._lat.LatValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._below.BelowValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/densitymapbox/colorbar/__init__.py b/plotly/validators/densitymapbox/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/densitymapbox/colorbar/__init__.py
+++ b/plotly/validators/densitymapbox/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/densitymapbox/colorbar/tickfont/__init__.py b/plotly/validators/densitymapbox/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/densitymapbox/colorbar/tickfont/__init__.py
+++ b/plotly/validators/densitymapbox/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/densitymapbox/colorbar/tickformatstop/__init__.py b/plotly/validators/densitymapbox/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/densitymapbox/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/densitymapbox/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/densitymapbox/colorbar/title/__init__.py b/plotly/validators/densitymapbox/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/densitymapbox/colorbar/title/__init__.py
+++ b/plotly/validators/densitymapbox/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/densitymapbox/colorbar/title/font/__init__.py b/plotly/validators/densitymapbox/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/densitymapbox/colorbar/title/font/__init__.py
+++ b/plotly/validators/densitymapbox/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/densitymapbox/hoverlabel/__init__.py b/plotly/validators/densitymapbox/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/densitymapbox/hoverlabel/__init__.py
+++ b/plotly/validators/densitymapbox/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/densitymapbox/hoverlabel/font/__init__.py b/plotly/validators/densitymapbox/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/densitymapbox/hoverlabel/font/__init__.py
+++ b/plotly/validators/densitymapbox/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/densitymapbox/legendgrouptitle/__init__.py b/plotly/validators/densitymapbox/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/densitymapbox/legendgrouptitle/__init__.py
+++ b/plotly/validators/densitymapbox/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/densitymapbox/legendgrouptitle/font/__init__.py b/plotly/validators/densitymapbox/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/densitymapbox/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/densitymapbox/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/densitymapbox/stream/__init__.py b/plotly/validators/densitymapbox/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/densitymapbox/stream/__init__.py
+++ b/plotly/validators/densitymapbox/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/frame/__init__.py b/plotly/validators/frame/__init__.py
index b7de62afa73..447e3026277 100644
--- a/plotly/validators/frame/__init__.py
+++ b/plotly/validators/frame/__init__.py
@@ -1,15 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._traces.TracesValidator",
-        "._name.NameValidator",
-        "._layout.LayoutValidator",
-        "._group.GroupValidator",
-        "._data.DataValidator",
-        "._baseframe.BaseframeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._traces import TracesValidator
+    from ._name import NameValidator
+    from ._layout import LayoutValidator
+    from ._group import GroupValidator
+    from ._data import DataValidator
+    from ._baseframe import BaseframeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._traces.TracesValidator",
+            "._name.NameValidator",
+            "._layout.LayoutValidator",
+            "._group.GroupValidator",
+            "._data.DataValidator",
+            "._baseframe.BaseframeValidator",
+        ],
+    )
diff --git a/plotly/validators/funnel/__init__.py b/plotly/validators/funnel/__init__.py
index dc46db3e259..b1419916a76 100644
--- a/plotly/validators/funnel/__init__.py
+++ b/plotly/validators/funnel/__init__.py
@@ -1,75 +1,145 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zorder.ZorderValidator",
-        "._ysrc.YsrcValidator",
-        "._yperiodalignment.YperiodalignmentValidator",
-        "._yperiod0.Yperiod0Validator",
-        "._yperiod.YperiodValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._yaxis.YaxisValidator",
-        "._y0.Y0Validator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xperiodalignment.XperiodalignmentValidator",
-        "._xperiod0.Xperiod0Validator",
-        "._xperiod.XperiodValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xaxis.XaxisValidator",
-        "._x0.X0Validator",
-        "._x.XValidator",
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textpositionsrc.TextpositionsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textinfo.TextinfoValidator",
-        "._textfont.TextfontValidator",
-        "._textangle.TextangleValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._outsidetextfont.OutsidetextfontValidator",
-        "._orientation.OrientationValidator",
-        "._opacity.OpacityValidator",
-        "._offsetgroup.OffsetgroupValidator",
-        "._offset.OffsetValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._insidetextfont.InsidetextfontValidator",
-        "._insidetextanchor.InsidetextanchorValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._dy.DyValidator",
-        "._dx.DxValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._constraintext.ConstraintextValidator",
-        "._connector.ConnectorValidator",
-        "._cliponaxis.CliponaxisValidator",
-        "._alignmentgroup.AlignmentgroupValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zorder import ZorderValidator
+    from ._ysrc import YsrcValidator
+    from ._yperiodalignment import YperiodalignmentValidator
+    from ._yperiod0 import Yperiod0Validator
+    from ._yperiod import YperiodValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._yaxis import YaxisValidator
+    from ._y0 import Y0Validator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xperiodalignment import XperiodalignmentValidator
+    from ._xperiod0 import Xperiod0Validator
+    from ._xperiod import XperiodValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xaxis import XaxisValidator
+    from ._x0 import X0Validator
+    from ._x import XValidator
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textpositionsrc import TextpositionsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textinfo import TextinfoValidator
+    from ._textfont import TextfontValidator
+    from ._textangle import TextangleValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._outsidetextfont import OutsidetextfontValidator
+    from ._orientation import OrientationValidator
+    from ._opacity import OpacityValidator
+    from ._offsetgroup import OffsetgroupValidator
+    from ._offset import OffsetValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._insidetextfont import InsidetextfontValidator
+    from ._insidetextanchor import InsidetextanchorValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._dy import DyValidator
+    from ._dx import DxValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._constraintext import ConstraintextValidator
+    from ._connector import ConnectorValidator
+    from ._cliponaxis import CliponaxisValidator
+    from ._alignmentgroup import AlignmentgroupValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zorder.ZorderValidator",
+            "._ysrc.YsrcValidator",
+            "._yperiodalignment.YperiodalignmentValidator",
+            "._yperiod0.Yperiod0Validator",
+            "._yperiod.YperiodValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._yaxis.YaxisValidator",
+            "._y0.Y0Validator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xperiodalignment.XperiodalignmentValidator",
+            "._xperiod0.Xperiod0Validator",
+            "._xperiod.XperiodValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xaxis.XaxisValidator",
+            "._x0.X0Validator",
+            "._x.XValidator",
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textpositionsrc.TextpositionsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textinfo.TextinfoValidator",
+            "._textfont.TextfontValidator",
+            "._textangle.TextangleValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._outsidetextfont.OutsidetextfontValidator",
+            "._orientation.OrientationValidator",
+            "._opacity.OpacityValidator",
+            "._offsetgroup.OffsetgroupValidator",
+            "._offset.OffsetValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._insidetextfont.InsidetextfontValidator",
+            "._insidetextanchor.InsidetextanchorValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._dy.DyValidator",
+            "._dx.DxValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._constraintext.ConstraintextValidator",
+            "._connector.ConnectorValidator",
+            "._cliponaxis.CliponaxisValidator",
+            "._alignmentgroup.AlignmentgroupValidator",
+        ],
+    )
diff --git a/plotly/validators/funnel/connector/__init__.py b/plotly/validators/funnel/connector/__init__.py
index 2e910a4ea55..bdf63f319c5 100644
--- a/plotly/validators/funnel/connector/__init__.py
+++ b/plotly/validators/funnel/connector/__init__.py
@@ -1,12 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._line.LineValidator",
-        "._fillcolor.FillcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._line import LineValidator
+    from ._fillcolor import FillcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._line.LineValidator",
+            "._fillcolor.FillcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/funnel/connector/line/__init__.py b/plotly/validators/funnel/connector/line/__init__.py
index c5140ef758d..cff41466517 100644
--- a/plotly/validators/funnel/connector/line/__init__.py
+++ b/plotly/validators/funnel/connector/line/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
+    )
diff --git a/plotly/validators/funnel/hoverlabel/__init__.py b/plotly/validators/funnel/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/funnel/hoverlabel/__init__.py
+++ b/plotly/validators/funnel/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/funnel/hoverlabel/font/__init__.py b/plotly/validators/funnel/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/funnel/hoverlabel/font/__init__.py
+++ b/plotly/validators/funnel/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/funnel/insidetextfont/__init__.py b/plotly/validators/funnel/insidetextfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/funnel/insidetextfont/__init__.py
+++ b/plotly/validators/funnel/insidetextfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/funnel/legendgrouptitle/__init__.py b/plotly/validators/funnel/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/funnel/legendgrouptitle/__init__.py
+++ b/plotly/validators/funnel/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/funnel/legendgrouptitle/font/__init__.py b/plotly/validators/funnel/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/funnel/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/funnel/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/funnel/marker/__init__.py b/plotly/validators/funnel/marker/__init__.py
index b6d36f3fe69..045be1eae4c 100644
--- a/plotly/validators/funnel/marker/__init__.py
+++ b/plotly/validators/funnel/marker/__init__.py
@@ -1,24 +1,43 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._line.LineValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._line import LineValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._line.LineValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/funnel/marker/colorbar/__init__.py b/plotly/validators/funnel/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/funnel/marker/colorbar/__init__.py
+++ b/plotly/validators/funnel/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/funnel/marker/colorbar/tickfont/__init__.py b/plotly/validators/funnel/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/funnel/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/funnel/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/funnel/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/funnel/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/funnel/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/funnel/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/funnel/marker/colorbar/title/__init__.py b/plotly/validators/funnel/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/funnel/marker/colorbar/title/__init__.py
+++ b/plotly/validators/funnel/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/funnel/marker/colorbar/title/font/__init__.py b/plotly/validators/funnel/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/funnel/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/funnel/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/funnel/marker/line/__init__.py b/plotly/validators/funnel/marker/line/__init__.py
index 4ba3ea340b5..facbe33f884 100644
--- a/plotly/validators/funnel/marker/line/__init__.py
+++ b/plotly/validators/funnel/marker/line/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._reversescale.ReversescaleValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._reversescale import ReversescaleValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._reversescale.ReversescaleValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/funnel/outsidetextfont/__init__.py b/plotly/validators/funnel/outsidetextfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/funnel/outsidetextfont/__init__.py
+++ b/plotly/validators/funnel/outsidetextfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/funnel/stream/__init__.py b/plotly/validators/funnel/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/funnel/stream/__init__.py
+++ b/plotly/validators/funnel/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/funnel/textfont/__init__.py b/plotly/validators/funnel/textfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/funnel/textfont/__init__.py
+++ b/plotly/validators/funnel/textfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/funnelarea/__init__.py b/plotly/validators/funnelarea/__init__.py
index 1619cfa1de7..4ddd3b6c1b6 100644
--- a/plotly/validators/funnelarea/__init__.py
+++ b/plotly/validators/funnelarea/__init__.py
@@ -1,55 +1,105 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._valuessrc.ValuessrcValidator",
-        "._values.ValuesValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._title.TitleValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textpositionsrc.TextpositionsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textinfo.TextinfoValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._scalegroup.ScalegroupValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._labelssrc.LabelssrcValidator",
-        "._labels.LabelsValidator",
-        "._label0.Label0Validator",
-        "._insidetextfont.InsidetextfontValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._domain.DomainValidator",
-        "._dlabel.DlabelValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._baseratio.BaseratioValidator",
-        "._aspectratio.AspectratioValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._valuessrc import ValuessrcValidator
+    from ._values import ValuesValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._title import TitleValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textpositionsrc import TextpositionsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textinfo import TextinfoValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._scalegroup import ScalegroupValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._labelssrc import LabelssrcValidator
+    from ._labels import LabelsValidator
+    from ._label0 import Label0Validator
+    from ._insidetextfont import InsidetextfontValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._domain import DomainValidator
+    from ._dlabel import DlabelValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._baseratio import BaseratioValidator
+    from ._aspectratio import AspectratioValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._valuessrc.ValuessrcValidator",
+            "._values.ValuesValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._title.TitleValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textpositionsrc.TextpositionsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textinfo.TextinfoValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._scalegroup.ScalegroupValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._labelssrc.LabelssrcValidator",
+            "._labels.LabelsValidator",
+            "._label0.Label0Validator",
+            "._insidetextfont.InsidetextfontValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._domain.DomainValidator",
+            "._dlabel.DlabelValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._baseratio.BaseratioValidator",
+            "._aspectratio.AspectratioValidator",
+        ],
+    )
diff --git a/plotly/validators/funnelarea/domain/__init__.py b/plotly/validators/funnelarea/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/funnelarea/domain/__init__.py
+++ b/plotly/validators/funnelarea/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/funnelarea/hoverlabel/__init__.py b/plotly/validators/funnelarea/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/funnelarea/hoverlabel/__init__.py
+++ b/plotly/validators/funnelarea/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/funnelarea/hoverlabel/font/__init__.py b/plotly/validators/funnelarea/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/funnelarea/hoverlabel/font/__init__.py
+++ b/plotly/validators/funnelarea/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/funnelarea/insidetextfont/__init__.py b/plotly/validators/funnelarea/insidetextfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/funnelarea/insidetextfont/__init__.py
+++ b/plotly/validators/funnelarea/insidetextfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/funnelarea/legendgrouptitle/__init__.py b/plotly/validators/funnelarea/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/funnelarea/legendgrouptitle/__init__.py
+++ b/plotly/validators/funnelarea/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/funnelarea/legendgrouptitle/font/__init__.py b/plotly/validators/funnelarea/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/funnelarea/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/funnelarea/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/funnelarea/marker/__init__.py b/plotly/validators/funnelarea/marker/__init__.py
index 22860e3333c..aeae3564f66 100644
--- a/plotly/validators/funnelarea/marker/__init__.py
+++ b/plotly/validators/funnelarea/marker/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._pattern.PatternValidator",
-        "._line.LineValidator",
-        "._colorssrc.ColorssrcValidator",
-        "._colors.ColorsValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._pattern import PatternValidator
+    from ._line import LineValidator
+    from ._colorssrc import ColorssrcValidator
+    from ._colors import ColorsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._pattern.PatternValidator",
+            "._line.LineValidator",
+            "._colorssrc.ColorssrcValidator",
+            "._colors.ColorsValidator",
+        ],
+    )
diff --git a/plotly/validators/funnelarea/marker/line/__init__.py b/plotly/validators/funnelarea/marker/line/__init__.py
index ca6d32f725b..a2b9e1ae50c 100644
--- a/plotly/validators/funnelarea/marker/line/__init__.py
+++ b/plotly/validators/funnelarea/marker/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/funnelarea/marker/pattern/__init__.py b/plotly/validators/funnelarea/marker/pattern/__init__.py
index e42ccc4d0fb..e190f962c46 100644
--- a/plotly/validators/funnelarea/marker/pattern/__init__.py
+++ b/plotly/validators/funnelarea/marker/pattern/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._soliditysrc.SoliditysrcValidator",
-        "._solidity.SolidityValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shapesrc.ShapesrcValidator",
-        "._shape.ShapeValidator",
-        "._fillmode.FillmodeValidator",
-        "._fgopacity.FgopacityValidator",
-        "._fgcolorsrc.FgcolorsrcValidator",
-        "._fgcolor.FgcolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._soliditysrc import SoliditysrcValidator
+    from ._solidity import SolidityValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shapesrc import ShapesrcValidator
+    from ._shape import ShapeValidator
+    from ._fillmode import FillmodeValidator
+    from ._fgopacity import FgopacityValidator
+    from ._fgcolorsrc import FgcolorsrcValidator
+    from ._fgcolor import FgcolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._soliditysrc.SoliditysrcValidator",
+            "._solidity.SolidityValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shapesrc.ShapesrcValidator",
+            "._shape.ShapeValidator",
+            "._fillmode.FillmodeValidator",
+            "._fgopacity.FgopacityValidator",
+            "._fgcolorsrc.FgcolorsrcValidator",
+            "._fgcolor.FgcolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/funnelarea/stream/__init__.py b/plotly/validators/funnelarea/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/funnelarea/stream/__init__.py
+++ b/plotly/validators/funnelarea/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/funnelarea/textfont/__init__.py b/plotly/validators/funnelarea/textfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/funnelarea/textfont/__init__.py
+++ b/plotly/validators/funnelarea/textfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/funnelarea/title/__init__.py b/plotly/validators/funnelarea/title/__init__.py
index 8d5c91b29e3..bedd4ba1767 100644
--- a/plotly/validators/funnelarea/title/__init__.py
+++ b/plotly/validators/funnelarea/title/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._position.PositionValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._position import PositionValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._text.TextValidator",
+            "._position.PositionValidator",
+            "._font.FontValidator",
+        ],
+    )
diff --git a/plotly/validators/funnelarea/title/font/__init__.py b/plotly/validators/funnelarea/title/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/funnelarea/title/font/__init__.py
+++ b/plotly/validators/funnelarea/title/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/heatmap/__init__.py b/plotly/validators/heatmap/__init__.py
index 126790d7d6f..5720a81de32 100644
--- a/plotly/validators/heatmap/__init__.py
+++ b/plotly/validators/heatmap/__init__.py
@@ -1,80 +1,155 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zsmooth.ZsmoothValidator",
-        "._zorder.ZorderValidator",
-        "._zmin.ZminValidator",
-        "._zmid.ZmidValidator",
-        "._zmax.ZmaxValidator",
-        "._zhoverformat.ZhoverformatValidator",
-        "._zauto.ZautoValidator",
-        "._z.ZValidator",
-        "._ytype.YtypeValidator",
-        "._ysrc.YsrcValidator",
-        "._yperiodalignment.YperiodalignmentValidator",
-        "._yperiod0.Yperiod0Validator",
-        "._yperiod.YperiodValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._ygap.YgapValidator",
-        "._ycalendar.YcalendarValidator",
-        "._yaxis.YaxisValidator",
-        "._y0.Y0Validator",
-        "._y.YValidator",
-        "._xtype.XtypeValidator",
-        "._xsrc.XsrcValidator",
-        "._xperiodalignment.XperiodalignmentValidator",
-        "._xperiod0.Xperiod0Validator",
-        "._xperiod.XperiodValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xgap.XgapValidator",
-        "._xcalendar.XcalendarValidator",
-        "._xaxis.XaxisValidator",
-        "._x0.X0Validator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._transpose.TransposeValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._showscale.ShowscaleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverongaps.HoverongapsValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._dy.DyValidator",
-        "._dx.DxValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._connectgaps.ConnectgapsValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zsmooth import ZsmoothValidator
+    from ._zorder import ZorderValidator
+    from ._zmin import ZminValidator
+    from ._zmid import ZmidValidator
+    from ._zmax import ZmaxValidator
+    from ._zhoverformat import ZhoverformatValidator
+    from ._zauto import ZautoValidator
+    from ._z import ZValidator
+    from ._ytype import YtypeValidator
+    from ._ysrc import YsrcValidator
+    from ._yperiodalignment import YperiodalignmentValidator
+    from ._yperiod0 import Yperiod0Validator
+    from ._yperiod import YperiodValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._ygap import YgapValidator
+    from ._ycalendar import YcalendarValidator
+    from ._yaxis import YaxisValidator
+    from ._y0 import Y0Validator
+    from ._y import YValidator
+    from ._xtype import XtypeValidator
+    from ._xsrc import XsrcValidator
+    from ._xperiodalignment import XperiodalignmentValidator
+    from ._xperiod0 import Xperiod0Validator
+    from ._xperiod import XperiodValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xgap import XgapValidator
+    from ._xcalendar import XcalendarValidator
+    from ._xaxis import XaxisValidator
+    from ._x0 import X0Validator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._transpose import TransposeValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._showscale import ShowscaleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverongaps import HoverongapsValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._dy import DyValidator
+    from ._dx import DxValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._connectgaps import ConnectgapsValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zsmooth.ZsmoothValidator",
+            "._zorder.ZorderValidator",
+            "._zmin.ZminValidator",
+            "._zmid.ZmidValidator",
+            "._zmax.ZmaxValidator",
+            "._zhoverformat.ZhoverformatValidator",
+            "._zauto.ZautoValidator",
+            "._z.ZValidator",
+            "._ytype.YtypeValidator",
+            "._ysrc.YsrcValidator",
+            "._yperiodalignment.YperiodalignmentValidator",
+            "._yperiod0.Yperiod0Validator",
+            "._yperiod.YperiodValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._ygap.YgapValidator",
+            "._ycalendar.YcalendarValidator",
+            "._yaxis.YaxisValidator",
+            "._y0.Y0Validator",
+            "._y.YValidator",
+            "._xtype.XtypeValidator",
+            "._xsrc.XsrcValidator",
+            "._xperiodalignment.XperiodalignmentValidator",
+            "._xperiod0.Xperiod0Validator",
+            "._xperiod.XperiodValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xgap.XgapValidator",
+            "._xcalendar.XcalendarValidator",
+            "._xaxis.XaxisValidator",
+            "._x0.X0Validator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._transpose.TransposeValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._showscale.ShowscaleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverongaps.HoverongapsValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._dy.DyValidator",
+            "._dx.DxValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._connectgaps.ConnectgapsValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/heatmap/colorbar/__init__.py b/plotly/validators/heatmap/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/heatmap/colorbar/__init__.py
+++ b/plotly/validators/heatmap/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/heatmap/colorbar/tickfont/__init__.py b/plotly/validators/heatmap/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/heatmap/colorbar/tickfont/__init__.py
+++ b/plotly/validators/heatmap/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/heatmap/colorbar/tickformatstop/__init__.py b/plotly/validators/heatmap/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/heatmap/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/heatmap/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/heatmap/colorbar/title/__init__.py b/plotly/validators/heatmap/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/heatmap/colorbar/title/__init__.py
+++ b/plotly/validators/heatmap/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/heatmap/colorbar/title/font/__init__.py b/plotly/validators/heatmap/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/heatmap/colorbar/title/font/__init__.py
+++ b/plotly/validators/heatmap/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/heatmap/hoverlabel/__init__.py b/plotly/validators/heatmap/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/heatmap/hoverlabel/__init__.py
+++ b/plotly/validators/heatmap/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/heatmap/hoverlabel/font/__init__.py b/plotly/validators/heatmap/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/heatmap/hoverlabel/font/__init__.py
+++ b/plotly/validators/heatmap/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/heatmap/legendgrouptitle/__init__.py b/plotly/validators/heatmap/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/heatmap/legendgrouptitle/__init__.py
+++ b/plotly/validators/heatmap/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/heatmap/legendgrouptitle/font/__init__.py b/plotly/validators/heatmap/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/heatmap/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/heatmap/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/heatmap/stream/__init__.py b/plotly/validators/heatmap/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/heatmap/stream/__init__.py
+++ b/plotly/validators/heatmap/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/heatmap/textfont/__init__.py b/plotly/validators/heatmap/textfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/heatmap/textfont/__init__.py
+++ b/plotly/validators/heatmap/textfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/__init__.py b/plotly/validators/histogram/__init__.py
index 2e64a1d30df..7ed88f70d87 100644
--- a/plotly/validators/histogram/__init__.py
+++ b/plotly/validators/histogram/__init__.py
@@ -1,75 +1,145 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zorder.ZorderValidator",
-        "._ysrc.YsrcValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._ycalendar.YcalendarValidator",
-        "._ybins.YbinsValidator",
-        "._yaxis.YaxisValidator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xcalendar.XcalendarValidator",
-        "._xbins.XbinsValidator",
-        "._xaxis.XaxisValidator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textfont.TextfontValidator",
-        "._textangle.TextangleValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._outsidetextfont.OutsidetextfontValidator",
-        "._orientation.OrientationValidator",
-        "._opacity.OpacityValidator",
-        "._offsetgroup.OffsetgroupValidator",
-        "._nbinsy.NbinsyValidator",
-        "._nbinsx.NbinsxValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._insidetextfont.InsidetextfontValidator",
-        "._insidetextanchor.InsidetextanchorValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._histnorm.HistnormValidator",
-        "._histfunc.HistfuncValidator",
-        "._error_y.Error_YValidator",
-        "._error_x.Error_XValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._cumulative.CumulativeValidator",
-        "._constraintext.ConstraintextValidator",
-        "._cliponaxis.CliponaxisValidator",
-        "._bingroup.BingroupValidator",
-        "._autobiny.AutobinyValidator",
-        "._autobinx.AutobinxValidator",
-        "._alignmentgroup.AlignmentgroupValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zorder import ZorderValidator
+    from ._ysrc import YsrcValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._ycalendar import YcalendarValidator
+    from ._ybins import YbinsValidator
+    from ._yaxis import YaxisValidator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xcalendar import XcalendarValidator
+    from ._xbins import XbinsValidator
+    from ._xaxis import XaxisValidator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textfont import TextfontValidator
+    from ._textangle import TextangleValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._outsidetextfont import OutsidetextfontValidator
+    from ._orientation import OrientationValidator
+    from ._opacity import OpacityValidator
+    from ._offsetgroup import OffsetgroupValidator
+    from ._nbinsy import NbinsyValidator
+    from ._nbinsx import NbinsxValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._insidetextfont import InsidetextfontValidator
+    from ._insidetextanchor import InsidetextanchorValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._histnorm import HistnormValidator
+    from ._histfunc import HistfuncValidator
+    from ._error_y import Error_YValidator
+    from ._error_x import Error_XValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._cumulative import CumulativeValidator
+    from ._constraintext import ConstraintextValidator
+    from ._cliponaxis import CliponaxisValidator
+    from ._bingroup import BingroupValidator
+    from ._autobiny import AutobinyValidator
+    from ._autobinx import AutobinxValidator
+    from ._alignmentgroup import AlignmentgroupValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zorder.ZorderValidator",
+            "._ysrc.YsrcValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._ycalendar.YcalendarValidator",
+            "._ybins.YbinsValidator",
+            "._yaxis.YaxisValidator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xcalendar.XcalendarValidator",
+            "._xbins.XbinsValidator",
+            "._xaxis.XaxisValidator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textfont.TextfontValidator",
+            "._textangle.TextangleValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._outsidetextfont.OutsidetextfontValidator",
+            "._orientation.OrientationValidator",
+            "._opacity.OpacityValidator",
+            "._offsetgroup.OffsetgroupValidator",
+            "._nbinsy.NbinsyValidator",
+            "._nbinsx.NbinsxValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._insidetextfont.InsidetextfontValidator",
+            "._insidetextanchor.InsidetextanchorValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._histnorm.HistnormValidator",
+            "._histfunc.HistfuncValidator",
+            "._error_y.Error_YValidator",
+            "._error_x.Error_XValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._cumulative.CumulativeValidator",
+            "._constraintext.ConstraintextValidator",
+            "._cliponaxis.CliponaxisValidator",
+            "._bingroup.BingroupValidator",
+            "._autobiny.AutobinyValidator",
+            "._autobinx.AutobinxValidator",
+            "._alignmentgroup.AlignmentgroupValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/cumulative/__init__.py b/plotly/validators/histogram/cumulative/__init__.py
index b942b99f343..f52e54bee6a 100644
--- a/plotly/validators/histogram/cumulative/__init__.py
+++ b/plotly/validators/histogram/cumulative/__init__.py
@@ -1,12 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._enabled.EnabledValidator",
-        "._direction.DirectionValidator",
-        "._currentbin.CurrentbinValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._enabled import EnabledValidator
+    from ._direction import DirectionValidator
+    from ._currentbin import CurrentbinValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._enabled.EnabledValidator",
+            "._direction.DirectionValidator",
+            "._currentbin.CurrentbinValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/error_x/__init__.py b/plotly/validators/histogram/error_x/__init__.py
index 62838bdb731..2e3ce59d75d 100644
--- a/plotly/validators/histogram/error_x/__init__.py
+++ b/plotly/validators/histogram/error_x/__init__.py
@@ -1,24 +1,43 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._valueminus.ValueminusValidator",
-        "._value.ValueValidator",
-        "._type.TypeValidator",
-        "._tracerefminus.TracerefminusValidator",
-        "._traceref.TracerefValidator",
-        "._thickness.ThicknessValidator",
-        "._symmetric.SymmetricValidator",
-        "._copy_ystyle.Copy_YstyleValidator",
-        "._color.ColorValidator",
-        "._arraysrc.ArraysrcValidator",
-        "._arrayminussrc.ArrayminussrcValidator",
-        "._arrayminus.ArrayminusValidator",
-        "._array.ArrayValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._valueminus import ValueminusValidator
+    from ._value import ValueValidator
+    from ._type import TypeValidator
+    from ._tracerefminus import TracerefminusValidator
+    from ._traceref import TracerefValidator
+    from ._thickness import ThicknessValidator
+    from ._symmetric import SymmetricValidator
+    from ._copy_ystyle import Copy_YstyleValidator
+    from ._color import ColorValidator
+    from ._arraysrc import ArraysrcValidator
+    from ._arrayminussrc import ArrayminussrcValidator
+    from ._arrayminus import ArrayminusValidator
+    from ._array import ArrayValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._valueminus.ValueminusValidator",
+            "._value.ValueValidator",
+            "._type.TypeValidator",
+            "._tracerefminus.TracerefminusValidator",
+            "._traceref.TracerefValidator",
+            "._thickness.ThicknessValidator",
+            "._symmetric.SymmetricValidator",
+            "._copy_ystyle.Copy_YstyleValidator",
+            "._color.ColorValidator",
+            "._arraysrc.ArraysrcValidator",
+            "._arrayminussrc.ArrayminussrcValidator",
+            "._arrayminus.ArrayminusValidator",
+            "._array.ArrayValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/error_y/__init__.py b/plotly/validators/histogram/error_y/__init__.py
index ea49850d5fe..eff09cd6a0a 100644
--- a/plotly/validators/histogram/error_y/__init__.py
+++ b/plotly/validators/histogram/error_y/__init__.py
@@ -1,23 +1,41 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._valueminus.ValueminusValidator",
-        "._value.ValueValidator",
-        "._type.TypeValidator",
-        "._tracerefminus.TracerefminusValidator",
-        "._traceref.TracerefValidator",
-        "._thickness.ThicknessValidator",
-        "._symmetric.SymmetricValidator",
-        "._color.ColorValidator",
-        "._arraysrc.ArraysrcValidator",
-        "._arrayminussrc.ArrayminussrcValidator",
-        "._arrayminus.ArrayminusValidator",
-        "._array.ArrayValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._valueminus import ValueminusValidator
+    from ._value import ValueValidator
+    from ._type import TypeValidator
+    from ._tracerefminus import TracerefminusValidator
+    from ._traceref import TracerefValidator
+    from ._thickness import ThicknessValidator
+    from ._symmetric import SymmetricValidator
+    from ._color import ColorValidator
+    from ._arraysrc import ArraysrcValidator
+    from ._arrayminussrc import ArrayminussrcValidator
+    from ._arrayminus import ArrayminusValidator
+    from ._array import ArrayValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._valueminus.ValueminusValidator",
+            "._value.ValueValidator",
+            "._type.TypeValidator",
+            "._tracerefminus.TracerefminusValidator",
+            "._traceref.TracerefValidator",
+            "._thickness.ThicknessValidator",
+            "._symmetric.SymmetricValidator",
+            "._color.ColorValidator",
+            "._arraysrc.ArraysrcValidator",
+            "._arrayminussrc.ArrayminussrcValidator",
+            "._arrayminus.ArrayminusValidator",
+            "._array.ArrayValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/hoverlabel/__init__.py b/plotly/validators/histogram/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/histogram/hoverlabel/__init__.py
+++ b/plotly/validators/histogram/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/hoverlabel/font/__init__.py b/plotly/validators/histogram/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/histogram/hoverlabel/font/__init__.py
+++ b/plotly/validators/histogram/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/insidetextfont/__init__.py b/plotly/validators/histogram/insidetextfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/histogram/insidetextfont/__init__.py
+++ b/plotly/validators/histogram/insidetextfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/legendgrouptitle/__init__.py b/plotly/validators/histogram/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/histogram/legendgrouptitle/__init__.py
+++ b/plotly/validators/histogram/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/histogram/legendgrouptitle/font/__init__.py b/plotly/validators/histogram/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/histogram/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/histogram/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/marker/__init__.py b/plotly/validators/histogram/marker/__init__.py
index 69ad877d807..8f8e3d4a932 100644
--- a/plotly/validators/histogram/marker/__init__.py
+++ b/plotly/validators/histogram/marker/__init__.py
@@ -1,26 +1,47 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._pattern.PatternValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._line.LineValidator",
-        "._cornerradius.CornerradiusValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._pattern import PatternValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._line import LineValidator
+    from ._cornerradius import CornerradiusValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._pattern.PatternValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._line.LineValidator",
+            "._cornerradius.CornerradiusValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/marker/colorbar/__init__.py b/plotly/validators/histogram/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/histogram/marker/colorbar/__init__.py
+++ b/plotly/validators/histogram/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/marker/colorbar/tickfont/__init__.py b/plotly/validators/histogram/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/histogram/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/histogram/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/histogram/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/histogram/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/histogram/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/marker/colorbar/title/__init__.py b/plotly/validators/histogram/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/histogram/marker/colorbar/title/__init__.py
+++ b/plotly/validators/histogram/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/histogram/marker/colorbar/title/font/__init__.py b/plotly/validators/histogram/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/histogram/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/histogram/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/marker/line/__init__.py b/plotly/validators/histogram/marker/line/__init__.py
index 4ba3ea340b5..facbe33f884 100644
--- a/plotly/validators/histogram/marker/line/__init__.py
+++ b/plotly/validators/histogram/marker/line/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._reversescale.ReversescaleValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._reversescale import ReversescaleValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._reversescale.ReversescaleValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/marker/pattern/__init__.py b/plotly/validators/histogram/marker/pattern/__init__.py
index e42ccc4d0fb..e190f962c46 100644
--- a/plotly/validators/histogram/marker/pattern/__init__.py
+++ b/plotly/validators/histogram/marker/pattern/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._soliditysrc.SoliditysrcValidator",
-        "._solidity.SolidityValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shapesrc.ShapesrcValidator",
-        "._shape.ShapeValidator",
-        "._fillmode.FillmodeValidator",
-        "._fgopacity.FgopacityValidator",
-        "._fgcolorsrc.FgcolorsrcValidator",
-        "._fgcolor.FgcolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._soliditysrc import SoliditysrcValidator
+    from ._solidity import SolidityValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shapesrc import ShapesrcValidator
+    from ._shape import ShapeValidator
+    from ._fillmode import FillmodeValidator
+    from ._fgopacity import FgopacityValidator
+    from ._fgcolorsrc import FgcolorsrcValidator
+    from ._fgcolor import FgcolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._soliditysrc.SoliditysrcValidator",
+            "._solidity.SolidityValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shapesrc.ShapesrcValidator",
+            "._shape.ShapeValidator",
+            "._fillmode.FillmodeValidator",
+            "._fgopacity.FgopacityValidator",
+            "._fgcolorsrc.FgcolorsrcValidator",
+            "._fgcolor.FgcolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/outsidetextfont/__init__.py b/plotly/validators/histogram/outsidetextfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/histogram/outsidetextfont/__init__.py
+++ b/plotly/validators/histogram/outsidetextfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/selected/__init__.py b/plotly/validators/histogram/selected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/histogram/selected/__init__.py
+++ b/plotly/validators/histogram/selected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/histogram/selected/marker/__init__.py b/plotly/validators/histogram/selected/marker/__init__.py
index 653e5729338..d8f31347bfd 100644
--- a/plotly/validators/histogram/selected/marker/__init__.py
+++ b/plotly/validators/histogram/selected/marker/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/histogram/selected/textfont/__init__.py b/plotly/validators/histogram/selected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/histogram/selected/textfont/__init__.py
+++ b/plotly/validators/histogram/selected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/histogram/stream/__init__.py b/plotly/validators/histogram/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/histogram/stream/__init__.py
+++ b/plotly/validators/histogram/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/histogram/textfont/__init__.py b/plotly/validators/histogram/textfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/histogram/textfont/__init__.py
+++ b/plotly/validators/histogram/textfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram/unselected/__init__.py b/plotly/validators/histogram/unselected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/histogram/unselected/__init__.py
+++ b/plotly/validators/histogram/unselected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/histogram/unselected/marker/__init__.py b/plotly/validators/histogram/unselected/marker/__init__.py
index 653e5729338..d8f31347bfd 100644
--- a/plotly/validators/histogram/unselected/marker/__init__.py
+++ b/plotly/validators/histogram/unselected/marker/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/histogram/unselected/textfont/__init__.py b/plotly/validators/histogram/unselected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/histogram/unselected/textfont/__init__.py
+++ b/plotly/validators/histogram/unselected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/histogram/xbins/__init__.py b/plotly/validators/histogram/xbins/__init__.py
index 462d290b54d..b7d1eaa9fcb 100644
--- a/plotly/validators/histogram/xbins/__init__.py
+++ b/plotly/validators/histogram/xbins/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._start.StartValidator", "._size.SizeValidator", "._end.EndValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._start import StartValidator
+    from ._size import SizeValidator
+    from ._end import EndValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._start.StartValidator", "._size.SizeValidator", "._end.EndValidator"],
+    )
diff --git a/plotly/validators/histogram/ybins/__init__.py b/plotly/validators/histogram/ybins/__init__.py
index 462d290b54d..b7d1eaa9fcb 100644
--- a/plotly/validators/histogram/ybins/__init__.py
+++ b/plotly/validators/histogram/ybins/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._start.StartValidator", "._size.SizeValidator", "._end.EndValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._start import StartValidator
+    from ._size import SizeValidator
+    from ._end import EndValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._start.StartValidator", "._size.SizeValidator", "._end.EndValidator"],
+    )
diff --git a/plotly/validators/histogram2d/__init__.py b/plotly/validators/histogram2d/__init__.py
index 89c9072f7c3..8235426b271 100644
--- a/plotly/validators/histogram2d/__init__.py
+++ b/plotly/validators/histogram2d/__init__.py
@@ -1,72 +1,139 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zsmooth.ZsmoothValidator",
-        "._zmin.ZminValidator",
-        "._zmid.ZmidValidator",
-        "._zmax.ZmaxValidator",
-        "._zhoverformat.ZhoverformatValidator",
-        "._zauto.ZautoValidator",
-        "._z.ZValidator",
-        "._ysrc.YsrcValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._ygap.YgapValidator",
-        "._ycalendar.YcalendarValidator",
-        "._ybins.YbinsValidator",
-        "._ybingroup.YbingroupValidator",
-        "._yaxis.YaxisValidator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xgap.XgapValidator",
-        "._xcalendar.XcalendarValidator",
-        "._xbins.XbinsValidator",
-        "._xbingroup.XbingroupValidator",
-        "._xaxis.XaxisValidator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textfont.TextfontValidator",
-        "._stream.StreamValidator",
-        "._showscale.ShowscaleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacity.OpacityValidator",
-        "._nbinsy.NbinsyValidator",
-        "._nbinsx.NbinsxValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._histnorm.HistnormValidator",
-        "._histfunc.HistfuncValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._bingroup.BingroupValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-        "._autobiny.AutobinyValidator",
-        "._autobinx.AutobinxValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zsmooth import ZsmoothValidator
+    from ._zmin import ZminValidator
+    from ._zmid import ZmidValidator
+    from ._zmax import ZmaxValidator
+    from ._zhoverformat import ZhoverformatValidator
+    from ._zauto import ZautoValidator
+    from ._z import ZValidator
+    from ._ysrc import YsrcValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._ygap import YgapValidator
+    from ._ycalendar import YcalendarValidator
+    from ._ybins import YbinsValidator
+    from ._ybingroup import YbingroupValidator
+    from ._yaxis import YaxisValidator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xgap import XgapValidator
+    from ._xcalendar import XcalendarValidator
+    from ._xbins import XbinsValidator
+    from ._xbingroup import XbingroupValidator
+    from ._xaxis import XaxisValidator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textfont import TextfontValidator
+    from ._stream import StreamValidator
+    from ._showscale import ShowscaleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacity import OpacityValidator
+    from ._nbinsy import NbinsyValidator
+    from ._nbinsx import NbinsxValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._histnorm import HistnormValidator
+    from ._histfunc import HistfuncValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._bingroup import BingroupValidator
+    from ._autocolorscale import AutocolorscaleValidator
+    from ._autobiny import AutobinyValidator
+    from ._autobinx import AutobinxValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zsmooth.ZsmoothValidator",
+            "._zmin.ZminValidator",
+            "._zmid.ZmidValidator",
+            "._zmax.ZmaxValidator",
+            "._zhoverformat.ZhoverformatValidator",
+            "._zauto.ZautoValidator",
+            "._z.ZValidator",
+            "._ysrc.YsrcValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._ygap.YgapValidator",
+            "._ycalendar.YcalendarValidator",
+            "._ybins.YbinsValidator",
+            "._ybingroup.YbingroupValidator",
+            "._yaxis.YaxisValidator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xgap.XgapValidator",
+            "._xcalendar.XcalendarValidator",
+            "._xbins.XbinsValidator",
+            "._xbingroup.XbingroupValidator",
+            "._xaxis.XaxisValidator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textfont.TextfontValidator",
+            "._stream.StreamValidator",
+            "._showscale.ShowscaleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacity.OpacityValidator",
+            "._nbinsy.NbinsyValidator",
+            "._nbinsx.NbinsxValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._histnorm.HistnormValidator",
+            "._histfunc.HistfuncValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._bingroup.BingroupValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+            "._autobiny.AutobinyValidator",
+            "._autobinx.AutobinxValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2d/colorbar/__init__.py b/plotly/validators/histogram2d/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/histogram2d/colorbar/__init__.py
+++ b/plotly/validators/histogram2d/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2d/colorbar/tickfont/__init__.py b/plotly/validators/histogram2d/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/histogram2d/colorbar/tickfont/__init__.py
+++ b/plotly/validators/histogram2d/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2d/colorbar/tickformatstop/__init__.py b/plotly/validators/histogram2d/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/histogram2d/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/histogram2d/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2d/colorbar/title/__init__.py b/plotly/validators/histogram2d/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/histogram2d/colorbar/title/__init__.py
+++ b/plotly/validators/histogram2d/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/histogram2d/colorbar/title/font/__init__.py b/plotly/validators/histogram2d/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/histogram2d/colorbar/title/font/__init__.py
+++ b/plotly/validators/histogram2d/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2d/hoverlabel/__init__.py b/plotly/validators/histogram2d/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/histogram2d/hoverlabel/__init__.py
+++ b/plotly/validators/histogram2d/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2d/hoverlabel/font/__init__.py b/plotly/validators/histogram2d/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/histogram2d/hoverlabel/font/__init__.py
+++ b/plotly/validators/histogram2d/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2d/legendgrouptitle/__init__.py b/plotly/validators/histogram2d/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/histogram2d/legendgrouptitle/__init__.py
+++ b/plotly/validators/histogram2d/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/histogram2d/legendgrouptitle/font/__init__.py b/plotly/validators/histogram2d/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/histogram2d/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/histogram2d/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2d/marker/__init__.py b/plotly/validators/histogram2d/marker/__init__.py
index 8cd95cefa3a..4ca11d98821 100644
--- a/plotly/validators/histogram2d/marker/__init__.py
+++ b/plotly/validators/histogram2d/marker/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._colorsrc.ColorsrcValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._colorsrc.ColorsrcValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/histogram2d/stream/__init__.py b/plotly/validators/histogram2d/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/histogram2d/stream/__init__.py
+++ b/plotly/validators/histogram2d/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/histogram2d/textfont/__init__.py b/plotly/validators/histogram2d/textfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/histogram2d/textfont/__init__.py
+++ b/plotly/validators/histogram2d/textfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2d/xbins/__init__.py b/plotly/validators/histogram2d/xbins/__init__.py
index 462d290b54d..b7d1eaa9fcb 100644
--- a/plotly/validators/histogram2d/xbins/__init__.py
+++ b/plotly/validators/histogram2d/xbins/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._start.StartValidator", "._size.SizeValidator", "._end.EndValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._start import StartValidator
+    from ._size import SizeValidator
+    from ._end import EndValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._start.StartValidator", "._size.SizeValidator", "._end.EndValidator"],
+    )
diff --git a/plotly/validators/histogram2d/ybins/__init__.py b/plotly/validators/histogram2d/ybins/__init__.py
index 462d290b54d..b7d1eaa9fcb 100644
--- a/plotly/validators/histogram2d/ybins/__init__.py
+++ b/plotly/validators/histogram2d/ybins/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._start.StartValidator", "._size.SizeValidator", "._end.EndValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._start import StartValidator
+    from ._size import SizeValidator
+    from ._end import EndValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._start.StartValidator", "._size.SizeValidator", "._end.EndValidator"],
+    )
diff --git a/plotly/validators/histogram2dcontour/__init__.py b/plotly/validators/histogram2dcontour/__init__.py
index 8baa4429cb4..7d1e7b3dee2 100644
--- a/plotly/validators/histogram2dcontour/__init__.py
+++ b/plotly/validators/histogram2dcontour/__init__.py
@@ -1,73 +1,141 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zmin.ZminValidator",
-        "._zmid.ZmidValidator",
-        "._zmax.ZmaxValidator",
-        "._zhoverformat.ZhoverformatValidator",
-        "._zauto.ZautoValidator",
-        "._z.ZValidator",
-        "._ysrc.YsrcValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._ycalendar.YcalendarValidator",
-        "._ybins.YbinsValidator",
-        "._ybingroup.YbingroupValidator",
-        "._yaxis.YaxisValidator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xcalendar.XcalendarValidator",
-        "._xbins.XbinsValidator",
-        "._xbingroup.XbingroupValidator",
-        "._xaxis.XaxisValidator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textfont.TextfontValidator",
-        "._stream.StreamValidator",
-        "._showscale.ShowscaleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacity.OpacityValidator",
-        "._ncontours.NcontoursValidator",
-        "._nbinsy.NbinsyValidator",
-        "._nbinsx.NbinsxValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._histnorm.HistnormValidator",
-        "._histfunc.HistfuncValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._contours.ContoursValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._bingroup.BingroupValidator",
-        "._autocontour.AutocontourValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-        "._autobiny.AutobinyValidator",
-        "._autobinx.AutobinxValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zmin import ZminValidator
+    from ._zmid import ZmidValidator
+    from ._zmax import ZmaxValidator
+    from ._zhoverformat import ZhoverformatValidator
+    from ._zauto import ZautoValidator
+    from ._z import ZValidator
+    from ._ysrc import YsrcValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._ycalendar import YcalendarValidator
+    from ._ybins import YbinsValidator
+    from ._ybingroup import YbingroupValidator
+    from ._yaxis import YaxisValidator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xcalendar import XcalendarValidator
+    from ._xbins import XbinsValidator
+    from ._xbingroup import XbingroupValidator
+    from ._xaxis import XaxisValidator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textfont import TextfontValidator
+    from ._stream import StreamValidator
+    from ._showscale import ShowscaleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacity import OpacityValidator
+    from ._ncontours import NcontoursValidator
+    from ._nbinsy import NbinsyValidator
+    from ._nbinsx import NbinsxValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._histnorm import HistnormValidator
+    from ._histfunc import HistfuncValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._contours import ContoursValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._bingroup import BingroupValidator
+    from ._autocontour import AutocontourValidator
+    from ._autocolorscale import AutocolorscaleValidator
+    from ._autobiny import AutobinyValidator
+    from ._autobinx import AutobinxValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zmin.ZminValidator",
+            "._zmid.ZmidValidator",
+            "._zmax.ZmaxValidator",
+            "._zhoverformat.ZhoverformatValidator",
+            "._zauto.ZautoValidator",
+            "._z.ZValidator",
+            "._ysrc.YsrcValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._ycalendar.YcalendarValidator",
+            "._ybins.YbinsValidator",
+            "._ybingroup.YbingroupValidator",
+            "._yaxis.YaxisValidator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xcalendar.XcalendarValidator",
+            "._xbins.XbinsValidator",
+            "._xbingroup.XbingroupValidator",
+            "._xaxis.XaxisValidator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textfont.TextfontValidator",
+            "._stream.StreamValidator",
+            "._showscale.ShowscaleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacity.OpacityValidator",
+            "._ncontours.NcontoursValidator",
+            "._nbinsy.NbinsyValidator",
+            "._nbinsx.NbinsxValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._histnorm.HistnormValidator",
+            "._histfunc.HistfuncValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._contours.ContoursValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._bingroup.BingroupValidator",
+            "._autocontour.AutocontourValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+            "._autobiny.AutobinyValidator",
+            "._autobinx.AutobinxValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2dcontour/colorbar/__init__.py b/plotly/validators/histogram2dcontour/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/histogram2dcontour/colorbar/__init__.py
+++ b/plotly/validators/histogram2dcontour/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2dcontour/colorbar/tickfont/__init__.py b/plotly/validators/histogram2dcontour/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/histogram2dcontour/colorbar/tickfont/__init__.py
+++ b/plotly/validators/histogram2dcontour/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2dcontour/colorbar/tickformatstop/__init__.py b/plotly/validators/histogram2dcontour/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/histogram2dcontour/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/histogram2dcontour/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2dcontour/colorbar/title/__init__.py b/plotly/validators/histogram2dcontour/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/histogram2dcontour/colorbar/title/__init__.py
+++ b/plotly/validators/histogram2dcontour/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/histogram2dcontour/colorbar/title/font/__init__.py b/plotly/validators/histogram2dcontour/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/histogram2dcontour/colorbar/title/font/__init__.py
+++ b/plotly/validators/histogram2dcontour/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2dcontour/contours/__init__.py b/plotly/validators/histogram2dcontour/contours/__init__.py
index 230a907cd74..0650ad574bd 100644
--- a/plotly/validators/histogram2dcontour/contours/__init__.py
+++ b/plotly/validators/histogram2dcontour/contours/__init__.py
@@ -1,20 +1,35 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._type.TypeValidator",
-        "._start.StartValidator",
-        "._size.SizeValidator",
-        "._showlines.ShowlinesValidator",
-        "._showlabels.ShowlabelsValidator",
-        "._operation.OperationValidator",
-        "._labelformat.LabelformatValidator",
-        "._labelfont.LabelfontValidator",
-        "._end.EndValidator",
-        "._coloring.ColoringValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._type import TypeValidator
+    from ._start import StartValidator
+    from ._size import SizeValidator
+    from ._showlines import ShowlinesValidator
+    from ._showlabels import ShowlabelsValidator
+    from ._operation import OperationValidator
+    from ._labelformat import LabelformatValidator
+    from ._labelfont import LabelfontValidator
+    from ._end import EndValidator
+    from ._coloring import ColoringValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._type.TypeValidator",
+            "._start.StartValidator",
+            "._size.SizeValidator",
+            "._showlines.ShowlinesValidator",
+            "._showlabels.ShowlabelsValidator",
+            "._operation.OperationValidator",
+            "._labelformat.LabelformatValidator",
+            "._labelfont.LabelfontValidator",
+            "._end.EndValidator",
+            "._coloring.ColoringValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2dcontour/contours/labelfont/__init__.py b/plotly/validators/histogram2dcontour/contours/labelfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/histogram2dcontour/contours/labelfont/__init__.py
+++ b/plotly/validators/histogram2dcontour/contours/labelfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2dcontour/hoverlabel/__init__.py b/plotly/validators/histogram2dcontour/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/histogram2dcontour/hoverlabel/__init__.py
+++ b/plotly/validators/histogram2dcontour/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2dcontour/hoverlabel/font/__init__.py b/plotly/validators/histogram2dcontour/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/histogram2dcontour/hoverlabel/font/__init__.py
+++ b/plotly/validators/histogram2dcontour/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2dcontour/legendgrouptitle/__init__.py b/plotly/validators/histogram2dcontour/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/histogram2dcontour/legendgrouptitle/__init__.py
+++ b/plotly/validators/histogram2dcontour/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/histogram2dcontour/legendgrouptitle/font/__init__.py b/plotly/validators/histogram2dcontour/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/histogram2dcontour/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/histogram2dcontour/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2dcontour/line/__init__.py b/plotly/validators/histogram2dcontour/line/__init__.py
index 13c597bfd2a..cc28ee67fea 100644
--- a/plotly/validators/histogram2dcontour/line/__init__.py
+++ b/plotly/validators/histogram2dcontour/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._smoothing.SmoothingValidator",
-        "._dash.DashValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._smoothing import SmoothingValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._smoothing.SmoothingValidator",
+            "._dash.DashValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2dcontour/marker/__init__.py b/plotly/validators/histogram2dcontour/marker/__init__.py
index 8cd95cefa3a..4ca11d98821 100644
--- a/plotly/validators/histogram2dcontour/marker/__init__.py
+++ b/plotly/validators/histogram2dcontour/marker/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._colorsrc.ColorsrcValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._colorsrc.ColorsrcValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/histogram2dcontour/stream/__init__.py b/plotly/validators/histogram2dcontour/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/histogram2dcontour/stream/__init__.py
+++ b/plotly/validators/histogram2dcontour/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/histogram2dcontour/textfont/__init__.py b/plotly/validators/histogram2dcontour/textfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/histogram2dcontour/textfont/__init__.py
+++ b/plotly/validators/histogram2dcontour/textfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/histogram2dcontour/xbins/__init__.py b/plotly/validators/histogram2dcontour/xbins/__init__.py
index 462d290b54d..b7d1eaa9fcb 100644
--- a/plotly/validators/histogram2dcontour/xbins/__init__.py
+++ b/plotly/validators/histogram2dcontour/xbins/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._start.StartValidator", "._size.SizeValidator", "._end.EndValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._start import StartValidator
+    from ._size import SizeValidator
+    from ._end import EndValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._start.StartValidator", "._size.SizeValidator", "._end.EndValidator"],
+    )
diff --git a/plotly/validators/histogram2dcontour/ybins/__init__.py b/plotly/validators/histogram2dcontour/ybins/__init__.py
index 462d290b54d..b7d1eaa9fcb 100644
--- a/plotly/validators/histogram2dcontour/ybins/__init__.py
+++ b/plotly/validators/histogram2dcontour/ybins/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._start.StartValidator", "._size.SizeValidator", "._end.EndValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._start import StartValidator
+    from ._size import SizeValidator
+    from ._end import EndValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._start.StartValidator", "._size.SizeValidator", "._end.EndValidator"],
+    )
diff --git a/plotly/validators/icicle/__init__.py b/plotly/validators/icicle/__init__.py
index 70d508b26c9..79272436ae9 100644
--- a/plotly/validators/icicle/__init__.py
+++ b/plotly/validators/icicle/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._valuessrc.ValuessrcValidator",
-        "._values.ValuesValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._tiling.TilingValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textinfo.TextinfoValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._sort.SortValidator",
-        "._root.RootValidator",
-        "._pathbar.PathbarValidator",
-        "._parentssrc.ParentssrcValidator",
-        "._parents.ParentsValidator",
-        "._outsidetextfont.OutsidetextfontValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._maxdepth.MaxdepthValidator",
-        "._marker.MarkerValidator",
-        "._level.LevelValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legend.LegendValidator",
-        "._leaf.LeafValidator",
-        "._labelssrc.LabelssrcValidator",
-        "._labels.LabelsValidator",
-        "._insidetextfont.InsidetextfontValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._domain.DomainValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._count.CountValidator",
-        "._branchvalues.BranchvaluesValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._valuessrc import ValuessrcValidator
+    from ._values import ValuesValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._tiling import TilingValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textinfo import TextinfoValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._sort import SortValidator
+    from ._root import RootValidator
+    from ._pathbar import PathbarValidator
+    from ._parentssrc import ParentssrcValidator
+    from ._parents import ParentsValidator
+    from ._outsidetextfont import OutsidetextfontValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._maxdepth import MaxdepthValidator
+    from ._marker import MarkerValidator
+    from ._level import LevelValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legend import LegendValidator
+    from ._leaf import LeafValidator
+    from ._labelssrc import LabelssrcValidator
+    from ._labels import LabelsValidator
+    from ._insidetextfont import InsidetextfontValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._domain import DomainValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._count import CountValidator
+    from ._branchvalues import BranchvaluesValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._valuessrc.ValuessrcValidator",
+            "._values.ValuesValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._tiling.TilingValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textinfo.TextinfoValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._sort.SortValidator",
+            "._root.RootValidator",
+            "._pathbar.PathbarValidator",
+            "._parentssrc.ParentssrcValidator",
+            "._parents.ParentsValidator",
+            "._outsidetextfont.OutsidetextfontValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._maxdepth.MaxdepthValidator",
+            "._marker.MarkerValidator",
+            "._level.LevelValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legend.LegendValidator",
+            "._leaf.LeafValidator",
+            "._labelssrc.LabelssrcValidator",
+            "._labels.LabelsValidator",
+            "._insidetextfont.InsidetextfontValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._domain.DomainValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._count.CountValidator",
+            "._branchvalues.BranchvaluesValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/domain/__init__.py b/plotly/validators/icicle/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/icicle/domain/__init__.py
+++ b/plotly/validators/icicle/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/hoverlabel/__init__.py b/plotly/validators/icicle/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/icicle/hoverlabel/__init__.py
+++ b/plotly/validators/icicle/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/hoverlabel/font/__init__.py b/plotly/validators/icicle/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/icicle/hoverlabel/font/__init__.py
+++ b/plotly/validators/icicle/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/insidetextfont/__init__.py b/plotly/validators/icicle/insidetextfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/icicle/insidetextfont/__init__.py
+++ b/plotly/validators/icicle/insidetextfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/leaf/__init__.py b/plotly/validators/icicle/leaf/__init__.py
index ea80a8a0f0d..049134a716d 100644
--- a/plotly/validators/icicle/leaf/__init__.py
+++ b/plotly/validators/icicle/leaf/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator"]
+    )
diff --git a/plotly/validators/icicle/legendgrouptitle/__init__.py b/plotly/validators/icicle/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/icicle/legendgrouptitle/__init__.py
+++ b/plotly/validators/icicle/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/icicle/legendgrouptitle/font/__init__.py b/plotly/validators/icicle/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/icicle/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/icicle/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/marker/__init__.py b/plotly/validators/icicle/marker/__init__.py
index a7391021720..e04f18cc550 100644
--- a/plotly/validators/icicle/marker/__init__.py
+++ b/plotly/validators/icicle/marker/__init__.py
@@ -1,23 +1,41 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._pattern.PatternValidator",
-        "._line.LineValidator",
-        "._colorssrc.ColorssrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colors.ColorsValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._pattern import PatternValidator
+    from ._line import LineValidator
+    from ._colorssrc import ColorssrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colors import ColorsValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._pattern.PatternValidator",
+            "._line.LineValidator",
+            "._colorssrc.ColorssrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colors.ColorsValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/marker/colorbar/__init__.py b/plotly/validators/icicle/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/icicle/marker/colorbar/__init__.py
+++ b/plotly/validators/icicle/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/marker/colorbar/tickfont/__init__.py b/plotly/validators/icicle/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/icicle/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/icicle/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/icicle/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/icicle/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/icicle/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/marker/colorbar/title/__init__.py b/plotly/validators/icicle/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/icicle/marker/colorbar/title/__init__.py
+++ b/plotly/validators/icicle/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/icicle/marker/colorbar/title/font/__init__.py b/plotly/validators/icicle/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/icicle/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/icicle/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/marker/line/__init__.py b/plotly/validators/icicle/marker/line/__init__.py
index ca6d32f725b..a2b9e1ae50c 100644
--- a/plotly/validators/icicle/marker/line/__init__.py
+++ b/plotly/validators/icicle/marker/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/marker/pattern/__init__.py b/plotly/validators/icicle/marker/pattern/__init__.py
index e42ccc4d0fb..e190f962c46 100644
--- a/plotly/validators/icicle/marker/pattern/__init__.py
+++ b/plotly/validators/icicle/marker/pattern/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._soliditysrc.SoliditysrcValidator",
-        "._solidity.SolidityValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shapesrc.ShapesrcValidator",
-        "._shape.ShapeValidator",
-        "._fillmode.FillmodeValidator",
-        "._fgopacity.FgopacityValidator",
-        "._fgcolorsrc.FgcolorsrcValidator",
-        "._fgcolor.FgcolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._soliditysrc import SoliditysrcValidator
+    from ._solidity import SolidityValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shapesrc import ShapesrcValidator
+    from ._shape import ShapeValidator
+    from ._fillmode import FillmodeValidator
+    from ._fgopacity import FgopacityValidator
+    from ._fgcolorsrc import FgcolorsrcValidator
+    from ._fgcolor import FgcolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._soliditysrc.SoliditysrcValidator",
+            "._solidity.SolidityValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shapesrc.ShapesrcValidator",
+            "._shape.ShapeValidator",
+            "._fillmode.FillmodeValidator",
+            "._fgopacity.FgopacityValidator",
+            "._fgcolorsrc.FgcolorsrcValidator",
+            "._fgcolor.FgcolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/outsidetextfont/__init__.py b/plotly/validators/icicle/outsidetextfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/icicle/outsidetextfont/__init__.py
+++ b/plotly/validators/icicle/outsidetextfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/pathbar/__init__.py b/plotly/validators/icicle/pathbar/__init__.py
index 7b4da4ccadf..fce05faf911 100644
--- a/plotly/validators/icicle/pathbar/__init__.py
+++ b/plotly/validators/icicle/pathbar/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._thickness.ThicknessValidator",
-        "._textfont.TextfontValidator",
-        "._side.SideValidator",
-        "._edgeshape.EdgeshapeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._thickness import ThicknessValidator
+    from ._textfont import TextfontValidator
+    from ._side import SideValidator
+    from ._edgeshape import EdgeshapeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._thickness.ThicknessValidator",
+            "._textfont.TextfontValidator",
+            "._side.SideValidator",
+            "._edgeshape.EdgeshapeValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/pathbar/textfont/__init__.py b/plotly/validators/icicle/pathbar/textfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/icicle/pathbar/textfont/__init__.py
+++ b/plotly/validators/icicle/pathbar/textfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/root/__init__.py b/plotly/validators/icicle/root/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/icicle/root/__init__.py
+++ b/plotly/validators/icicle/root/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/icicle/stream/__init__.py b/plotly/validators/icicle/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/icicle/stream/__init__.py
+++ b/plotly/validators/icicle/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/icicle/textfont/__init__.py b/plotly/validators/icicle/textfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/icicle/textfont/__init__.py
+++ b/plotly/validators/icicle/textfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/icicle/tiling/__init__.py b/plotly/validators/icicle/tiling/__init__.py
index 8bd48751b68..4f869feaed3 100644
--- a/plotly/validators/icicle/tiling/__init__.py
+++ b/plotly/validators/icicle/tiling/__init__.py
@@ -1,12 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._pad.PadValidator",
-        "._orientation.OrientationValidator",
-        "._flip.FlipValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._pad import PadValidator
+    from ._orientation import OrientationValidator
+    from ._flip import FlipValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._pad.PadValidator",
+            "._orientation.OrientationValidator",
+            "._flip.FlipValidator",
+        ],
+    )
diff --git a/plotly/validators/image/__init__.py b/plotly/validators/image/__init__.py
index 0d1c67fb458..e56bc098b00 100644
--- a/plotly/validators/image/__init__.py
+++ b/plotly/validators/image/__init__.py
@@ -1,48 +1,91 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zsmooth.ZsmoothValidator",
-        "._zorder.ZorderValidator",
-        "._zmin.ZminValidator",
-        "._zmax.ZmaxValidator",
-        "._z.ZValidator",
-        "._yaxis.YaxisValidator",
-        "._y0.Y0Validator",
-        "._xaxis.XaxisValidator",
-        "._x0.X0Validator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._source.SourceValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._dy.DyValidator",
-        "._dx.DxValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._colormodel.ColormodelValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zsmooth import ZsmoothValidator
+    from ._zorder import ZorderValidator
+    from ._zmin import ZminValidator
+    from ._zmax import ZmaxValidator
+    from ._z import ZValidator
+    from ._yaxis import YaxisValidator
+    from ._y0 import Y0Validator
+    from ._xaxis import XaxisValidator
+    from ._x0 import X0Validator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._source import SourceValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._dy import DyValidator
+    from ._dx import DxValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._colormodel import ColormodelValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zsmooth.ZsmoothValidator",
+            "._zorder.ZorderValidator",
+            "._zmin.ZminValidator",
+            "._zmax.ZmaxValidator",
+            "._z.ZValidator",
+            "._yaxis.YaxisValidator",
+            "._y0.Y0Validator",
+            "._xaxis.XaxisValidator",
+            "._x0.X0Validator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._source.SourceValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._dy.DyValidator",
+            "._dx.DxValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._colormodel.ColormodelValidator",
+        ],
+    )
diff --git a/plotly/validators/image/hoverlabel/__init__.py b/plotly/validators/image/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/image/hoverlabel/__init__.py
+++ b/plotly/validators/image/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/image/hoverlabel/font/__init__.py b/plotly/validators/image/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/image/hoverlabel/font/__init__.py
+++ b/plotly/validators/image/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/image/legendgrouptitle/__init__.py b/plotly/validators/image/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/image/legendgrouptitle/__init__.py
+++ b/plotly/validators/image/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/image/legendgrouptitle/font/__init__.py b/plotly/validators/image/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/image/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/image/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/image/stream/__init__.py b/plotly/validators/image/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/image/stream/__init__.py
+++ b/plotly/validators/image/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/indicator/__init__.py b/plotly/validators/indicator/__init__.py
index f07d13e69b3..90a3d4d166b 100644
--- a/plotly/validators/indicator/__init__.py
+++ b/plotly/validators/indicator/__init__.py
@@ -1,32 +1,59 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._value.ValueValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._title.TitleValidator",
-        "._stream.StreamValidator",
-        "._number.NumberValidator",
-        "._name.NameValidator",
-        "._mode.ModeValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._gauge.GaugeValidator",
-        "._domain.DomainValidator",
-        "._delta.DeltaValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._value import ValueValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._title import TitleValidator
+    from ._stream import StreamValidator
+    from ._number import NumberValidator
+    from ._name import NameValidator
+    from ._mode import ModeValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._gauge import GaugeValidator
+    from ._domain import DomainValidator
+    from ._delta import DeltaValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._value.ValueValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._title.TitleValidator",
+            "._stream.StreamValidator",
+            "._number.NumberValidator",
+            "._name.NameValidator",
+            "._mode.ModeValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._gauge.GaugeValidator",
+            "._domain.DomainValidator",
+            "._delta.DeltaValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/indicator/delta/__init__.py b/plotly/validators/indicator/delta/__init__.py
index f1436aa0e3a..9bebaaaa0c2 100644
--- a/plotly/validators/indicator/delta/__init__.py
+++ b/plotly/validators/indicator/delta/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._valueformat.ValueformatValidator",
-        "._suffix.SuffixValidator",
-        "._relative.RelativeValidator",
-        "._reference.ReferenceValidator",
-        "._prefix.PrefixValidator",
-        "._position.PositionValidator",
-        "._increasing.IncreasingValidator",
-        "._font.FontValidator",
-        "._decreasing.DecreasingValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._valueformat import ValueformatValidator
+    from ._suffix import SuffixValidator
+    from ._relative import RelativeValidator
+    from ._reference import ReferenceValidator
+    from ._prefix import PrefixValidator
+    from ._position import PositionValidator
+    from ._increasing import IncreasingValidator
+    from ._font import FontValidator
+    from ._decreasing import DecreasingValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._valueformat.ValueformatValidator",
+            "._suffix.SuffixValidator",
+            "._relative.RelativeValidator",
+            "._reference.ReferenceValidator",
+            "._prefix.PrefixValidator",
+            "._position.PositionValidator",
+            "._increasing.IncreasingValidator",
+            "._font.FontValidator",
+            "._decreasing.DecreasingValidator",
+        ],
+    )
diff --git a/plotly/validators/indicator/delta/decreasing/__init__.py b/plotly/validators/indicator/delta/decreasing/__init__.py
index 11541c453ab..e2312c03a84 100644
--- a/plotly/validators/indicator/delta/decreasing/__init__.py
+++ b/plotly/validators/indicator/delta/decreasing/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._symbol.SymbolValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._symbol import SymbolValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._symbol.SymbolValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/indicator/delta/font/__init__.py b/plotly/validators/indicator/delta/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/indicator/delta/font/__init__.py
+++ b/plotly/validators/indicator/delta/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/indicator/delta/increasing/__init__.py b/plotly/validators/indicator/delta/increasing/__init__.py
index 11541c453ab..e2312c03a84 100644
--- a/plotly/validators/indicator/delta/increasing/__init__.py
+++ b/plotly/validators/indicator/delta/increasing/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._symbol.SymbolValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._symbol import SymbolValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._symbol.SymbolValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/indicator/domain/__init__.py b/plotly/validators/indicator/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/indicator/domain/__init__.py
+++ b/plotly/validators/indicator/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/indicator/gauge/__init__.py b/plotly/validators/indicator/gauge/__init__.py
index ba2d397e89f..b2ca780c729 100644
--- a/plotly/validators/indicator/gauge/__init__.py
+++ b/plotly/validators/indicator/gauge/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._threshold.ThresholdValidator",
-        "._stepdefaults.StepdefaultsValidator",
-        "._steps.StepsValidator",
-        "._shape.ShapeValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-        "._bar.BarValidator",
-        "._axis.AxisValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._threshold import ThresholdValidator
+    from ._stepdefaults import StepdefaultsValidator
+    from ._steps import StepsValidator
+    from ._shape import ShapeValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+    from ._bar import BarValidator
+    from ._axis import AxisValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._threshold.ThresholdValidator",
+            "._stepdefaults.StepdefaultsValidator",
+            "._steps.StepsValidator",
+            "._shape.ShapeValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+            "._bar.BarValidator",
+            "._axis.AxisValidator",
+        ],
+    )
diff --git a/plotly/validators/indicator/gauge/axis/__init__.py b/plotly/validators/indicator/gauge/axis/__init__.py
index 147a295cdd9..554168e7782 100644
--- a/plotly/validators/indicator/gauge/axis/__init__.py
+++ b/plotly/validators/indicator/gauge/axis/__init__.py
@@ -1,39 +1,73 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._range.RangeValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._range import RangeValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._range.RangeValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+        ],
+    )
diff --git a/plotly/validators/indicator/gauge/axis/tickfont/__init__.py b/plotly/validators/indicator/gauge/axis/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/indicator/gauge/axis/tickfont/__init__.py
+++ b/plotly/validators/indicator/gauge/axis/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/indicator/gauge/axis/tickformatstop/__init__.py b/plotly/validators/indicator/gauge/axis/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/indicator/gauge/axis/tickformatstop/__init__.py
+++ b/plotly/validators/indicator/gauge/axis/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/indicator/gauge/bar/__init__.py b/plotly/validators/indicator/gauge/bar/__init__.py
index f8b2d9b6a92..d49f1c0e78b 100644
--- a/plotly/validators/indicator/gauge/bar/__init__.py
+++ b/plotly/validators/indicator/gauge/bar/__init__.py
@@ -1,12 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._thickness.ThicknessValidator",
-        "._line.LineValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._thickness import ThicknessValidator
+    from ._line import LineValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._thickness.ThicknessValidator",
+            "._line.LineValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/indicator/gauge/bar/line/__init__.py b/plotly/validators/indicator/gauge/bar/line/__init__.py
index d49328faace..63a516578b5 100644
--- a/plotly/validators/indicator/gauge/bar/line/__init__.py
+++ b/plotly/validators/indicator/gauge/bar/line/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/indicator/gauge/step/__init__.py b/plotly/validators/indicator/gauge/step/__init__.py
index 0ee1a4cb9b8..4ea4b3e46b5 100644
--- a/plotly/validators/indicator/gauge/step/__init__.py
+++ b/plotly/validators/indicator/gauge/step/__init__.py
@@ -1,15 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._thickness.ThicknessValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._range.RangeValidator",
-        "._name.NameValidator",
-        "._line.LineValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._thickness import ThicknessValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._range import RangeValidator
+    from ._name import NameValidator
+    from ._line import LineValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._thickness.ThicknessValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._range.RangeValidator",
+            "._name.NameValidator",
+            "._line.LineValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/indicator/gauge/step/line/__init__.py b/plotly/validators/indicator/gauge/step/line/__init__.py
index d49328faace..63a516578b5 100644
--- a/plotly/validators/indicator/gauge/step/line/__init__.py
+++ b/plotly/validators/indicator/gauge/step/line/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/indicator/gauge/threshold/__init__.py b/plotly/validators/indicator/gauge/threshold/__init__.py
index cc27740011a..b4226aa9203 100644
--- a/plotly/validators/indicator/gauge/threshold/__init__.py
+++ b/plotly/validators/indicator/gauge/threshold/__init__.py
@@ -1,12 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._thickness.ThicknessValidator",
-        "._line.LineValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._thickness import ThicknessValidator
+    from ._line import LineValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._thickness.ThicknessValidator",
+            "._line.LineValidator",
+        ],
+    )
diff --git a/plotly/validators/indicator/gauge/threshold/line/__init__.py b/plotly/validators/indicator/gauge/threshold/line/__init__.py
index d49328faace..63a516578b5 100644
--- a/plotly/validators/indicator/gauge/threshold/line/__init__.py
+++ b/plotly/validators/indicator/gauge/threshold/line/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/indicator/legendgrouptitle/__init__.py b/plotly/validators/indicator/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/indicator/legendgrouptitle/__init__.py
+++ b/plotly/validators/indicator/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/indicator/legendgrouptitle/font/__init__.py b/plotly/validators/indicator/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/indicator/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/indicator/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/indicator/number/__init__.py b/plotly/validators/indicator/number/__init__.py
index 42a8aaf8800..71d6d13a5ce 100644
--- a/plotly/validators/indicator/number/__init__.py
+++ b/plotly/validators/indicator/number/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._valueformat.ValueformatValidator",
-        "._suffix.SuffixValidator",
-        "._prefix.PrefixValidator",
-        "._font.FontValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._valueformat import ValueformatValidator
+    from ._suffix import SuffixValidator
+    from ._prefix import PrefixValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._valueformat.ValueformatValidator",
+            "._suffix.SuffixValidator",
+            "._prefix.PrefixValidator",
+            "._font.FontValidator",
+        ],
+    )
diff --git a/plotly/validators/indicator/number/font/__init__.py b/plotly/validators/indicator/number/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/indicator/number/font/__init__.py
+++ b/plotly/validators/indicator/number/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/indicator/stream/__init__.py b/plotly/validators/indicator/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/indicator/stream/__init__.py
+++ b/plotly/validators/indicator/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/indicator/title/__init__.py b/plotly/validators/indicator/title/__init__.py
index 2f547f8106c..2415e035140 100644
--- a/plotly/validators/indicator/title/__init__.py
+++ b/plotly/validators/indicator/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._font.FontValidator", "._align.AlignValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._font.FontValidator", "._align.AlignValidator"],
+    )
diff --git a/plotly/validators/indicator/title/font/__init__.py b/plotly/validators/indicator/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/indicator/title/font/__init__.py
+++ b/plotly/validators/indicator/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/isosurface/__init__.py b/plotly/validators/isosurface/__init__.py
index d4a21a5cc14..e65b327ed4d 100644
--- a/plotly/validators/isosurface/__init__.py
+++ b/plotly/validators/isosurface/__init__.py
@@ -1,69 +1,133 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zhoverformat.ZhoverformatValidator",
-        "._z.ZValidator",
-        "._ysrc.YsrcValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._valuesrc.ValuesrcValidator",
-        "._valuehoverformat.ValuehoverformatValidator",
-        "._value.ValueValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._surface.SurfaceValidator",
-        "._stream.StreamValidator",
-        "._spaceframe.SpaceframeValidator",
-        "._slices.SlicesValidator",
-        "._showscale.ShowscaleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._scene.SceneValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._lightposition.LightpositionValidator",
-        "._lighting.LightingValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._isomin.IsominValidator",
-        "._isomax.IsomaxValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._flatshading.FlatshadingValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._contour.ContourValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._caps.CapsValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zhoverformat import ZhoverformatValidator
+    from ._z import ZValidator
+    from ._ysrc import YsrcValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._valuesrc import ValuesrcValidator
+    from ._valuehoverformat import ValuehoverformatValidator
+    from ._value import ValueValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._surface import SurfaceValidator
+    from ._stream import StreamValidator
+    from ._spaceframe import SpaceframeValidator
+    from ._slices import SlicesValidator
+    from ._showscale import ShowscaleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._scene import SceneValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._lightposition import LightpositionValidator
+    from ._lighting import LightingValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._isomin import IsominValidator
+    from ._isomax import IsomaxValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._flatshading import FlatshadingValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._contour import ContourValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._caps import CapsValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zhoverformat.ZhoverformatValidator",
+            "._z.ZValidator",
+            "._ysrc.YsrcValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._valuesrc.ValuesrcValidator",
+            "._valuehoverformat.ValuehoverformatValidator",
+            "._value.ValueValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._surface.SurfaceValidator",
+            "._stream.StreamValidator",
+            "._spaceframe.SpaceframeValidator",
+            "._slices.SlicesValidator",
+            "._showscale.ShowscaleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._scene.SceneValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._lightposition.LightpositionValidator",
+            "._lighting.LightingValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._isomin.IsominValidator",
+            "._isomax.IsomaxValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._flatshading.FlatshadingValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._contour.ContourValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._caps.CapsValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/isosurface/caps/__init__.py b/plotly/validators/isosurface/caps/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/isosurface/caps/__init__.py
+++ b/plotly/validators/isosurface/caps/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/isosurface/caps/x/__init__.py b/plotly/validators/isosurface/caps/x/__init__.py
index db8b1b549ef..63a14620d21 100644
--- a/plotly/validators/isosurface/caps/x/__init__.py
+++ b/plotly/validators/isosurface/caps/x/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._show.ShowValidator", "._fill.FillValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._fill import FillValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._show.ShowValidator", "._fill.FillValidator"]
+    )
diff --git a/plotly/validators/isosurface/caps/y/__init__.py b/plotly/validators/isosurface/caps/y/__init__.py
index db8b1b549ef..63a14620d21 100644
--- a/plotly/validators/isosurface/caps/y/__init__.py
+++ b/plotly/validators/isosurface/caps/y/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._show.ShowValidator", "._fill.FillValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._fill import FillValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._show.ShowValidator", "._fill.FillValidator"]
+    )
diff --git a/plotly/validators/isosurface/caps/z/__init__.py b/plotly/validators/isosurface/caps/z/__init__.py
index db8b1b549ef..63a14620d21 100644
--- a/plotly/validators/isosurface/caps/z/__init__.py
+++ b/plotly/validators/isosurface/caps/z/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._show.ShowValidator", "._fill.FillValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._fill import FillValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._show.ShowValidator", "._fill.FillValidator"]
+    )
diff --git a/plotly/validators/isosurface/colorbar/__init__.py b/plotly/validators/isosurface/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/isosurface/colorbar/__init__.py
+++ b/plotly/validators/isosurface/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/isosurface/colorbar/tickfont/__init__.py b/plotly/validators/isosurface/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/isosurface/colorbar/tickfont/__init__.py
+++ b/plotly/validators/isosurface/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/isosurface/colorbar/tickformatstop/__init__.py b/plotly/validators/isosurface/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/isosurface/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/isosurface/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/isosurface/colorbar/title/__init__.py b/plotly/validators/isosurface/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/isosurface/colorbar/title/__init__.py
+++ b/plotly/validators/isosurface/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/isosurface/colorbar/title/font/__init__.py b/plotly/validators/isosurface/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/isosurface/colorbar/title/font/__init__.py
+++ b/plotly/validators/isosurface/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/isosurface/contour/__init__.py b/plotly/validators/isosurface/contour/__init__.py
index 1a1cc3031d5..8d51b1d4c02 100644
--- a/plotly/validators/isosurface/contour/__init__.py
+++ b/plotly/validators/isosurface/contour/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._width.WidthValidator", "._show.ShowValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._show import ShowValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._width.WidthValidator", "._show.ShowValidator", "._color.ColorValidator"],
+    )
diff --git a/plotly/validators/isosurface/hoverlabel/__init__.py b/plotly/validators/isosurface/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/isosurface/hoverlabel/__init__.py
+++ b/plotly/validators/isosurface/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/isosurface/hoverlabel/font/__init__.py b/plotly/validators/isosurface/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/isosurface/hoverlabel/font/__init__.py
+++ b/plotly/validators/isosurface/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/isosurface/legendgrouptitle/__init__.py b/plotly/validators/isosurface/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/isosurface/legendgrouptitle/__init__.py
+++ b/plotly/validators/isosurface/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/isosurface/legendgrouptitle/font/__init__.py b/plotly/validators/isosurface/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/isosurface/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/isosurface/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/isosurface/lighting/__init__.py b/plotly/validators/isosurface/lighting/__init__.py
index 1f11e1b86fc..028351f35d6 100644
--- a/plotly/validators/isosurface/lighting/__init__.py
+++ b/plotly/validators/isosurface/lighting/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._vertexnormalsepsilon.VertexnormalsepsilonValidator",
-        "._specular.SpecularValidator",
-        "._roughness.RoughnessValidator",
-        "._fresnel.FresnelValidator",
-        "._facenormalsepsilon.FacenormalsepsilonValidator",
-        "._diffuse.DiffuseValidator",
-        "._ambient.AmbientValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._vertexnormalsepsilon import VertexnormalsepsilonValidator
+    from ._specular import SpecularValidator
+    from ._roughness import RoughnessValidator
+    from ._fresnel import FresnelValidator
+    from ._facenormalsepsilon import FacenormalsepsilonValidator
+    from ._diffuse import DiffuseValidator
+    from ._ambient import AmbientValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._vertexnormalsepsilon.VertexnormalsepsilonValidator",
+            "._specular.SpecularValidator",
+            "._roughness.RoughnessValidator",
+            "._fresnel.FresnelValidator",
+            "._facenormalsepsilon.FacenormalsepsilonValidator",
+            "._diffuse.DiffuseValidator",
+            "._ambient.AmbientValidator",
+        ],
+    )
diff --git a/plotly/validators/isosurface/lightposition/__init__.py b/plotly/validators/isosurface/lightposition/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/isosurface/lightposition/__init__.py
+++ b/plotly/validators/isosurface/lightposition/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/isosurface/slices/__init__.py b/plotly/validators/isosurface/slices/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/isosurface/slices/__init__.py
+++ b/plotly/validators/isosurface/slices/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/isosurface/slices/x/__init__.py b/plotly/validators/isosurface/slices/x/__init__.py
index 69805fd6116..9085068ffff 100644
--- a/plotly/validators/isosurface/slices/x/__init__.py
+++ b/plotly/validators/isosurface/slices/x/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._show.ShowValidator",
-        "._locationssrc.LocationssrcValidator",
-        "._locations.LocationsValidator",
-        "._fill.FillValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._locationssrc import LocationssrcValidator
+    from ._locations import LocationsValidator
+    from ._fill import FillValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._show.ShowValidator",
+            "._locationssrc.LocationssrcValidator",
+            "._locations.LocationsValidator",
+            "._fill.FillValidator",
+        ],
+    )
diff --git a/plotly/validators/isosurface/slices/y/__init__.py b/plotly/validators/isosurface/slices/y/__init__.py
index 69805fd6116..9085068ffff 100644
--- a/plotly/validators/isosurface/slices/y/__init__.py
+++ b/plotly/validators/isosurface/slices/y/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._show.ShowValidator",
-        "._locationssrc.LocationssrcValidator",
-        "._locations.LocationsValidator",
-        "._fill.FillValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._locationssrc import LocationssrcValidator
+    from ._locations import LocationsValidator
+    from ._fill import FillValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._show.ShowValidator",
+            "._locationssrc.LocationssrcValidator",
+            "._locations.LocationsValidator",
+            "._fill.FillValidator",
+        ],
+    )
diff --git a/plotly/validators/isosurface/slices/z/__init__.py b/plotly/validators/isosurface/slices/z/__init__.py
index 69805fd6116..9085068ffff 100644
--- a/plotly/validators/isosurface/slices/z/__init__.py
+++ b/plotly/validators/isosurface/slices/z/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._show.ShowValidator",
-        "._locationssrc.LocationssrcValidator",
-        "._locations.LocationsValidator",
-        "._fill.FillValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._locationssrc import LocationssrcValidator
+    from ._locations import LocationsValidator
+    from ._fill import FillValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._show.ShowValidator",
+            "._locationssrc.LocationssrcValidator",
+            "._locations.LocationsValidator",
+            "._fill.FillValidator",
+        ],
+    )
diff --git a/plotly/validators/isosurface/spaceframe/__init__.py b/plotly/validators/isosurface/spaceframe/__init__.py
index db8b1b549ef..63a14620d21 100644
--- a/plotly/validators/isosurface/spaceframe/__init__.py
+++ b/plotly/validators/isosurface/spaceframe/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._show.ShowValidator", "._fill.FillValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._fill import FillValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._show.ShowValidator", "._fill.FillValidator"]
+    )
diff --git a/plotly/validators/isosurface/stream/__init__.py b/plotly/validators/isosurface/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/isosurface/stream/__init__.py
+++ b/plotly/validators/isosurface/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/isosurface/surface/__init__.py b/plotly/validators/isosurface/surface/__init__.py
index e200f4835e8..79e3ea4c55c 100644
--- a/plotly/validators/isosurface/surface/__init__.py
+++ b/plotly/validators/isosurface/surface/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._show.ShowValidator",
-        "._pattern.PatternValidator",
-        "._fill.FillValidator",
-        "._count.CountValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._pattern import PatternValidator
+    from ._fill import FillValidator
+    from ._count import CountValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._show.ShowValidator",
+            "._pattern.PatternValidator",
+            "._fill.FillValidator",
+            "._count.CountValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/__init__.py b/plotly/validators/layout/__init__.py
index 7391b7923c4..fb124527519 100644
--- a/plotly/validators/layout/__init__.py
+++ b/plotly/validators/layout/__init__.py
@@ -1,104 +1,203 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yaxis.YaxisValidator",
-        "._xaxis.XaxisValidator",
-        "._width.WidthValidator",
-        "._waterfallmode.WaterfallmodeValidator",
-        "._waterfallgroupgap.WaterfallgroupgapValidator",
-        "._waterfallgap.WaterfallgapValidator",
-        "._violinmode.ViolinmodeValidator",
-        "._violingroupgap.ViolingroupgapValidator",
-        "._violingap.ViolingapValidator",
-        "._updatemenudefaults.UpdatemenudefaultsValidator",
-        "._updatemenus.UpdatemenusValidator",
-        "._uniformtext.UniformtextValidator",
-        "._uirevision.UirevisionValidator",
-        "._treemapcolorway.TreemapcolorwayValidator",
-        "._transition.TransitionValidator",
-        "._title.TitleValidator",
-        "._ternary.TernaryValidator",
-        "._template.TemplateValidator",
-        "._sunburstcolorway.SunburstcolorwayValidator",
-        "._spikedistance.SpikedistanceValidator",
-        "._smith.SmithValidator",
-        "._sliderdefaults.SliderdefaultsValidator",
-        "._sliders.SlidersValidator",
-        "._showlegend.ShowlegendValidator",
-        "._shapedefaults.ShapedefaultsValidator",
-        "._shapes.ShapesValidator",
-        "._separators.SeparatorsValidator",
-        "._selectiondefaults.SelectiondefaultsValidator",
-        "._selections.SelectionsValidator",
-        "._selectionrevision.SelectionrevisionValidator",
-        "._selectdirection.SelectdirectionValidator",
-        "._scene.SceneValidator",
-        "._scattermode.ScattermodeValidator",
-        "._scattergap.ScattergapValidator",
-        "._polar.PolarValidator",
-        "._plot_bgcolor.Plot_BgcolorValidator",
-        "._piecolorway.PiecolorwayValidator",
-        "._paper_bgcolor.Paper_BgcolorValidator",
-        "._newshape.NewshapeValidator",
-        "._newselection.NewselectionValidator",
-        "._modebar.ModebarValidator",
-        "._minreducedwidth.MinreducedwidthValidator",
-        "._minreducedheight.MinreducedheightValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._margin.MarginValidator",
-        "._mapbox.MapboxValidator",
-        "._map.MapValidator",
-        "._legend.LegendValidator",
-        "._imagedefaults.ImagedefaultsValidator",
-        "._images.ImagesValidator",
-        "._iciclecolorway.IciclecolorwayValidator",
-        "._hoversubplots.HoversubplotsValidator",
-        "._hovermode.HovermodeValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverdistance.HoverdistanceValidator",
-        "._hidesources.HidesourcesValidator",
-        "._hiddenlabelssrc.HiddenlabelssrcValidator",
-        "._hiddenlabels.HiddenlabelsValidator",
-        "._height.HeightValidator",
-        "._grid.GridValidator",
-        "._geo.GeoValidator",
-        "._funnelmode.FunnelmodeValidator",
-        "._funnelgroupgap.FunnelgroupgapValidator",
-        "._funnelgap.FunnelgapValidator",
-        "._funnelareacolorway.FunnelareacolorwayValidator",
-        "._font.FontValidator",
-        "._extendtreemapcolors.ExtendtreemapcolorsValidator",
-        "._extendsunburstcolors.ExtendsunburstcolorsValidator",
-        "._extendpiecolors.ExtendpiecolorsValidator",
-        "._extendiciclecolors.ExtendiciclecolorsValidator",
-        "._extendfunnelareacolors.ExtendfunnelareacolorsValidator",
-        "._editrevision.EditrevisionValidator",
-        "._dragmode.DragmodeValidator",
-        "._datarevision.DatarevisionValidator",
-        "._computed.ComputedValidator",
-        "._colorway.ColorwayValidator",
-        "._colorscale.ColorscaleValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._clickmode.ClickmodeValidator",
-        "._calendar.CalendarValidator",
-        "._boxmode.BoxmodeValidator",
-        "._boxgroupgap.BoxgroupgapValidator",
-        "._boxgap.BoxgapValidator",
-        "._barnorm.BarnormValidator",
-        "._barmode.BarmodeValidator",
-        "._bargroupgap.BargroupgapValidator",
-        "._bargap.BargapValidator",
-        "._barcornerradius.BarcornerradiusValidator",
-        "._autotypenumbers.AutotypenumbersValidator",
-        "._autosize.AutosizeValidator",
-        "._annotationdefaults.AnnotationdefaultsValidator",
-        "._annotations.AnnotationsValidator",
-        "._activeshape.ActiveshapeValidator",
-        "._activeselection.ActiveselectionValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yaxis import YaxisValidator
+    from ._xaxis import XaxisValidator
+    from ._width import WidthValidator
+    from ._waterfallmode import WaterfallmodeValidator
+    from ._waterfallgroupgap import WaterfallgroupgapValidator
+    from ._waterfallgap import WaterfallgapValidator
+    from ._violinmode import ViolinmodeValidator
+    from ._violingroupgap import ViolingroupgapValidator
+    from ._violingap import ViolingapValidator
+    from ._updatemenudefaults import UpdatemenudefaultsValidator
+    from ._updatemenus import UpdatemenusValidator
+    from ._uniformtext import UniformtextValidator
+    from ._uirevision import UirevisionValidator
+    from ._treemapcolorway import TreemapcolorwayValidator
+    from ._transition import TransitionValidator
+    from ._title import TitleValidator
+    from ._ternary import TernaryValidator
+    from ._template import TemplateValidator
+    from ._sunburstcolorway import SunburstcolorwayValidator
+    from ._spikedistance import SpikedistanceValidator
+    from ._smith import SmithValidator
+    from ._sliderdefaults import SliderdefaultsValidator
+    from ._sliders import SlidersValidator
+    from ._showlegend import ShowlegendValidator
+    from ._shapedefaults import ShapedefaultsValidator
+    from ._shapes import ShapesValidator
+    from ._separators import SeparatorsValidator
+    from ._selectiondefaults import SelectiondefaultsValidator
+    from ._selections import SelectionsValidator
+    from ._selectionrevision import SelectionrevisionValidator
+    from ._selectdirection import SelectdirectionValidator
+    from ._scene import SceneValidator
+    from ._scattermode import ScattermodeValidator
+    from ._scattergap import ScattergapValidator
+    from ._polar import PolarValidator
+    from ._plot_bgcolor import Plot_BgcolorValidator
+    from ._piecolorway import PiecolorwayValidator
+    from ._paper_bgcolor import Paper_BgcolorValidator
+    from ._newshape import NewshapeValidator
+    from ._newselection import NewselectionValidator
+    from ._modebar import ModebarValidator
+    from ._minreducedwidth import MinreducedwidthValidator
+    from ._minreducedheight import MinreducedheightValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._margin import MarginValidator
+    from ._mapbox import MapboxValidator
+    from ._map import MapValidator
+    from ._legend import LegendValidator
+    from ._imagedefaults import ImagedefaultsValidator
+    from ._images import ImagesValidator
+    from ._iciclecolorway import IciclecolorwayValidator
+    from ._hoversubplots import HoversubplotsValidator
+    from ._hovermode import HovermodeValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverdistance import HoverdistanceValidator
+    from ._hidesources import HidesourcesValidator
+    from ._hiddenlabelssrc import HiddenlabelssrcValidator
+    from ._hiddenlabels import HiddenlabelsValidator
+    from ._height import HeightValidator
+    from ._grid import GridValidator
+    from ._geo import GeoValidator
+    from ._funnelmode import FunnelmodeValidator
+    from ._funnelgroupgap import FunnelgroupgapValidator
+    from ._funnelgap import FunnelgapValidator
+    from ._funnelareacolorway import FunnelareacolorwayValidator
+    from ._font import FontValidator
+    from ._extendtreemapcolors import ExtendtreemapcolorsValidator
+    from ._extendsunburstcolors import ExtendsunburstcolorsValidator
+    from ._extendpiecolors import ExtendpiecolorsValidator
+    from ._extendiciclecolors import ExtendiciclecolorsValidator
+    from ._extendfunnelareacolors import ExtendfunnelareacolorsValidator
+    from ._editrevision import EditrevisionValidator
+    from ._dragmode import DragmodeValidator
+    from ._datarevision import DatarevisionValidator
+    from ._computed import ComputedValidator
+    from ._colorway import ColorwayValidator
+    from ._colorscale import ColorscaleValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._clickmode import ClickmodeValidator
+    from ._calendar import CalendarValidator
+    from ._boxmode import BoxmodeValidator
+    from ._boxgroupgap import BoxgroupgapValidator
+    from ._boxgap import BoxgapValidator
+    from ._barnorm import BarnormValidator
+    from ._barmode import BarmodeValidator
+    from ._bargroupgap import BargroupgapValidator
+    from ._bargap import BargapValidator
+    from ._barcornerradius import BarcornerradiusValidator
+    from ._autotypenumbers import AutotypenumbersValidator
+    from ._autosize import AutosizeValidator
+    from ._annotationdefaults import AnnotationdefaultsValidator
+    from ._annotations import AnnotationsValidator
+    from ._activeshape import ActiveshapeValidator
+    from ._activeselection import ActiveselectionValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yaxis.YaxisValidator",
+            "._xaxis.XaxisValidator",
+            "._width.WidthValidator",
+            "._waterfallmode.WaterfallmodeValidator",
+            "._waterfallgroupgap.WaterfallgroupgapValidator",
+            "._waterfallgap.WaterfallgapValidator",
+            "._violinmode.ViolinmodeValidator",
+            "._violingroupgap.ViolingroupgapValidator",
+            "._violingap.ViolingapValidator",
+            "._updatemenudefaults.UpdatemenudefaultsValidator",
+            "._updatemenus.UpdatemenusValidator",
+            "._uniformtext.UniformtextValidator",
+            "._uirevision.UirevisionValidator",
+            "._treemapcolorway.TreemapcolorwayValidator",
+            "._transition.TransitionValidator",
+            "._title.TitleValidator",
+            "._ternary.TernaryValidator",
+            "._template.TemplateValidator",
+            "._sunburstcolorway.SunburstcolorwayValidator",
+            "._spikedistance.SpikedistanceValidator",
+            "._smith.SmithValidator",
+            "._sliderdefaults.SliderdefaultsValidator",
+            "._sliders.SlidersValidator",
+            "._showlegend.ShowlegendValidator",
+            "._shapedefaults.ShapedefaultsValidator",
+            "._shapes.ShapesValidator",
+            "._separators.SeparatorsValidator",
+            "._selectiondefaults.SelectiondefaultsValidator",
+            "._selections.SelectionsValidator",
+            "._selectionrevision.SelectionrevisionValidator",
+            "._selectdirection.SelectdirectionValidator",
+            "._scene.SceneValidator",
+            "._scattermode.ScattermodeValidator",
+            "._scattergap.ScattergapValidator",
+            "._polar.PolarValidator",
+            "._plot_bgcolor.Plot_BgcolorValidator",
+            "._piecolorway.PiecolorwayValidator",
+            "._paper_bgcolor.Paper_BgcolorValidator",
+            "._newshape.NewshapeValidator",
+            "._newselection.NewselectionValidator",
+            "._modebar.ModebarValidator",
+            "._minreducedwidth.MinreducedwidthValidator",
+            "._minreducedheight.MinreducedheightValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._margin.MarginValidator",
+            "._mapbox.MapboxValidator",
+            "._map.MapValidator",
+            "._legend.LegendValidator",
+            "._imagedefaults.ImagedefaultsValidator",
+            "._images.ImagesValidator",
+            "._iciclecolorway.IciclecolorwayValidator",
+            "._hoversubplots.HoversubplotsValidator",
+            "._hovermode.HovermodeValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverdistance.HoverdistanceValidator",
+            "._hidesources.HidesourcesValidator",
+            "._hiddenlabelssrc.HiddenlabelssrcValidator",
+            "._hiddenlabels.HiddenlabelsValidator",
+            "._height.HeightValidator",
+            "._grid.GridValidator",
+            "._geo.GeoValidator",
+            "._funnelmode.FunnelmodeValidator",
+            "._funnelgroupgap.FunnelgroupgapValidator",
+            "._funnelgap.FunnelgapValidator",
+            "._funnelareacolorway.FunnelareacolorwayValidator",
+            "._font.FontValidator",
+            "._extendtreemapcolors.ExtendtreemapcolorsValidator",
+            "._extendsunburstcolors.ExtendsunburstcolorsValidator",
+            "._extendpiecolors.ExtendpiecolorsValidator",
+            "._extendiciclecolors.ExtendiciclecolorsValidator",
+            "._extendfunnelareacolors.ExtendfunnelareacolorsValidator",
+            "._editrevision.EditrevisionValidator",
+            "._dragmode.DragmodeValidator",
+            "._datarevision.DatarevisionValidator",
+            "._computed.ComputedValidator",
+            "._colorway.ColorwayValidator",
+            "._colorscale.ColorscaleValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._clickmode.ClickmodeValidator",
+            "._calendar.CalendarValidator",
+            "._boxmode.BoxmodeValidator",
+            "._boxgroupgap.BoxgroupgapValidator",
+            "._boxgap.BoxgapValidator",
+            "._barnorm.BarnormValidator",
+            "._barmode.BarmodeValidator",
+            "._bargroupgap.BargroupgapValidator",
+            "._bargap.BargapValidator",
+            "._barcornerradius.BarcornerradiusValidator",
+            "._autotypenumbers.AutotypenumbersValidator",
+            "._autosize.AutosizeValidator",
+            "._annotationdefaults.AnnotationdefaultsValidator",
+            "._annotations.AnnotationsValidator",
+            "._activeshape.ActiveshapeValidator",
+            "._activeselection.ActiveselectionValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/_hoverdistance.py b/plotly/validators/layout/_hoverdistance.py
index 08ad86844ed..58e9ed30d0d 100644
--- a/plotly/validators/layout/_hoverdistance.py
+++ b/plotly/validators/layout/_hoverdistance.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -5,11 +9,10 @@
 
 
 class HoverdistanceValidator(_bv.IntegerValidator):
-    def __init__(self, plotly_name="hoverdistance", parent_name="layout", **kwargs):
-        super().__init__(
-            plotly_name,
-            parent_name,
-            edit_type=kwargs.pop("edit_type", "none"),
-            min=kwargs.pop("min", -1),
-            **kwargs,
-        )
+    def __init__(self, plotly_name='hoverdistance',
+                       parent_name='layout',
+                       **kwargs):
+        super().__init__(plotly_name, parent_name,
+                 edit_type=kwargs.pop('edit_type', 'none'),
+                 min=kwargs.pop('min', -1),
+        **kwargs)
\ No newline at end of file
diff --git a/plotly/validators/layout/_spikedistance.py b/plotly/validators/layout/_spikedistance.py
index f5749a9770f..b7c369ca9dc 100644
--- a/plotly/validators/layout/_spikedistance.py
+++ b/plotly/validators/layout/_spikedistance.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -5,11 +9,10 @@
 
 
 class SpikedistanceValidator(_bv.IntegerValidator):
-    def __init__(self, plotly_name="spikedistance", parent_name="layout", **kwargs):
-        super().__init__(
-            plotly_name,
-            parent_name,
-            edit_type=kwargs.pop("edit_type", "none"),
-            min=kwargs.pop("min", -1),
-            **kwargs,
-        )
+    def __init__(self, plotly_name='spikedistance',
+                       parent_name='layout',
+                       **kwargs):
+        super().__init__(plotly_name, parent_name,
+                 edit_type=kwargs.pop('edit_type', 'none'),
+                 min=kwargs.pop('min', -1),
+        **kwargs)
\ No newline at end of file
diff --git a/plotly/validators/layout/activeselection/__init__.py b/plotly/validators/layout/activeselection/__init__.py
index 77d0d42f57a..37b66700cd0 100644
--- a/plotly/validators/layout/activeselection/__init__.py
+++ b/plotly/validators/layout/activeselection/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator", "._fillcolor.FillcolorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+    from ._fillcolor import FillcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator", "._fillcolor.FillcolorValidator"]
+    )
diff --git a/plotly/validators/layout/activeshape/__init__.py b/plotly/validators/layout/activeshape/__init__.py
index 77d0d42f57a..37b66700cd0 100644
--- a/plotly/validators/layout/activeshape/__init__.py
+++ b/plotly/validators/layout/activeshape/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator", "._fillcolor.FillcolorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+    from ._fillcolor import FillcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator", "._fillcolor.FillcolorValidator"]
+    )
diff --git a/plotly/validators/layout/annotation/__init__.py b/plotly/validators/layout/annotation/__init__.py
index 2e288b849bf..90ee50de9b1 100644
--- a/plotly/validators/layout/annotation/__init__.py
+++ b/plotly/validators/layout/annotation/__init__.py
@@ -1,52 +1,99 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yshift.YshiftValidator",
-        "._yref.YrefValidator",
-        "._yclick.YclickValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xshift.XshiftValidator",
-        "._xref.XrefValidator",
-        "._xclick.XclickValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._valign.ValignValidator",
-        "._textangle.TextangleValidator",
-        "._text.TextValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._startstandoff.StartstandoffValidator",
-        "._startarrowsize.StartarrowsizeValidator",
-        "._startarrowhead.StartarrowheadValidator",
-        "._standoff.StandoffValidator",
-        "._showarrow.ShowarrowValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._hovertext.HovertextValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._height.HeightValidator",
-        "._font.FontValidator",
-        "._clicktoshow.ClicktoshowValidator",
-        "._captureevents.CaptureeventsValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._borderpad.BorderpadValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-        "._ayref.AyrefValidator",
-        "._ay.AyValidator",
-        "._axref.AxrefValidator",
-        "._ax.AxValidator",
-        "._arrowwidth.ArrowwidthValidator",
-        "._arrowsize.ArrowsizeValidator",
-        "._arrowside.ArrowsideValidator",
-        "._arrowhead.ArrowheadValidator",
-        "._arrowcolor.ArrowcolorValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yshift import YshiftValidator
+    from ._yref import YrefValidator
+    from ._yclick import YclickValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xshift import XshiftValidator
+    from ._xref import XrefValidator
+    from ._xclick import XclickValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._valign import ValignValidator
+    from ._textangle import TextangleValidator
+    from ._text import TextValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._startstandoff import StartstandoffValidator
+    from ._startarrowsize import StartarrowsizeValidator
+    from ._startarrowhead import StartarrowheadValidator
+    from ._standoff import StandoffValidator
+    from ._showarrow import ShowarrowValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._hovertext import HovertextValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._height import HeightValidator
+    from ._font import FontValidator
+    from ._clicktoshow import ClicktoshowValidator
+    from ._captureevents import CaptureeventsValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._borderpad import BorderpadValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+    from ._ayref import AyrefValidator
+    from ._ay import AyValidator
+    from ._axref import AxrefValidator
+    from ._ax import AxValidator
+    from ._arrowwidth import ArrowwidthValidator
+    from ._arrowsize import ArrowsizeValidator
+    from ._arrowside import ArrowsideValidator
+    from ._arrowhead import ArrowheadValidator
+    from ._arrowcolor import ArrowcolorValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yshift.YshiftValidator",
+            "._yref.YrefValidator",
+            "._yclick.YclickValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xshift.XshiftValidator",
+            "._xref.XrefValidator",
+            "._xclick.XclickValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._valign.ValignValidator",
+            "._textangle.TextangleValidator",
+            "._text.TextValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._startstandoff.StartstandoffValidator",
+            "._startarrowsize.StartarrowsizeValidator",
+            "._startarrowhead.StartarrowheadValidator",
+            "._standoff.StandoffValidator",
+            "._showarrow.ShowarrowValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._hovertext.HovertextValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._height.HeightValidator",
+            "._font.FontValidator",
+            "._clicktoshow.ClicktoshowValidator",
+            "._captureevents.CaptureeventsValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._borderpad.BorderpadValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+            "._ayref.AyrefValidator",
+            "._ay.AyValidator",
+            "._axref.AxrefValidator",
+            "._ax.AxValidator",
+            "._arrowwidth.ArrowwidthValidator",
+            "._arrowsize.ArrowsizeValidator",
+            "._arrowside.ArrowsideValidator",
+            "._arrowhead.ArrowheadValidator",
+            "._arrowcolor.ArrowcolorValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/annotation/font/__init__.py b/plotly/validators/layout/annotation/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/annotation/font/__init__.py
+++ b/plotly/validators/layout/annotation/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/annotation/hoverlabel/__init__.py b/plotly/validators/layout/annotation/hoverlabel/__init__.py
index 040f0045ebc..6cd9f4b93cd 100644
--- a/plotly/validators/layout/annotation/hoverlabel/__init__.py
+++ b/plotly/validators/layout/annotation/hoverlabel/__init__.py
@@ -1,12 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._font.FontValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import FontValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._font.FontValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/annotation/hoverlabel/font/__init__.py b/plotly/validators/layout/annotation/hoverlabel/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/annotation/hoverlabel/font/__init__.py
+++ b/plotly/validators/layout/annotation/hoverlabel/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/coloraxis/__init__.py b/plotly/validators/layout/coloraxis/__init__.py
index 946b642b29a..e57f36a2392 100644
--- a/plotly/validators/layout/coloraxis/__init__.py
+++ b/plotly/validators/layout/coloraxis/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/coloraxis/colorbar/__init__.py b/plotly/validators/layout/coloraxis/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/layout/coloraxis/colorbar/__init__.py
+++ b/plotly/validators/layout/coloraxis/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/coloraxis/colorbar/tickfont/__init__.py b/plotly/validators/layout/coloraxis/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/coloraxis/colorbar/tickfont/__init__.py
+++ b/plotly/validators/layout/coloraxis/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/coloraxis/colorbar/tickformatstop/__init__.py b/plotly/validators/layout/coloraxis/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/layout/coloraxis/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/layout/coloraxis/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/coloraxis/colorbar/title/__init__.py b/plotly/validators/layout/coloraxis/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/layout/coloraxis/colorbar/title/__init__.py
+++ b/plotly/validators/layout/coloraxis/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/layout/coloraxis/colorbar/title/font/__init__.py b/plotly/validators/layout/coloraxis/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/coloraxis/colorbar/title/font/__init__.py
+++ b/plotly/validators/layout/coloraxis/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/colorscale/__init__.py b/plotly/validators/layout/colorscale/__init__.py
index 7d22f8a8138..0dc4e7ac68d 100644
--- a/plotly/validators/layout/colorscale/__init__.py
+++ b/plotly/validators/layout/colorscale/__init__.py
@@ -1,12 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._sequentialminus.SequentialminusValidator",
-        "._sequential.SequentialValidator",
-        "._diverging.DivergingValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._sequentialminus import SequentialminusValidator
+    from ._sequential import SequentialValidator
+    from ._diverging import DivergingValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._sequentialminus.SequentialminusValidator",
+            "._sequential.SequentialValidator",
+            "._diverging.DivergingValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/font/__init__.py b/plotly/validators/layout/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/font/__init__.py
+++ b/plotly/validators/layout/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/geo/__init__.py b/plotly/validators/layout/geo/__init__.py
index d43faed81e9..ea8ac8b2d9a 100644
--- a/plotly/validators/layout/geo/__init__.py
+++ b/plotly/validators/layout/geo/__init__.py
@@ -1,41 +1,77 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._subunitwidth.SubunitwidthValidator",
-        "._subunitcolor.SubunitcolorValidator",
-        "._showsubunits.ShowsubunitsValidator",
-        "._showrivers.ShowriversValidator",
-        "._showocean.ShowoceanValidator",
-        "._showland.ShowlandValidator",
-        "._showlakes.ShowlakesValidator",
-        "._showframe.ShowframeValidator",
-        "._showcountries.ShowcountriesValidator",
-        "._showcoastlines.ShowcoastlinesValidator",
-        "._scope.ScopeValidator",
-        "._riverwidth.RiverwidthValidator",
-        "._rivercolor.RivercolorValidator",
-        "._resolution.ResolutionValidator",
-        "._projection.ProjectionValidator",
-        "._oceancolor.OceancolorValidator",
-        "._lonaxis.LonaxisValidator",
-        "._lataxis.LataxisValidator",
-        "._landcolor.LandcolorValidator",
-        "._lakecolor.LakecolorValidator",
-        "._framewidth.FramewidthValidator",
-        "._framecolor.FramecolorValidator",
-        "._fitbounds.FitboundsValidator",
-        "._domain.DomainValidator",
-        "._countrywidth.CountrywidthValidator",
-        "._countrycolor.CountrycolorValidator",
-        "._coastlinewidth.CoastlinewidthValidator",
-        "._coastlinecolor.CoastlinecolorValidator",
-        "._center.CenterValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._subunitwidth import SubunitwidthValidator
+    from ._subunitcolor import SubunitcolorValidator
+    from ._showsubunits import ShowsubunitsValidator
+    from ._showrivers import ShowriversValidator
+    from ._showocean import ShowoceanValidator
+    from ._showland import ShowlandValidator
+    from ._showlakes import ShowlakesValidator
+    from ._showframe import ShowframeValidator
+    from ._showcountries import ShowcountriesValidator
+    from ._showcoastlines import ShowcoastlinesValidator
+    from ._scope import ScopeValidator
+    from ._riverwidth import RiverwidthValidator
+    from ._rivercolor import RivercolorValidator
+    from ._resolution import ResolutionValidator
+    from ._projection import ProjectionValidator
+    from ._oceancolor import OceancolorValidator
+    from ._lonaxis import LonaxisValidator
+    from ._lataxis import LataxisValidator
+    from ._landcolor import LandcolorValidator
+    from ._lakecolor import LakecolorValidator
+    from ._framewidth import FramewidthValidator
+    from ._framecolor import FramecolorValidator
+    from ._fitbounds import FitboundsValidator
+    from ._domain import DomainValidator
+    from ._countrywidth import CountrywidthValidator
+    from ._countrycolor import CountrycolorValidator
+    from ._coastlinewidth import CoastlinewidthValidator
+    from ._coastlinecolor import CoastlinecolorValidator
+    from ._center import CenterValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._subunitwidth.SubunitwidthValidator",
+            "._subunitcolor.SubunitcolorValidator",
+            "._showsubunits.ShowsubunitsValidator",
+            "._showrivers.ShowriversValidator",
+            "._showocean.ShowoceanValidator",
+            "._showland.ShowlandValidator",
+            "._showlakes.ShowlakesValidator",
+            "._showframe.ShowframeValidator",
+            "._showcountries.ShowcountriesValidator",
+            "._showcoastlines.ShowcoastlinesValidator",
+            "._scope.ScopeValidator",
+            "._riverwidth.RiverwidthValidator",
+            "._rivercolor.RivercolorValidator",
+            "._resolution.ResolutionValidator",
+            "._projection.ProjectionValidator",
+            "._oceancolor.OceancolorValidator",
+            "._lonaxis.LonaxisValidator",
+            "._lataxis.LataxisValidator",
+            "._landcolor.LandcolorValidator",
+            "._lakecolor.LakecolorValidator",
+            "._framewidth.FramewidthValidator",
+            "._framecolor.FramecolorValidator",
+            "._fitbounds.FitboundsValidator",
+            "._domain.DomainValidator",
+            "._countrywidth.CountrywidthValidator",
+            "._countrycolor.CountrycolorValidator",
+            "._coastlinewidth.CoastlinewidthValidator",
+            "._coastlinecolor.CoastlinecolorValidator",
+            "._center.CenterValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/geo/center/__init__.py b/plotly/validators/layout/geo/center/__init__.py
index bd950673215..a723b74f147 100644
--- a/plotly/validators/layout/geo/center/__init__.py
+++ b/plotly/validators/layout/geo/center/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._lon.LonValidator", "._lat.LatValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._lon import LonValidator
+    from ._lat import LatValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._lon.LonValidator", "._lat.LatValidator"]
+    )
diff --git a/plotly/validators/layout/geo/domain/__init__.py b/plotly/validators/layout/geo/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/layout/geo/domain/__init__.py
+++ b/plotly/validators/layout/geo/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/geo/lataxis/__init__.py b/plotly/validators/layout/geo/lataxis/__init__.py
index 35af96359d0..307a63cc3fa 100644
--- a/plotly/validators/layout/geo/lataxis/__init__.py
+++ b/plotly/validators/layout/geo/lataxis/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._tick0.Tick0Validator",
-        "._showgrid.ShowgridValidator",
-        "._range.RangeValidator",
-        "._gridwidth.GridwidthValidator",
-        "._griddash.GriddashValidator",
-        "._gridcolor.GridcolorValidator",
-        "._dtick.DtickValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tick0 import Tick0Validator
+    from ._showgrid import ShowgridValidator
+    from ._range import RangeValidator
+    from ._gridwidth import GridwidthValidator
+    from ._griddash import GriddashValidator
+    from ._gridcolor import GridcolorValidator
+    from ._dtick import DtickValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._tick0.Tick0Validator",
+            "._showgrid.ShowgridValidator",
+            "._range.RangeValidator",
+            "._gridwidth.GridwidthValidator",
+            "._griddash.GriddashValidator",
+            "._gridcolor.GridcolorValidator",
+            "._dtick.DtickValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/geo/lonaxis/__init__.py b/plotly/validators/layout/geo/lonaxis/__init__.py
index 35af96359d0..307a63cc3fa 100644
--- a/plotly/validators/layout/geo/lonaxis/__init__.py
+++ b/plotly/validators/layout/geo/lonaxis/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._tick0.Tick0Validator",
-        "._showgrid.ShowgridValidator",
-        "._range.RangeValidator",
-        "._gridwidth.GridwidthValidator",
-        "._griddash.GriddashValidator",
-        "._gridcolor.GridcolorValidator",
-        "._dtick.DtickValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tick0 import Tick0Validator
+    from ._showgrid import ShowgridValidator
+    from ._range import RangeValidator
+    from ._gridwidth import GridwidthValidator
+    from ._griddash import GriddashValidator
+    from ._gridcolor import GridcolorValidator
+    from ._dtick import DtickValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._tick0.Tick0Validator",
+            "._showgrid.ShowgridValidator",
+            "._range.RangeValidator",
+            "._gridwidth.GridwidthValidator",
+            "._griddash.GriddashValidator",
+            "._gridcolor.GridcolorValidator",
+            "._dtick.DtickValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/geo/projection/__init__.py b/plotly/validators/layout/geo/projection/__init__.py
index 0aa54472039..eae069ecb76 100644
--- a/plotly/validators/layout/geo/projection/__init__.py
+++ b/plotly/validators/layout/geo/projection/__init__.py
@@ -1,15 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._type.TypeValidator",
-        "._tilt.TiltValidator",
-        "._scale.ScaleValidator",
-        "._rotation.RotationValidator",
-        "._parallels.ParallelsValidator",
-        "._distance.DistanceValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._type import TypeValidator
+    from ._tilt import TiltValidator
+    from ._scale import ScaleValidator
+    from ._rotation import RotationValidator
+    from ._parallels import ParallelsValidator
+    from ._distance import DistanceValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._type.TypeValidator",
+            "._tilt.TiltValidator",
+            "._scale.ScaleValidator",
+            "._rotation.RotationValidator",
+            "._parallels.ParallelsValidator",
+            "._distance.DistanceValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/geo/projection/_distance.py b/plotly/validators/layout/geo/projection/_distance.py
index 5b35ba6fc6f..243cb1e0dac 100644
--- a/plotly/validators/layout/geo/projection/_distance.py
+++ b/plotly/validators/layout/geo/projection/_distance.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -5,13 +9,10 @@
 
 
 class DistanceValidator(_bv.NumberValidator):
-    def __init__(
-        self, plotly_name="distance", parent_name="layout.geo.projection", **kwargs
-    ):
-        super().__init__(
-            plotly_name,
-            parent_name,
-            edit_type=kwargs.pop("edit_type", "plot"),
-            min=kwargs.pop("min", 1.001),
-            **kwargs,
-        )
+    def __init__(self, plotly_name='distance',
+                       parent_name='layout.geo.projection',
+                       **kwargs):
+        super().__init__(plotly_name, parent_name,
+                 edit_type=kwargs.pop('edit_type', 'plot'),
+                 min=kwargs.pop('min', 1.001),
+        **kwargs)
\ No newline at end of file
diff --git a/plotly/validators/layout/geo/projection/rotation/__init__.py b/plotly/validators/layout/geo/projection/rotation/__init__.py
index 731481deed5..2d51bf35990 100644
--- a/plotly/validators/layout/geo/projection/rotation/__init__.py
+++ b/plotly/validators/layout/geo/projection/rotation/__init__.py
@@ -1,6 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._roll.RollValidator", "._lon.LonValidator", "._lat.LatValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._roll import RollValidator
+    from ._lon import LonValidator
+    from ._lat import LatValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._roll.RollValidator", "._lon.LonValidator", "._lat.LatValidator"],
+    )
diff --git a/plotly/validators/layout/grid/__init__.py b/plotly/validators/layout/grid/__init__.py
index 87f0927e7d6..2557633adeb 100644
--- a/plotly/validators/layout/grid/__init__.py
+++ b/plotly/validators/layout/grid/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yside.YsideValidator",
-        "._ygap.YgapValidator",
-        "._yaxes.YaxesValidator",
-        "._xside.XsideValidator",
-        "._xgap.XgapValidator",
-        "._xaxes.XaxesValidator",
-        "._subplots.SubplotsValidator",
-        "._rows.RowsValidator",
-        "._roworder.RoworderValidator",
-        "._pattern.PatternValidator",
-        "._domain.DomainValidator",
-        "._columns.ColumnsValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yside import YsideValidator
+    from ._ygap import YgapValidator
+    from ._yaxes import YaxesValidator
+    from ._xside import XsideValidator
+    from ._xgap import XgapValidator
+    from ._xaxes import XaxesValidator
+    from ._subplots import SubplotsValidator
+    from ._rows import RowsValidator
+    from ._roworder import RoworderValidator
+    from ._pattern import PatternValidator
+    from ._domain import DomainValidator
+    from ._columns import ColumnsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yside.YsideValidator",
+            "._ygap.YgapValidator",
+            "._yaxes.YaxesValidator",
+            "._xside.XsideValidator",
+            "._xgap.XgapValidator",
+            "._xaxes.XaxesValidator",
+            "._subplots.SubplotsValidator",
+            "._rows.RowsValidator",
+            "._roworder.RoworderValidator",
+            "._pattern.PatternValidator",
+            "._domain.DomainValidator",
+            "._columns.ColumnsValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/grid/domain/__init__.py b/plotly/validators/layout/grid/domain/__init__.py
index 29cce5a77b8..6b635136346 100644
--- a/plotly/validators/layout/grid/domain/__init__.py
+++ b/plotly/validators/layout/grid/domain/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/layout/hoverlabel/__init__.py b/plotly/validators/layout/hoverlabel/__init__.py
index 039fdeadc7f..1d84805b7fd 100644
--- a/plotly/validators/layout/hoverlabel/__init__.py
+++ b/plotly/validators/layout/hoverlabel/__init__.py
@@ -1,15 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelength.NamelengthValidator",
-        "._grouptitlefont.GrouptitlefontValidator",
-        "._font.FontValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelength import NamelengthValidator
+    from ._grouptitlefont import GrouptitlefontValidator
+    from ._font import FontValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelength.NamelengthValidator",
+            "._grouptitlefont.GrouptitlefontValidator",
+            "._font.FontValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/hoverlabel/font/__init__.py b/plotly/validators/layout/hoverlabel/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/hoverlabel/font/__init__.py
+++ b/plotly/validators/layout/hoverlabel/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/hoverlabel/grouptitlefont/__init__.py b/plotly/validators/layout/hoverlabel/grouptitlefont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/hoverlabel/grouptitlefont/__init__.py
+++ b/plotly/validators/layout/hoverlabel/grouptitlefont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/image/__init__.py b/plotly/validators/layout/image/__init__.py
index 3049d482d7a..2adb6f66953 100644
--- a/plotly/validators/layout/image/__init__.py
+++ b/plotly/validators/layout/image/__init__.py
@@ -1,24 +1,43 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._source.SourceValidator",
-        "._sizing.SizingValidator",
-        "._sizey.SizeyValidator",
-        "._sizex.SizexValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._layer.LayerValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._source import SourceValidator
+    from ._sizing import SizingValidator
+    from ._sizey import SizeyValidator
+    from ._sizex import SizexValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._layer import LayerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._source.SourceValidator",
+            "._sizing.SizingValidator",
+            "._sizey.SizeyValidator",
+            "._sizex.SizexValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._layer.LayerValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/legend/__init__.py b/plotly/validators/layout/legend/__init__.py
index 1dd13804329..64c39fe4948 100644
--- a/plotly/validators/layout/legend/__init__.py
+++ b/plotly/validators/layout/legend/__init__.py
@@ -1,35 +1,65 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._valign.ValignValidator",
-        "._uirevision.UirevisionValidator",
-        "._traceorder.TraceorderValidator",
-        "._tracegroupgap.TracegroupgapValidator",
-        "._title.TitleValidator",
-        "._orientation.OrientationValidator",
-        "._itemwidth.ItemwidthValidator",
-        "._itemsizing.ItemsizingValidator",
-        "._itemdoubleclick.ItemdoubleclickValidator",
-        "._itemclick.ItemclickValidator",
-        "._indentation.IndentationValidator",
-        "._grouptitlefont.GrouptitlefontValidator",
-        "._groupclick.GroupclickValidator",
-        "._font.FontValidator",
-        "._entrywidthmode.EntrywidthmodeValidator",
-        "._entrywidth.EntrywidthValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._valign import ValignValidator
+    from ._uirevision import UirevisionValidator
+    from ._traceorder import TraceorderValidator
+    from ._tracegroupgap import TracegroupgapValidator
+    from ._title import TitleValidator
+    from ._orientation import OrientationValidator
+    from ._itemwidth import ItemwidthValidator
+    from ._itemsizing import ItemsizingValidator
+    from ._itemdoubleclick import ItemdoubleclickValidator
+    from ._itemclick import ItemclickValidator
+    from ._indentation import IndentationValidator
+    from ._grouptitlefont import GrouptitlefontValidator
+    from ._groupclick import GroupclickValidator
+    from ._font import FontValidator
+    from ._entrywidthmode import EntrywidthmodeValidator
+    from ._entrywidth import EntrywidthValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._valign.ValignValidator",
+            "._uirevision.UirevisionValidator",
+            "._traceorder.TraceorderValidator",
+            "._tracegroupgap.TracegroupgapValidator",
+            "._title.TitleValidator",
+            "._orientation.OrientationValidator",
+            "._itemwidth.ItemwidthValidator",
+            "._itemsizing.ItemsizingValidator",
+            "._itemdoubleclick.ItemdoubleclickValidator",
+            "._itemclick.ItemclickValidator",
+            "._indentation.IndentationValidator",
+            "._grouptitlefont.GrouptitlefontValidator",
+            "._groupclick.GroupclickValidator",
+            "._font.FontValidator",
+            "._entrywidthmode.EntrywidthmodeValidator",
+            "._entrywidth.EntrywidthValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/legend/font/__init__.py b/plotly/validators/layout/legend/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/legend/font/__init__.py
+++ b/plotly/validators/layout/legend/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/legend/grouptitlefont/__init__.py b/plotly/validators/layout/legend/grouptitlefont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/legend/grouptitlefont/__init__.py
+++ b/plotly/validators/layout/legend/grouptitlefont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/legend/title/__init__.py b/plotly/validators/layout/legend/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/layout/legend/title/__init__.py
+++ b/plotly/validators/layout/legend/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/layout/legend/title/font/__init__.py b/plotly/validators/layout/legend/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/legend/title/font/__init__.py
+++ b/plotly/validators/layout/legend/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/map/__init__.py b/plotly/validators/layout/map/__init__.py
index a9910810fb6..13714b4f18d 100644
--- a/plotly/validators/layout/map/__init__.py
+++ b/plotly/validators/layout/map/__init__.py
@@ -1,19 +1,33 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zoom.ZoomValidator",
-        "._uirevision.UirevisionValidator",
-        "._style.StyleValidator",
-        "._pitch.PitchValidator",
-        "._layerdefaults.LayerdefaultsValidator",
-        "._layers.LayersValidator",
-        "._domain.DomainValidator",
-        "._center.CenterValidator",
-        "._bounds.BoundsValidator",
-        "._bearing.BearingValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zoom import ZoomValidator
+    from ._uirevision import UirevisionValidator
+    from ._style import StyleValidator
+    from ._pitch import PitchValidator
+    from ._layerdefaults import LayerdefaultsValidator
+    from ._layers import LayersValidator
+    from ._domain import DomainValidator
+    from ._center import CenterValidator
+    from ._bounds import BoundsValidator
+    from ._bearing import BearingValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zoom.ZoomValidator",
+            "._uirevision.UirevisionValidator",
+            "._style.StyleValidator",
+            "._pitch.PitchValidator",
+            "._layerdefaults.LayerdefaultsValidator",
+            "._layers.LayersValidator",
+            "._domain.DomainValidator",
+            "._center.CenterValidator",
+            "._bounds.BoundsValidator",
+            "._bearing.BearingValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/map/bounds/__init__.py b/plotly/validators/layout/map/bounds/__init__.py
index fe63c18499e..c07c964cd67 100644
--- a/plotly/validators/layout/map/bounds/__init__.py
+++ b/plotly/validators/layout/map/bounds/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._west.WestValidator",
-        "._south.SouthValidator",
-        "._north.NorthValidator",
-        "._east.EastValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._west import WestValidator
+    from ._south import SouthValidator
+    from ._north import NorthValidator
+    from ._east import EastValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._west.WestValidator",
+            "._south.SouthValidator",
+            "._north.NorthValidator",
+            "._east.EastValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/map/center/__init__.py b/plotly/validators/layout/map/center/__init__.py
index bd950673215..a723b74f147 100644
--- a/plotly/validators/layout/map/center/__init__.py
+++ b/plotly/validators/layout/map/center/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._lon.LonValidator", "._lat.LatValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._lon import LonValidator
+    from ._lat import LatValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._lon.LonValidator", "._lat.LatValidator"]
+    )
diff --git a/plotly/validators/layout/map/domain/__init__.py b/plotly/validators/layout/map/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/layout/map/domain/__init__.py
+++ b/plotly/validators/layout/map/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/map/layer/__init__.py b/plotly/validators/layout/map/layer/__init__.py
index 824c7d802a9..93e08a556b2 100644
--- a/plotly/validators/layout/map/layer/__init__.py
+++ b/plotly/validators/layout/map/layer/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._type.TypeValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._symbol.SymbolValidator",
-        "._sourcetype.SourcetypeValidator",
-        "._sourcelayer.SourcelayerValidator",
-        "._sourceattribution.SourceattributionValidator",
-        "._source.SourceValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._minzoom.MinzoomValidator",
-        "._maxzoom.MaxzoomValidator",
-        "._line.LineValidator",
-        "._fill.FillValidator",
-        "._coordinates.CoordinatesValidator",
-        "._color.ColorValidator",
-        "._circle.CircleValidator",
-        "._below.BelowValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._type import TypeValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._symbol import SymbolValidator
+    from ._sourcetype import SourcetypeValidator
+    from ._sourcelayer import SourcelayerValidator
+    from ._sourceattribution import SourceattributionValidator
+    from ._source import SourceValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._minzoom import MinzoomValidator
+    from ._maxzoom import MaxzoomValidator
+    from ._line import LineValidator
+    from ._fill import FillValidator
+    from ._coordinates import CoordinatesValidator
+    from ._color import ColorValidator
+    from ._circle import CircleValidator
+    from ._below import BelowValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._type.TypeValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._symbol.SymbolValidator",
+            "._sourcetype.SourcetypeValidator",
+            "._sourcelayer.SourcelayerValidator",
+            "._sourceattribution.SourceattributionValidator",
+            "._source.SourceValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._minzoom.MinzoomValidator",
+            "._maxzoom.MaxzoomValidator",
+            "._line.LineValidator",
+            "._fill.FillValidator",
+            "._coordinates.CoordinatesValidator",
+            "._color.ColorValidator",
+            "._circle.CircleValidator",
+            "._below.BelowValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/map/layer/circle/__init__.py b/plotly/validators/layout/map/layer/circle/__init__.py
index 3ab81e9169e..659abf22fbf 100644
--- a/plotly/validators/layout/map/layer/circle/__init__.py
+++ b/plotly/validators/layout/map/layer/circle/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._radius.RadiusValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._radius import RadiusValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._radius.RadiusValidator"]
+    )
diff --git a/plotly/validators/layout/map/layer/fill/__init__.py b/plotly/validators/layout/map/layer/fill/__init__.py
index d169627477a..722f28333c9 100644
--- a/plotly/validators/layout/map/layer/fill/__init__.py
+++ b/plotly/validators/layout/map/layer/fill/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._outlinecolor.OutlinecolorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._outlinecolor import OutlinecolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._outlinecolor.OutlinecolorValidator"]
+    )
diff --git a/plotly/validators/layout/map/layer/line/__init__.py b/plotly/validators/layout/map/layer/line/__init__.py
index ebb48ff6e25..e2f415ff5bd 100644
--- a/plotly/validators/layout/map/layer/line/__init__.py
+++ b/plotly/validators/layout/map/layer/line/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._width.WidthValidator", "._dashsrc.DashsrcValidator", "._dash.DashValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._dashsrc import DashsrcValidator
+    from ._dash import DashValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._dashsrc.DashsrcValidator",
+            "._dash.DashValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/map/layer/symbol/__init__.py b/plotly/validators/layout/map/layer/symbol/__init__.py
index 41fc41c8fd7..2b890e661ef 100644
--- a/plotly/validators/layout/map/layer/symbol/__init__.py
+++ b/plotly/validators/layout/map/layer/symbol/__init__.py
@@ -1,15 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._textposition.TextpositionValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._placement.PlacementValidator",
-        "._iconsize.IconsizeValidator",
-        "._icon.IconValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textposition import TextpositionValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._placement import PlacementValidator
+    from ._iconsize import IconsizeValidator
+    from ._icon import IconValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._textposition.TextpositionValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._placement.PlacementValidator",
+            "._iconsize.IconsizeValidator",
+            "._icon.IconValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/map/layer/symbol/textfont/__init__.py b/plotly/validators/layout/map/layer/symbol/textfont/__init__.py
index 13cbf9ae54e..9301c0688ce 100644
--- a/plotly/validators/layout/map/layer/symbol/textfont/__init__.py
+++ b/plotly/validators/layout/map/layer/symbol/textfont/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/mapbox/__init__.py b/plotly/validators/layout/mapbox/__init__.py
index c3ed5b178ff..5e56f18ab58 100644
--- a/plotly/validators/layout/mapbox/__init__.py
+++ b/plotly/validators/layout/mapbox/__init__.py
@@ -1,20 +1,35 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zoom.ZoomValidator",
-        "._uirevision.UirevisionValidator",
-        "._style.StyleValidator",
-        "._pitch.PitchValidator",
-        "._layerdefaults.LayerdefaultsValidator",
-        "._layers.LayersValidator",
-        "._domain.DomainValidator",
-        "._center.CenterValidator",
-        "._bounds.BoundsValidator",
-        "._bearing.BearingValidator",
-        "._accesstoken.AccesstokenValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zoom import ZoomValidator
+    from ._uirevision import UirevisionValidator
+    from ._style import StyleValidator
+    from ._pitch import PitchValidator
+    from ._layerdefaults import LayerdefaultsValidator
+    from ._layers import LayersValidator
+    from ._domain import DomainValidator
+    from ._center import CenterValidator
+    from ._bounds import BoundsValidator
+    from ._bearing import BearingValidator
+    from ._accesstoken import AccesstokenValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zoom.ZoomValidator",
+            "._uirevision.UirevisionValidator",
+            "._style.StyleValidator",
+            "._pitch.PitchValidator",
+            "._layerdefaults.LayerdefaultsValidator",
+            "._layers.LayersValidator",
+            "._domain.DomainValidator",
+            "._center.CenterValidator",
+            "._bounds.BoundsValidator",
+            "._bearing.BearingValidator",
+            "._accesstoken.AccesstokenValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/mapbox/bounds/__init__.py b/plotly/validators/layout/mapbox/bounds/__init__.py
index fe63c18499e..c07c964cd67 100644
--- a/plotly/validators/layout/mapbox/bounds/__init__.py
+++ b/plotly/validators/layout/mapbox/bounds/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._west.WestValidator",
-        "._south.SouthValidator",
-        "._north.NorthValidator",
-        "._east.EastValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._west import WestValidator
+    from ._south import SouthValidator
+    from ._north import NorthValidator
+    from ._east import EastValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._west.WestValidator",
+            "._south.SouthValidator",
+            "._north.NorthValidator",
+            "._east.EastValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/mapbox/center/__init__.py b/plotly/validators/layout/mapbox/center/__init__.py
index bd950673215..a723b74f147 100644
--- a/plotly/validators/layout/mapbox/center/__init__.py
+++ b/plotly/validators/layout/mapbox/center/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._lon.LonValidator", "._lat.LatValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._lon import LonValidator
+    from ._lat import LatValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._lon.LonValidator", "._lat.LatValidator"]
+    )
diff --git a/plotly/validators/layout/mapbox/domain/__init__.py b/plotly/validators/layout/mapbox/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/layout/mapbox/domain/__init__.py
+++ b/plotly/validators/layout/mapbox/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/mapbox/layer/__init__.py b/plotly/validators/layout/mapbox/layer/__init__.py
index 824c7d802a9..93e08a556b2 100644
--- a/plotly/validators/layout/mapbox/layer/__init__.py
+++ b/plotly/validators/layout/mapbox/layer/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._type.TypeValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._symbol.SymbolValidator",
-        "._sourcetype.SourcetypeValidator",
-        "._sourcelayer.SourcelayerValidator",
-        "._sourceattribution.SourceattributionValidator",
-        "._source.SourceValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._minzoom.MinzoomValidator",
-        "._maxzoom.MaxzoomValidator",
-        "._line.LineValidator",
-        "._fill.FillValidator",
-        "._coordinates.CoordinatesValidator",
-        "._color.ColorValidator",
-        "._circle.CircleValidator",
-        "._below.BelowValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._type import TypeValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._symbol import SymbolValidator
+    from ._sourcetype import SourcetypeValidator
+    from ._sourcelayer import SourcelayerValidator
+    from ._sourceattribution import SourceattributionValidator
+    from ._source import SourceValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._minzoom import MinzoomValidator
+    from ._maxzoom import MaxzoomValidator
+    from ._line import LineValidator
+    from ._fill import FillValidator
+    from ._coordinates import CoordinatesValidator
+    from ._color import ColorValidator
+    from ._circle import CircleValidator
+    from ._below import BelowValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._type.TypeValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._symbol.SymbolValidator",
+            "._sourcetype.SourcetypeValidator",
+            "._sourcelayer.SourcelayerValidator",
+            "._sourceattribution.SourceattributionValidator",
+            "._source.SourceValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._minzoom.MinzoomValidator",
+            "._maxzoom.MaxzoomValidator",
+            "._line.LineValidator",
+            "._fill.FillValidator",
+            "._coordinates.CoordinatesValidator",
+            "._color.ColorValidator",
+            "._circle.CircleValidator",
+            "._below.BelowValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/mapbox/layer/circle/__init__.py b/plotly/validators/layout/mapbox/layer/circle/__init__.py
index 3ab81e9169e..659abf22fbf 100644
--- a/plotly/validators/layout/mapbox/layer/circle/__init__.py
+++ b/plotly/validators/layout/mapbox/layer/circle/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._radius.RadiusValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._radius import RadiusValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._radius.RadiusValidator"]
+    )
diff --git a/plotly/validators/layout/mapbox/layer/fill/__init__.py b/plotly/validators/layout/mapbox/layer/fill/__init__.py
index d169627477a..722f28333c9 100644
--- a/plotly/validators/layout/mapbox/layer/fill/__init__.py
+++ b/plotly/validators/layout/mapbox/layer/fill/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._outlinecolor.OutlinecolorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._outlinecolor import OutlinecolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._outlinecolor.OutlinecolorValidator"]
+    )
diff --git a/plotly/validators/layout/mapbox/layer/line/__init__.py b/plotly/validators/layout/mapbox/layer/line/__init__.py
index ebb48ff6e25..e2f415ff5bd 100644
--- a/plotly/validators/layout/mapbox/layer/line/__init__.py
+++ b/plotly/validators/layout/mapbox/layer/line/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._width.WidthValidator", "._dashsrc.DashsrcValidator", "._dash.DashValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._dashsrc import DashsrcValidator
+    from ._dash import DashValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._dashsrc.DashsrcValidator",
+            "._dash.DashValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/mapbox/layer/symbol/__init__.py b/plotly/validators/layout/mapbox/layer/symbol/__init__.py
index 41fc41c8fd7..2b890e661ef 100644
--- a/plotly/validators/layout/mapbox/layer/symbol/__init__.py
+++ b/plotly/validators/layout/mapbox/layer/symbol/__init__.py
@@ -1,15 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._textposition.TextpositionValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._placement.PlacementValidator",
-        "._iconsize.IconsizeValidator",
-        "._icon.IconValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textposition import TextpositionValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._placement import PlacementValidator
+    from ._iconsize import IconsizeValidator
+    from ._icon import IconValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._textposition.TextpositionValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._placement.PlacementValidator",
+            "._iconsize.IconsizeValidator",
+            "._icon.IconValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/mapbox/layer/symbol/textfont/__init__.py b/plotly/validators/layout/mapbox/layer/symbol/textfont/__init__.py
index 13cbf9ae54e..9301c0688ce 100644
--- a/plotly/validators/layout/mapbox/layer/symbol/textfont/__init__.py
+++ b/plotly/validators/layout/mapbox/layer/symbol/textfont/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/margin/__init__.py b/plotly/validators/layout/margin/__init__.py
index 0fc672f9e99..82c96bf627f 100644
--- a/plotly/validators/layout/margin/__init__.py
+++ b/plotly/validators/layout/margin/__init__.py
@@ -1,15 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._t.TValidator",
-        "._r.RValidator",
-        "._pad.PadValidator",
-        "._l.LValidator",
-        "._b.BValidator",
-        "._autoexpand.AutoexpandValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._t import TValidator
+    from ._r import RValidator
+    from ._pad import PadValidator
+    from ._l import LValidator
+    from ._b import BValidator
+    from ._autoexpand import AutoexpandValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._t.TValidator",
+            "._r.RValidator",
+            "._pad.PadValidator",
+            "._l.LValidator",
+            "._b.BValidator",
+            "._autoexpand.AutoexpandValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/modebar/__init__.py b/plotly/validators/layout/modebar/__init__.py
index 07339747c28..5791ea538b0 100644
--- a/plotly/validators/layout/modebar/__init__.py
+++ b/plotly/validators/layout/modebar/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._uirevision.UirevisionValidator",
-        "._removesrc.RemovesrcValidator",
-        "._remove.RemoveValidator",
-        "._orientation.OrientationValidator",
-        "._color.ColorValidator",
-        "._bgcolor.BgcolorValidator",
-        "._addsrc.AddsrcValidator",
-        "._add.AddValidator",
-        "._activecolor.ActivecolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._uirevision import UirevisionValidator
+    from ._removesrc import RemovesrcValidator
+    from ._remove import RemoveValidator
+    from ._orientation import OrientationValidator
+    from ._color import ColorValidator
+    from ._bgcolor import BgcolorValidator
+    from ._addsrc import AddsrcValidator
+    from ._add import AddValidator
+    from ._activecolor import ActivecolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._uirevision.UirevisionValidator",
+            "._removesrc.RemovesrcValidator",
+            "._remove.RemoveValidator",
+            "._orientation.OrientationValidator",
+            "._color.ColorValidator",
+            "._bgcolor.BgcolorValidator",
+            "._addsrc.AddsrcValidator",
+            "._add.AddValidator",
+            "._activecolor.ActivecolorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/newselection/__init__.py b/plotly/validators/layout/newselection/__init__.py
index 4358e4fdb74..4bfab4498e2 100644
--- a/plotly/validators/layout/newselection/__init__.py
+++ b/plotly/validators/layout/newselection/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._mode.ModeValidator", "._line.LineValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._mode import ModeValidator
+    from ._line import LineValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._mode.ModeValidator", "._line.LineValidator"]
+    )
diff --git a/plotly/validators/layout/newselection/line/__init__.py b/plotly/validators/layout/newselection/line/__init__.py
index c5140ef758d..cff41466517 100644
--- a/plotly/validators/layout/newselection/line/__init__.py
+++ b/plotly/validators/layout/newselection/line/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
+    )
diff --git a/plotly/validators/layout/newshape/__init__.py b/plotly/validators/layout/newshape/__init__.py
index e83bc30aad6..3248c60cb71 100644
--- a/plotly/validators/layout/newshape/__init__.py
+++ b/plotly/validators/layout/newshape/__init__.py
@@ -1,24 +1,43 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._layer.LayerValidator",
-        "._label.LabelValidator",
-        "._fillrule.FillruleValidator",
-        "._fillcolor.FillcolorValidator",
-        "._drawdirection.DrawdirectionValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._layer import LayerValidator
+    from ._label import LabelValidator
+    from ._fillrule import FillruleValidator
+    from ._fillcolor import FillcolorValidator
+    from ._drawdirection import DrawdirectionValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._layer.LayerValidator",
+            "._label.LabelValidator",
+            "._fillrule.FillruleValidator",
+            "._fillcolor.FillcolorValidator",
+            "._drawdirection.DrawdirectionValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/newshape/label/__init__.py b/plotly/validators/layout/newshape/label/__init__.py
index 215b669f842..c6a5f99963d 100644
--- a/plotly/validators/layout/newshape/label/__init__.py
+++ b/plotly/validators/layout/newshape/label/__init__.py
@@ -1,17 +1,29 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yanchor.YanchorValidator",
-        "._xanchor.XanchorValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textposition.TextpositionValidator",
-        "._textangle.TextangleValidator",
-        "._text.TextValidator",
-        "._padding.PaddingValidator",
-        "._font.FontValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yanchor import YanchorValidator
+    from ._xanchor import XanchorValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textposition import TextpositionValidator
+    from ._textangle import TextangleValidator
+    from ._text import TextValidator
+    from ._padding import PaddingValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yanchor.YanchorValidator",
+            "._xanchor.XanchorValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textposition.TextpositionValidator",
+            "._textangle.TextangleValidator",
+            "._text.TextValidator",
+            "._padding.PaddingValidator",
+            "._font.FontValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/newshape/label/font/__init__.py b/plotly/validators/layout/newshape/label/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/newshape/label/font/__init__.py
+++ b/plotly/validators/layout/newshape/label/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/newshape/legendgrouptitle/__init__.py b/plotly/validators/layout/newshape/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/layout/newshape/legendgrouptitle/__init__.py
+++ b/plotly/validators/layout/newshape/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/layout/newshape/legendgrouptitle/font/__init__.py b/plotly/validators/layout/newshape/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/newshape/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/layout/newshape/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/newshape/line/__init__.py b/plotly/validators/layout/newshape/line/__init__.py
index c5140ef758d..cff41466517 100644
--- a/plotly/validators/layout/newshape/line/__init__.py
+++ b/plotly/validators/layout/newshape/line/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
+    )
diff --git a/plotly/validators/layout/polar/__init__.py b/plotly/validators/layout/polar/__init__.py
index bbced9cd240..42956b87133 100644
--- a/plotly/validators/layout/polar/__init__.py
+++ b/plotly/validators/layout/polar/__init__.py
@@ -1,19 +1,33 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._uirevision.UirevisionValidator",
-        "._sector.SectorValidator",
-        "._radialaxis.RadialaxisValidator",
-        "._hole.HoleValidator",
-        "._gridshape.GridshapeValidator",
-        "._domain.DomainValidator",
-        "._bgcolor.BgcolorValidator",
-        "._barmode.BarmodeValidator",
-        "._bargap.BargapValidator",
-        "._angularaxis.AngularaxisValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._uirevision import UirevisionValidator
+    from ._sector import SectorValidator
+    from ._radialaxis import RadialaxisValidator
+    from ._hole import HoleValidator
+    from ._gridshape import GridshapeValidator
+    from ._domain import DomainValidator
+    from ._bgcolor import BgcolorValidator
+    from ._barmode import BarmodeValidator
+    from ._bargap import BargapValidator
+    from ._angularaxis import AngularaxisValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._uirevision.UirevisionValidator",
+            "._sector.SectorValidator",
+            "._radialaxis.RadialaxisValidator",
+            "._hole.HoleValidator",
+            "._gridshape.GridshapeValidator",
+            "._domain.DomainValidator",
+            "._bgcolor.BgcolorValidator",
+            "._barmode.BarmodeValidator",
+            "._bargap.BargapValidator",
+            "._angularaxis.AngularaxisValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/polar/angularaxis/__init__.py b/plotly/validators/layout/polar/angularaxis/__init__.py
index fb6a5a28d49..02c7519fe54 100644
--- a/plotly/validators/layout/polar/angularaxis/__init__.py
+++ b/plotly/validators/layout/polar/angularaxis/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._type.TypeValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thetaunit.ThetaunitValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showline.ShowlineValidator",
-        "._showgrid.ShowgridValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._rotation.RotationValidator",
-        "._period.PeriodValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._linewidth.LinewidthValidator",
-        "._linecolor.LinecolorValidator",
-        "._layer.LayerValidator",
-        "._labelalias.LabelaliasValidator",
-        "._hoverformat.HoverformatValidator",
-        "._gridwidth.GridwidthValidator",
-        "._griddash.GriddashValidator",
-        "._gridcolor.GridcolorValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._direction.DirectionValidator",
-        "._color.ColorValidator",
-        "._categoryorder.CategoryorderValidator",
-        "._categoryarraysrc.CategoryarraysrcValidator",
-        "._categoryarray.CategoryarrayValidator",
-        "._autotypenumbers.AutotypenumbersValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._type import TypeValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thetaunit import ThetaunitValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showline import ShowlineValidator
+    from ._showgrid import ShowgridValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._rotation import RotationValidator
+    from ._period import PeriodValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._linewidth import LinewidthValidator
+    from ._linecolor import LinecolorValidator
+    from ._layer import LayerValidator
+    from ._labelalias import LabelaliasValidator
+    from ._hoverformat import HoverformatValidator
+    from ._gridwidth import GridwidthValidator
+    from ._griddash import GriddashValidator
+    from ._gridcolor import GridcolorValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._direction import DirectionValidator
+    from ._color import ColorValidator
+    from ._categoryorder import CategoryorderValidator
+    from ._categoryarraysrc import CategoryarraysrcValidator
+    from ._categoryarray import CategoryarrayValidator
+    from ._autotypenumbers import AutotypenumbersValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._type.TypeValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thetaunit.ThetaunitValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showline.ShowlineValidator",
+            "._showgrid.ShowgridValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._rotation.RotationValidator",
+            "._period.PeriodValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._linewidth.LinewidthValidator",
+            "._linecolor.LinecolorValidator",
+            "._layer.LayerValidator",
+            "._labelalias.LabelaliasValidator",
+            "._hoverformat.HoverformatValidator",
+            "._gridwidth.GridwidthValidator",
+            "._griddash.GriddashValidator",
+            "._gridcolor.GridcolorValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._direction.DirectionValidator",
+            "._color.ColorValidator",
+            "._categoryorder.CategoryorderValidator",
+            "._categoryarraysrc.CategoryarraysrcValidator",
+            "._categoryarray.CategoryarrayValidator",
+            "._autotypenumbers.AutotypenumbersValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/polar/angularaxis/tickfont/__init__.py b/plotly/validators/layout/polar/angularaxis/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/polar/angularaxis/tickfont/__init__.py
+++ b/plotly/validators/layout/polar/angularaxis/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/polar/angularaxis/tickformatstop/__init__.py b/plotly/validators/layout/polar/angularaxis/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/layout/polar/angularaxis/tickformatstop/__init__.py
+++ b/plotly/validators/layout/polar/angularaxis/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/polar/domain/__init__.py b/plotly/validators/layout/polar/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/layout/polar/domain/__init__.py
+++ b/plotly/validators/layout/polar/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/polar/radialaxis/__init__.py b/plotly/validators/layout/polar/radialaxis/__init__.py
index e00324f45ce..4f19bdf159b 100644
--- a/plotly/validators/layout/polar/radialaxis/__init__.py
+++ b/plotly/validators/layout/polar/radialaxis/__init__.py
@@ -1,65 +1,125 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._type.TypeValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._side.SideValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showline.ShowlineValidator",
-        "._showgrid.ShowgridValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._rangemode.RangemodeValidator",
-        "._range.RangeValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._minallowed.MinallowedValidator",
-        "._maxallowed.MaxallowedValidator",
-        "._linewidth.LinewidthValidator",
-        "._linecolor.LinecolorValidator",
-        "._layer.LayerValidator",
-        "._labelalias.LabelaliasValidator",
-        "._hoverformat.HoverformatValidator",
-        "._gridwidth.GridwidthValidator",
-        "._griddash.GriddashValidator",
-        "._gridcolor.GridcolorValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._color.ColorValidator",
-        "._categoryorder.CategoryorderValidator",
-        "._categoryarraysrc.CategoryarraysrcValidator",
-        "._categoryarray.CategoryarrayValidator",
-        "._calendar.CalendarValidator",
-        "._autotypenumbers.AutotypenumbersValidator",
-        "._autotickangles.AutotickanglesValidator",
-        "._autorangeoptions.AutorangeoptionsValidator",
-        "._autorange.AutorangeValidator",
-        "._angle.AngleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._type import TypeValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._side import SideValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showline import ShowlineValidator
+    from ._showgrid import ShowgridValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._rangemode import RangemodeValidator
+    from ._range import RangeValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._minallowed import MinallowedValidator
+    from ._maxallowed import MaxallowedValidator
+    from ._linewidth import LinewidthValidator
+    from ._linecolor import LinecolorValidator
+    from ._layer import LayerValidator
+    from ._labelalias import LabelaliasValidator
+    from ._hoverformat import HoverformatValidator
+    from ._gridwidth import GridwidthValidator
+    from ._griddash import GriddashValidator
+    from ._gridcolor import GridcolorValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._color import ColorValidator
+    from ._categoryorder import CategoryorderValidator
+    from ._categoryarraysrc import CategoryarraysrcValidator
+    from ._categoryarray import CategoryarrayValidator
+    from ._calendar import CalendarValidator
+    from ._autotypenumbers import AutotypenumbersValidator
+    from ._autotickangles import AutotickanglesValidator
+    from ._autorangeoptions import AutorangeoptionsValidator
+    from ._autorange import AutorangeValidator
+    from ._angle import AngleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._type.TypeValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._side.SideValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showline.ShowlineValidator",
+            "._showgrid.ShowgridValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._rangemode.RangemodeValidator",
+            "._range.RangeValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._minallowed.MinallowedValidator",
+            "._maxallowed.MaxallowedValidator",
+            "._linewidth.LinewidthValidator",
+            "._linecolor.LinecolorValidator",
+            "._layer.LayerValidator",
+            "._labelalias.LabelaliasValidator",
+            "._hoverformat.HoverformatValidator",
+            "._gridwidth.GridwidthValidator",
+            "._griddash.GriddashValidator",
+            "._gridcolor.GridcolorValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._color.ColorValidator",
+            "._categoryorder.CategoryorderValidator",
+            "._categoryarraysrc.CategoryarraysrcValidator",
+            "._categoryarray.CategoryarrayValidator",
+            "._calendar.CalendarValidator",
+            "._autotypenumbers.AutotypenumbersValidator",
+            "._autotickangles.AutotickanglesValidator",
+            "._autorangeoptions.AutorangeoptionsValidator",
+            "._autorange.AutorangeValidator",
+            "._angle.AngleValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/polar/radialaxis/autorangeoptions/__init__.py b/plotly/validators/layout/polar/radialaxis/autorangeoptions/__init__.py
index 8ef0b74165b..701f84c04e0 100644
--- a/plotly/validators/layout/polar/radialaxis/autorangeoptions/__init__.py
+++ b/plotly/validators/layout/polar/radialaxis/autorangeoptions/__init__.py
@@ -1,15 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._minallowed.MinallowedValidator",
-        "._maxallowed.MaxallowedValidator",
-        "._includesrc.IncludesrcValidator",
-        "._include.IncludeValidator",
-        "._clipmin.ClipminValidator",
-        "._clipmax.ClipmaxValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._minallowed import MinallowedValidator
+    from ._maxallowed import MaxallowedValidator
+    from ._includesrc import IncludesrcValidator
+    from ._include import IncludeValidator
+    from ._clipmin import ClipminValidator
+    from ._clipmax import ClipmaxValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._minallowed.MinallowedValidator",
+            "._maxallowed.MaxallowedValidator",
+            "._includesrc.IncludesrcValidator",
+            "._include.IncludeValidator",
+            "._clipmin.ClipminValidator",
+            "._clipmax.ClipmaxValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/polar/radialaxis/tickfont/__init__.py b/plotly/validators/layout/polar/radialaxis/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/polar/radialaxis/tickfont/__init__.py
+++ b/plotly/validators/layout/polar/radialaxis/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/polar/radialaxis/tickformatstop/__init__.py b/plotly/validators/layout/polar/radialaxis/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/layout/polar/radialaxis/tickformatstop/__init__.py
+++ b/plotly/validators/layout/polar/radialaxis/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/polar/radialaxis/title/__init__.py b/plotly/validators/layout/polar/radialaxis/title/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/layout/polar/radialaxis/title/__init__.py
+++ b/plotly/validators/layout/polar/radialaxis/title/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/layout/polar/radialaxis/title/font/__init__.py b/plotly/validators/layout/polar/radialaxis/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/polar/radialaxis/title/font/__init__.py
+++ b/plotly/validators/layout/polar/radialaxis/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/__init__.py b/plotly/validators/layout/scene/__init__.py
index 523da179fac..28f3948043f 100644
--- a/plotly/validators/layout/scene/__init__.py
+++ b/plotly/validators/layout/scene/__init__.py
@@ -1,22 +1,39 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zaxis.ZaxisValidator",
-        "._yaxis.YaxisValidator",
-        "._xaxis.XaxisValidator",
-        "._uirevision.UirevisionValidator",
-        "._hovermode.HovermodeValidator",
-        "._dragmode.DragmodeValidator",
-        "._domain.DomainValidator",
-        "._camera.CameraValidator",
-        "._bgcolor.BgcolorValidator",
-        "._aspectratio.AspectratioValidator",
-        "._aspectmode.AspectmodeValidator",
-        "._annotationdefaults.AnnotationdefaultsValidator",
-        "._annotations.AnnotationsValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zaxis import ZaxisValidator
+    from ._yaxis import YaxisValidator
+    from ._xaxis import XaxisValidator
+    from ._uirevision import UirevisionValidator
+    from ._hovermode import HovermodeValidator
+    from ._dragmode import DragmodeValidator
+    from ._domain import DomainValidator
+    from ._camera import CameraValidator
+    from ._bgcolor import BgcolorValidator
+    from ._aspectratio import AspectratioValidator
+    from ._aspectmode import AspectmodeValidator
+    from ._annotationdefaults import AnnotationdefaultsValidator
+    from ._annotations import AnnotationsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zaxis.ZaxisValidator",
+            "._yaxis.YaxisValidator",
+            "._xaxis.XaxisValidator",
+            "._uirevision.UirevisionValidator",
+            "._hovermode.HovermodeValidator",
+            "._dragmode.DragmodeValidator",
+            "._domain.DomainValidator",
+            "._camera.CameraValidator",
+            "._bgcolor.BgcolorValidator",
+            "._aspectratio.AspectratioValidator",
+            "._aspectmode.AspectmodeValidator",
+            "._annotationdefaults.AnnotationdefaultsValidator",
+            "._annotations.AnnotationsValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/annotation/__init__.py b/plotly/validators/layout/scene/annotation/__init__.py
index 86dd8cca5a5..723a59944b1 100644
--- a/plotly/validators/layout/scene/annotation/__init__.py
+++ b/plotly/validators/layout/scene/annotation/__init__.py
@@ -1,46 +1,87 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._z.ZValidator",
-        "._yshift.YshiftValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xshift.XshiftValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._valign.ValignValidator",
-        "._textangle.TextangleValidator",
-        "._text.TextValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._startstandoff.StartstandoffValidator",
-        "._startarrowsize.StartarrowsizeValidator",
-        "._startarrowhead.StartarrowheadValidator",
-        "._standoff.StandoffValidator",
-        "._showarrow.ShowarrowValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._hovertext.HovertextValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._height.HeightValidator",
-        "._font.FontValidator",
-        "._captureevents.CaptureeventsValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._borderpad.BorderpadValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-        "._ay.AyValidator",
-        "._ax.AxValidator",
-        "._arrowwidth.ArrowwidthValidator",
-        "._arrowsize.ArrowsizeValidator",
-        "._arrowside.ArrowsideValidator",
-        "._arrowhead.ArrowheadValidator",
-        "._arrowcolor.ArrowcolorValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._yshift import YshiftValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xshift import XshiftValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._valign import ValignValidator
+    from ._textangle import TextangleValidator
+    from ._text import TextValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._startstandoff import StartstandoffValidator
+    from ._startarrowsize import StartarrowsizeValidator
+    from ._startarrowhead import StartarrowheadValidator
+    from ._standoff import StandoffValidator
+    from ._showarrow import ShowarrowValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._hovertext import HovertextValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._height import HeightValidator
+    from ._font import FontValidator
+    from ._captureevents import CaptureeventsValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._borderpad import BorderpadValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+    from ._ay import AyValidator
+    from ._ax import AxValidator
+    from ._arrowwidth import ArrowwidthValidator
+    from ._arrowsize import ArrowsizeValidator
+    from ._arrowside import ArrowsideValidator
+    from ._arrowhead import ArrowheadValidator
+    from ._arrowcolor import ArrowcolorValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._z.ZValidator",
+            "._yshift.YshiftValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xshift.XshiftValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._valign.ValignValidator",
+            "._textangle.TextangleValidator",
+            "._text.TextValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._startstandoff.StartstandoffValidator",
+            "._startarrowsize.StartarrowsizeValidator",
+            "._startarrowhead.StartarrowheadValidator",
+            "._standoff.StandoffValidator",
+            "._showarrow.ShowarrowValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._hovertext.HovertextValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._height.HeightValidator",
+            "._font.FontValidator",
+            "._captureevents.CaptureeventsValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._borderpad.BorderpadValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+            "._ay.AyValidator",
+            "._ax.AxValidator",
+            "._arrowwidth.ArrowwidthValidator",
+            "._arrowsize.ArrowsizeValidator",
+            "._arrowside.ArrowsideValidator",
+            "._arrowhead.ArrowheadValidator",
+            "._arrowcolor.ArrowcolorValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/annotation/font/__init__.py b/plotly/validators/layout/scene/annotation/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/scene/annotation/font/__init__.py
+++ b/plotly/validators/layout/scene/annotation/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/annotation/hoverlabel/__init__.py b/plotly/validators/layout/scene/annotation/hoverlabel/__init__.py
index 040f0045ebc..6cd9f4b93cd 100644
--- a/plotly/validators/layout/scene/annotation/hoverlabel/__init__.py
+++ b/plotly/validators/layout/scene/annotation/hoverlabel/__init__.py
@@ -1,12 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._font.FontValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._font import FontValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._font.FontValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/annotation/hoverlabel/font/__init__.py b/plotly/validators/layout/scene/annotation/hoverlabel/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/scene/annotation/hoverlabel/font/__init__.py
+++ b/plotly/validators/layout/scene/annotation/hoverlabel/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/aspectratio/__init__.py b/plotly/validators/layout/scene/aspectratio/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/layout/scene/aspectratio/__init__.py
+++ b/plotly/validators/layout/scene/aspectratio/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/layout/scene/camera/__init__.py b/plotly/validators/layout/scene/camera/__init__.py
index affcb0640ad..6fda571b1ed 100644
--- a/plotly/validators/layout/scene/camera/__init__.py
+++ b/plotly/validators/layout/scene/camera/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._up.UpValidator",
-        "._projection.ProjectionValidator",
-        "._eye.EyeValidator",
-        "._center.CenterValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._up import UpValidator
+    from ._projection import ProjectionValidator
+    from ._eye import EyeValidator
+    from ._center import CenterValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._up.UpValidator",
+            "._projection.ProjectionValidator",
+            "._eye.EyeValidator",
+            "._center.CenterValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/camera/center/__init__.py b/plotly/validators/layout/scene/camera/center/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/layout/scene/camera/center/__init__.py
+++ b/plotly/validators/layout/scene/camera/center/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/layout/scene/camera/eye/__init__.py b/plotly/validators/layout/scene/camera/eye/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/layout/scene/camera/eye/__init__.py
+++ b/plotly/validators/layout/scene/camera/eye/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/layout/scene/camera/projection/__init__.py b/plotly/validators/layout/scene/camera/projection/__init__.py
index 9b57e2a3538..6026c0dbbb9 100644
--- a/plotly/validators/layout/scene/camera/projection/__init__.py
+++ b/plotly/validators/layout/scene/camera/projection/__init__.py
@@ -1,4 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._type.TypeValidator"])
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._type import TypeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._type.TypeValidator"]
+    )
diff --git a/plotly/validators/layout/scene/camera/up/__init__.py b/plotly/validators/layout/scene/camera/up/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/layout/scene/camera/up/__init__.py
+++ b/plotly/validators/layout/scene/camera/up/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/layout/scene/domain/__init__.py b/plotly/validators/layout/scene/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/layout/scene/domain/__init__.py
+++ b/plotly/validators/layout/scene/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/xaxis/__init__.py b/plotly/validators/layout/scene/xaxis/__init__.py
index df86998dd26..b95df1031f8 100644
--- a/plotly/validators/layout/scene/xaxis/__init__.py
+++ b/plotly/validators/layout/scene/xaxis/__init__.py
@@ -1,69 +1,133 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zerolinewidth.ZerolinewidthValidator",
-        "._zerolinecolor.ZerolinecolorValidator",
-        "._zeroline.ZerolineValidator",
-        "._visible.VisibleValidator",
-        "._type.TypeValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._spikethickness.SpikethicknessValidator",
-        "._spikesides.SpikesidesValidator",
-        "._spikecolor.SpikecolorValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showspikes.ShowspikesValidator",
-        "._showline.ShowlineValidator",
-        "._showgrid.ShowgridValidator",
-        "._showexponent.ShowexponentValidator",
-        "._showbackground.ShowbackgroundValidator",
-        "._showaxeslabels.ShowaxeslabelsValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._rangemode.RangemodeValidator",
-        "._range.RangeValidator",
-        "._nticks.NticksValidator",
-        "._mirror.MirrorValidator",
-        "._minexponent.MinexponentValidator",
-        "._minallowed.MinallowedValidator",
-        "._maxallowed.MaxallowedValidator",
-        "._linewidth.LinewidthValidator",
-        "._linecolor.LinecolorValidator",
-        "._labelalias.LabelaliasValidator",
-        "._hoverformat.HoverformatValidator",
-        "._gridwidth.GridwidthValidator",
-        "._gridcolor.GridcolorValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._color.ColorValidator",
-        "._categoryorder.CategoryorderValidator",
-        "._categoryarraysrc.CategoryarraysrcValidator",
-        "._categoryarray.CategoryarrayValidator",
-        "._calendar.CalendarValidator",
-        "._backgroundcolor.BackgroundcolorValidator",
-        "._autotypenumbers.AutotypenumbersValidator",
-        "._autorangeoptions.AutorangeoptionsValidator",
-        "._autorange.AutorangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zerolinewidth import ZerolinewidthValidator
+    from ._zerolinecolor import ZerolinecolorValidator
+    from ._zeroline import ZerolineValidator
+    from ._visible import VisibleValidator
+    from ._type import TypeValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._spikethickness import SpikethicknessValidator
+    from ._spikesides import SpikesidesValidator
+    from ._spikecolor import SpikecolorValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showspikes import ShowspikesValidator
+    from ._showline import ShowlineValidator
+    from ._showgrid import ShowgridValidator
+    from ._showexponent import ShowexponentValidator
+    from ._showbackground import ShowbackgroundValidator
+    from ._showaxeslabels import ShowaxeslabelsValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._rangemode import RangemodeValidator
+    from ._range import RangeValidator
+    from ._nticks import NticksValidator
+    from ._mirror import MirrorValidator
+    from ._minexponent import MinexponentValidator
+    from ._minallowed import MinallowedValidator
+    from ._maxallowed import MaxallowedValidator
+    from ._linewidth import LinewidthValidator
+    from ._linecolor import LinecolorValidator
+    from ._labelalias import LabelaliasValidator
+    from ._hoverformat import HoverformatValidator
+    from ._gridwidth import GridwidthValidator
+    from ._gridcolor import GridcolorValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._color import ColorValidator
+    from ._categoryorder import CategoryorderValidator
+    from ._categoryarraysrc import CategoryarraysrcValidator
+    from ._categoryarray import CategoryarrayValidator
+    from ._calendar import CalendarValidator
+    from ._backgroundcolor import BackgroundcolorValidator
+    from ._autotypenumbers import AutotypenumbersValidator
+    from ._autorangeoptions import AutorangeoptionsValidator
+    from ._autorange import AutorangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zerolinewidth.ZerolinewidthValidator",
+            "._zerolinecolor.ZerolinecolorValidator",
+            "._zeroline.ZerolineValidator",
+            "._visible.VisibleValidator",
+            "._type.TypeValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._spikethickness.SpikethicknessValidator",
+            "._spikesides.SpikesidesValidator",
+            "._spikecolor.SpikecolorValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showspikes.ShowspikesValidator",
+            "._showline.ShowlineValidator",
+            "._showgrid.ShowgridValidator",
+            "._showexponent.ShowexponentValidator",
+            "._showbackground.ShowbackgroundValidator",
+            "._showaxeslabels.ShowaxeslabelsValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._rangemode.RangemodeValidator",
+            "._range.RangeValidator",
+            "._nticks.NticksValidator",
+            "._mirror.MirrorValidator",
+            "._minexponent.MinexponentValidator",
+            "._minallowed.MinallowedValidator",
+            "._maxallowed.MaxallowedValidator",
+            "._linewidth.LinewidthValidator",
+            "._linecolor.LinecolorValidator",
+            "._labelalias.LabelaliasValidator",
+            "._hoverformat.HoverformatValidator",
+            "._gridwidth.GridwidthValidator",
+            "._gridcolor.GridcolorValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._color.ColorValidator",
+            "._categoryorder.CategoryorderValidator",
+            "._categoryarraysrc.CategoryarraysrcValidator",
+            "._categoryarray.CategoryarrayValidator",
+            "._calendar.CalendarValidator",
+            "._backgroundcolor.BackgroundcolorValidator",
+            "._autotypenumbers.AutotypenumbersValidator",
+            "._autorangeoptions.AutorangeoptionsValidator",
+            "._autorange.AutorangeValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/xaxis/autorangeoptions/__init__.py b/plotly/validators/layout/scene/xaxis/autorangeoptions/__init__.py
index 8ef0b74165b..701f84c04e0 100644
--- a/plotly/validators/layout/scene/xaxis/autorangeoptions/__init__.py
+++ b/plotly/validators/layout/scene/xaxis/autorangeoptions/__init__.py
@@ -1,15 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._minallowed.MinallowedValidator",
-        "._maxallowed.MaxallowedValidator",
-        "._includesrc.IncludesrcValidator",
-        "._include.IncludeValidator",
-        "._clipmin.ClipminValidator",
-        "._clipmax.ClipmaxValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._minallowed import MinallowedValidator
+    from ._maxallowed import MaxallowedValidator
+    from ._includesrc import IncludesrcValidator
+    from ._include import IncludeValidator
+    from ._clipmin import ClipminValidator
+    from ._clipmax import ClipmaxValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._minallowed.MinallowedValidator",
+            "._maxallowed.MaxallowedValidator",
+            "._includesrc.IncludesrcValidator",
+            "._include.IncludeValidator",
+            "._clipmin.ClipminValidator",
+            "._clipmax.ClipmaxValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/xaxis/tickfont/__init__.py b/plotly/validators/layout/scene/xaxis/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/scene/xaxis/tickfont/__init__.py
+++ b/plotly/validators/layout/scene/xaxis/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/xaxis/tickformatstop/__init__.py b/plotly/validators/layout/scene/xaxis/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/layout/scene/xaxis/tickformatstop/__init__.py
+++ b/plotly/validators/layout/scene/xaxis/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/xaxis/title/__init__.py b/plotly/validators/layout/scene/xaxis/title/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/layout/scene/xaxis/title/__init__.py
+++ b/plotly/validators/layout/scene/xaxis/title/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/layout/scene/xaxis/title/font/__init__.py b/plotly/validators/layout/scene/xaxis/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/scene/xaxis/title/font/__init__.py
+++ b/plotly/validators/layout/scene/xaxis/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/yaxis/__init__.py b/plotly/validators/layout/scene/yaxis/__init__.py
index df86998dd26..b95df1031f8 100644
--- a/plotly/validators/layout/scene/yaxis/__init__.py
+++ b/plotly/validators/layout/scene/yaxis/__init__.py
@@ -1,69 +1,133 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zerolinewidth.ZerolinewidthValidator",
-        "._zerolinecolor.ZerolinecolorValidator",
-        "._zeroline.ZerolineValidator",
-        "._visible.VisibleValidator",
-        "._type.TypeValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._spikethickness.SpikethicknessValidator",
-        "._spikesides.SpikesidesValidator",
-        "._spikecolor.SpikecolorValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showspikes.ShowspikesValidator",
-        "._showline.ShowlineValidator",
-        "._showgrid.ShowgridValidator",
-        "._showexponent.ShowexponentValidator",
-        "._showbackground.ShowbackgroundValidator",
-        "._showaxeslabels.ShowaxeslabelsValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._rangemode.RangemodeValidator",
-        "._range.RangeValidator",
-        "._nticks.NticksValidator",
-        "._mirror.MirrorValidator",
-        "._minexponent.MinexponentValidator",
-        "._minallowed.MinallowedValidator",
-        "._maxallowed.MaxallowedValidator",
-        "._linewidth.LinewidthValidator",
-        "._linecolor.LinecolorValidator",
-        "._labelalias.LabelaliasValidator",
-        "._hoverformat.HoverformatValidator",
-        "._gridwidth.GridwidthValidator",
-        "._gridcolor.GridcolorValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._color.ColorValidator",
-        "._categoryorder.CategoryorderValidator",
-        "._categoryarraysrc.CategoryarraysrcValidator",
-        "._categoryarray.CategoryarrayValidator",
-        "._calendar.CalendarValidator",
-        "._backgroundcolor.BackgroundcolorValidator",
-        "._autotypenumbers.AutotypenumbersValidator",
-        "._autorangeoptions.AutorangeoptionsValidator",
-        "._autorange.AutorangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zerolinewidth import ZerolinewidthValidator
+    from ._zerolinecolor import ZerolinecolorValidator
+    from ._zeroline import ZerolineValidator
+    from ._visible import VisibleValidator
+    from ._type import TypeValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._spikethickness import SpikethicknessValidator
+    from ._spikesides import SpikesidesValidator
+    from ._spikecolor import SpikecolorValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showspikes import ShowspikesValidator
+    from ._showline import ShowlineValidator
+    from ._showgrid import ShowgridValidator
+    from ._showexponent import ShowexponentValidator
+    from ._showbackground import ShowbackgroundValidator
+    from ._showaxeslabels import ShowaxeslabelsValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._rangemode import RangemodeValidator
+    from ._range import RangeValidator
+    from ._nticks import NticksValidator
+    from ._mirror import MirrorValidator
+    from ._minexponent import MinexponentValidator
+    from ._minallowed import MinallowedValidator
+    from ._maxallowed import MaxallowedValidator
+    from ._linewidth import LinewidthValidator
+    from ._linecolor import LinecolorValidator
+    from ._labelalias import LabelaliasValidator
+    from ._hoverformat import HoverformatValidator
+    from ._gridwidth import GridwidthValidator
+    from ._gridcolor import GridcolorValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._color import ColorValidator
+    from ._categoryorder import CategoryorderValidator
+    from ._categoryarraysrc import CategoryarraysrcValidator
+    from ._categoryarray import CategoryarrayValidator
+    from ._calendar import CalendarValidator
+    from ._backgroundcolor import BackgroundcolorValidator
+    from ._autotypenumbers import AutotypenumbersValidator
+    from ._autorangeoptions import AutorangeoptionsValidator
+    from ._autorange import AutorangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zerolinewidth.ZerolinewidthValidator",
+            "._zerolinecolor.ZerolinecolorValidator",
+            "._zeroline.ZerolineValidator",
+            "._visible.VisibleValidator",
+            "._type.TypeValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._spikethickness.SpikethicknessValidator",
+            "._spikesides.SpikesidesValidator",
+            "._spikecolor.SpikecolorValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showspikes.ShowspikesValidator",
+            "._showline.ShowlineValidator",
+            "._showgrid.ShowgridValidator",
+            "._showexponent.ShowexponentValidator",
+            "._showbackground.ShowbackgroundValidator",
+            "._showaxeslabels.ShowaxeslabelsValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._rangemode.RangemodeValidator",
+            "._range.RangeValidator",
+            "._nticks.NticksValidator",
+            "._mirror.MirrorValidator",
+            "._minexponent.MinexponentValidator",
+            "._minallowed.MinallowedValidator",
+            "._maxallowed.MaxallowedValidator",
+            "._linewidth.LinewidthValidator",
+            "._linecolor.LinecolorValidator",
+            "._labelalias.LabelaliasValidator",
+            "._hoverformat.HoverformatValidator",
+            "._gridwidth.GridwidthValidator",
+            "._gridcolor.GridcolorValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._color.ColorValidator",
+            "._categoryorder.CategoryorderValidator",
+            "._categoryarraysrc.CategoryarraysrcValidator",
+            "._categoryarray.CategoryarrayValidator",
+            "._calendar.CalendarValidator",
+            "._backgroundcolor.BackgroundcolorValidator",
+            "._autotypenumbers.AutotypenumbersValidator",
+            "._autorangeoptions.AutorangeoptionsValidator",
+            "._autorange.AutorangeValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/yaxis/autorangeoptions/__init__.py b/plotly/validators/layout/scene/yaxis/autorangeoptions/__init__.py
index 8ef0b74165b..701f84c04e0 100644
--- a/plotly/validators/layout/scene/yaxis/autorangeoptions/__init__.py
+++ b/plotly/validators/layout/scene/yaxis/autorangeoptions/__init__.py
@@ -1,15 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._minallowed.MinallowedValidator",
-        "._maxallowed.MaxallowedValidator",
-        "._includesrc.IncludesrcValidator",
-        "._include.IncludeValidator",
-        "._clipmin.ClipminValidator",
-        "._clipmax.ClipmaxValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._minallowed import MinallowedValidator
+    from ._maxallowed import MaxallowedValidator
+    from ._includesrc import IncludesrcValidator
+    from ._include import IncludeValidator
+    from ._clipmin import ClipminValidator
+    from ._clipmax import ClipmaxValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._minallowed.MinallowedValidator",
+            "._maxallowed.MaxallowedValidator",
+            "._includesrc.IncludesrcValidator",
+            "._include.IncludeValidator",
+            "._clipmin.ClipminValidator",
+            "._clipmax.ClipmaxValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/yaxis/tickfont/__init__.py b/plotly/validators/layout/scene/yaxis/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/scene/yaxis/tickfont/__init__.py
+++ b/plotly/validators/layout/scene/yaxis/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/yaxis/tickformatstop/__init__.py b/plotly/validators/layout/scene/yaxis/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/layout/scene/yaxis/tickformatstop/__init__.py
+++ b/plotly/validators/layout/scene/yaxis/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/yaxis/title/__init__.py b/plotly/validators/layout/scene/yaxis/title/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/layout/scene/yaxis/title/__init__.py
+++ b/plotly/validators/layout/scene/yaxis/title/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/layout/scene/yaxis/title/font/__init__.py b/plotly/validators/layout/scene/yaxis/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/scene/yaxis/title/font/__init__.py
+++ b/plotly/validators/layout/scene/yaxis/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/zaxis/__init__.py b/plotly/validators/layout/scene/zaxis/__init__.py
index df86998dd26..b95df1031f8 100644
--- a/plotly/validators/layout/scene/zaxis/__init__.py
+++ b/plotly/validators/layout/scene/zaxis/__init__.py
@@ -1,69 +1,133 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zerolinewidth.ZerolinewidthValidator",
-        "._zerolinecolor.ZerolinecolorValidator",
-        "._zeroline.ZerolineValidator",
-        "._visible.VisibleValidator",
-        "._type.TypeValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._spikethickness.SpikethicknessValidator",
-        "._spikesides.SpikesidesValidator",
-        "._spikecolor.SpikecolorValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showspikes.ShowspikesValidator",
-        "._showline.ShowlineValidator",
-        "._showgrid.ShowgridValidator",
-        "._showexponent.ShowexponentValidator",
-        "._showbackground.ShowbackgroundValidator",
-        "._showaxeslabels.ShowaxeslabelsValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._rangemode.RangemodeValidator",
-        "._range.RangeValidator",
-        "._nticks.NticksValidator",
-        "._mirror.MirrorValidator",
-        "._minexponent.MinexponentValidator",
-        "._minallowed.MinallowedValidator",
-        "._maxallowed.MaxallowedValidator",
-        "._linewidth.LinewidthValidator",
-        "._linecolor.LinecolorValidator",
-        "._labelalias.LabelaliasValidator",
-        "._hoverformat.HoverformatValidator",
-        "._gridwidth.GridwidthValidator",
-        "._gridcolor.GridcolorValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._color.ColorValidator",
-        "._categoryorder.CategoryorderValidator",
-        "._categoryarraysrc.CategoryarraysrcValidator",
-        "._categoryarray.CategoryarrayValidator",
-        "._calendar.CalendarValidator",
-        "._backgroundcolor.BackgroundcolorValidator",
-        "._autotypenumbers.AutotypenumbersValidator",
-        "._autorangeoptions.AutorangeoptionsValidator",
-        "._autorange.AutorangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zerolinewidth import ZerolinewidthValidator
+    from ._zerolinecolor import ZerolinecolorValidator
+    from ._zeroline import ZerolineValidator
+    from ._visible import VisibleValidator
+    from ._type import TypeValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._spikethickness import SpikethicknessValidator
+    from ._spikesides import SpikesidesValidator
+    from ._spikecolor import SpikecolorValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showspikes import ShowspikesValidator
+    from ._showline import ShowlineValidator
+    from ._showgrid import ShowgridValidator
+    from ._showexponent import ShowexponentValidator
+    from ._showbackground import ShowbackgroundValidator
+    from ._showaxeslabels import ShowaxeslabelsValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._rangemode import RangemodeValidator
+    from ._range import RangeValidator
+    from ._nticks import NticksValidator
+    from ._mirror import MirrorValidator
+    from ._minexponent import MinexponentValidator
+    from ._minallowed import MinallowedValidator
+    from ._maxallowed import MaxallowedValidator
+    from ._linewidth import LinewidthValidator
+    from ._linecolor import LinecolorValidator
+    from ._labelalias import LabelaliasValidator
+    from ._hoverformat import HoverformatValidator
+    from ._gridwidth import GridwidthValidator
+    from ._gridcolor import GridcolorValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._color import ColorValidator
+    from ._categoryorder import CategoryorderValidator
+    from ._categoryarraysrc import CategoryarraysrcValidator
+    from ._categoryarray import CategoryarrayValidator
+    from ._calendar import CalendarValidator
+    from ._backgroundcolor import BackgroundcolorValidator
+    from ._autotypenumbers import AutotypenumbersValidator
+    from ._autorangeoptions import AutorangeoptionsValidator
+    from ._autorange import AutorangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zerolinewidth.ZerolinewidthValidator",
+            "._zerolinecolor.ZerolinecolorValidator",
+            "._zeroline.ZerolineValidator",
+            "._visible.VisibleValidator",
+            "._type.TypeValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._spikethickness.SpikethicknessValidator",
+            "._spikesides.SpikesidesValidator",
+            "._spikecolor.SpikecolorValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showspikes.ShowspikesValidator",
+            "._showline.ShowlineValidator",
+            "._showgrid.ShowgridValidator",
+            "._showexponent.ShowexponentValidator",
+            "._showbackground.ShowbackgroundValidator",
+            "._showaxeslabels.ShowaxeslabelsValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._rangemode.RangemodeValidator",
+            "._range.RangeValidator",
+            "._nticks.NticksValidator",
+            "._mirror.MirrorValidator",
+            "._minexponent.MinexponentValidator",
+            "._minallowed.MinallowedValidator",
+            "._maxallowed.MaxallowedValidator",
+            "._linewidth.LinewidthValidator",
+            "._linecolor.LinecolorValidator",
+            "._labelalias.LabelaliasValidator",
+            "._hoverformat.HoverformatValidator",
+            "._gridwidth.GridwidthValidator",
+            "._gridcolor.GridcolorValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._color.ColorValidator",
+            "._categoryorder.CategoryorderValidator",
+            "._categoryarraysrc.CategoryarraysrcValidator",
+            "._categoryarray.CategoryarrayValidator",
+            "._calendar.CalendarValidator",
+            "._backgroundcolor.BackgroundcolorValidator",
+            "._autotypenumbers.AutotypenumbersValidator",
+            "._autorangeoptions.AutorangeoptionsValidator",
+            "._autorange.AutorangeValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/zaxis/autorangeoptions/__init__.py b/plotly/validators/layout/scene/zaxis/autorangeoptions/__init__.py
index 8ef0b74165b..701f84c04e0 100644
--- a/plotly/validators/layout/scene/zaxis/autorangeoptions/__init__.py
+++ b/plotly/validators/layout/scene/zaxis/autorangeoptions/__init__.py
@@ -1,15 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._minallowed.MinallowedValidator",
-        "._maxallowed.MaxallowedValidator",
-        "._includesrc.IncludesrcValidator",
-        "._include.IncludeValidator",
-        "._clipmin.ClipminValidator",
-        "._clipmax.ClipmaxValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._minallowed import MinallowedValidator
+    from ._maxallowed import MaxallowedValidator
+    from ._includesrc import IncludesrcValidator
+    from ._include import IncludeValidator
+    from ._clipmin import ClipminValidator
+    from ._clipmax import ClipmaxValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._minallowed.MinallowedValidator",
+            "._maxallowed.MaxallowedValidator",
+            "._includesrc.IncludesrcValidator",
+            "._include.IncludeValidator",
+            "._clipmin.ClipminValidator",
+            "._clipmax.ClipmaxValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/zaxis/tickfont/__init__.py b/plotly/validators/layout/scene/zaxis/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/scene/zaxis/tickfont/__init__.py
+++ b/plotly/validators/layout/scene/zaxis/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/zaxis/tickformatstop/__init__.py b/plotly/validators/layout/scene/zaxis/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/layout/scene/zaxis/tickformatstop/__init__.py
+++ b/plotly/validators/layout/scene/zaxis/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/scene/zaxis/title/__init__.py b/plotly/validators/layout/scene/zaxis/title/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/layout/scene/zaxis/title/__init__.py
+++ b/plotly/validators/layout/scene/zaxis/title/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/layout/scene/zaxis/title/font/__init__.py b/plotly/validators/layout/scene/zaxis/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/scene/zaxis/title/font/__init__.py
+++ b/plotly/validators/layout/scene/zaxis/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/selection/__init__.py b/plotly/validators/layout/selection/__init__.py
index a2df1a2c23b..12ba4f55b40 100644
--- a/plotly/validators/layout/selection/__init__.py
+++ b/plotly/validators/layout/selection/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._y1.Y1Validator",
-        "._y0.Y0Validator",
-        "._xref.XrefValidator",
-        "._x1.X1Validator",
-        "._x0.X0Validator",
-        "._type.TypeValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._path.PathValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._line.LineValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._y1 import Y1Validator
+    from ._y0 import Y0Validator
+    from ._xref import XrefValidator
+    from ._x1 import X1Validator
+    from ._x0 import X0Validator
+    from ._type import TypeValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._path import PathValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._line import LineValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._y1.Y1Validator",
+            "._y0.Y0Validator",
+            "._xref.XrefValidator",
+            "._x1.X1Validator",
+            "._x0.X0Validator",
+            "._type.TypeValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._path.PathValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._line.LineValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/selection/line/__init__.py b/plotly/validators/layout/selection/line/__init__.py
index c5140ef758d..cff41466517 100644
--- a/plotly/validators/layout/selection/line/__init__.py
+++ b/plotly/validators/layout/selection/line/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
+    )
diff --git a/plotly/validators/layout/shape/__init__.py b/plotly/validators/layout/shape/__init__.py
index 3bc8d16933b..aefa39690c2 100644
--- a/plotly/validators/layout/shape/__init__.py
+++ b/plotly/validators/layout/shape/__init__.py
@@ -1,41 +1,77 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._ysizemode.YsizemodeValidator",
-        "._yref.YrefValidator",
-        "._yanchor.YanchorValidator",
-        "._y1shift.Y1ShiftValidator",
-        "._y1.Y1Validator",
-        "._y0shift.Y0ShiftValidator",
-        "._y0.Y0Validator",
-        "._xsizemode.XsizemodeValidator",
-        "._xref.XrefValidator",
-        "._xanchor.XanchorValidator",
-        "._x1shift.X1ShiftValidator",
-        "._x1.X1Validator",
-        "._x0shift.X0ShiftValidator",
-        "._x0.X0Validator",
-        "._visible.VisibleValidator",
-        "._type.TypeValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._showlegend.ShowlegendValidator",
-        "._path.PathValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._layer.LayerValidator",
-        "._label.LabelValidator",
-        "._fillrule.FillruleValidator",
-        "._fillcolor.FillcolorValidator",
-        "._editable.EditableValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._ysizemode import YsizemodeValidator
+    from ._yref import YrefValidator
+    from ._yanchor import YanchorValidator
+    from ._y1shift import Y1ShiftValidator
+    from ._y1 import Y1Validator
+    from ._y0shift import Y0ShiftValidator
+    from ._y0 import Y0Validator
+    from ._xsizemode import XsizemodeValidator
+    from ._xref import XrefValidator
+    from ._xanchor import XanchorValidator
+    from ._x1shift import X1ShiftValidator
+    from ._x1 import X1Validator
+    from ._x0shift import X0ShiftValidator
+    from ._x0 import X0Validator
+    from ._visible import VisibleValidator
+    from ._type import TypeValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._showlegend import ShowlegendValidator
+    from ._path import PathValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._layer import LayerValidator
+    from ._label import LabelValidator
+    from ._fillrule import FillruleValidator
+    from ._fillcolor import FillcolorValidator
+    from ._editable import EditableValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._ysizemode.YsizemodeValidator",
+            "._yref.YrefValidator",
+            "._yanchor.YanchorValidator",
+            "._y1shift.Y1ShiftValidator",
+            "._y1.Y1Validator",
+            "._y0shift.Y0ShiftValidator",
+            "._y0.Y0Validator",
+            "._xsizemode.XsizemodeValidator",
+            "._xref.XrefValidator",
+            "._xanchor.XanchorValidator",
+            "._x1shift.X1ShiftValidator",
+            "._x1.X1Validator",
+            "._x0shift.X0ShiftValidator",
+            "._x0.X0Validator",
+            "._visible.VisibleValidator",
+            "._type.TypeValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._showlegend.ShowlegendValidator",
+            "._path.PathValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._layer.LayerValidator",
+            "._label.LabelValidator",
+            "._fillrule.FillruleValidator",
+            "._fillcolor.FillcolorValidator",
+            "._editable.EditableValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/shape/label/__init__.py b/plotly/validators/layout/shape/label/__init__.py
index 215b669f842..c6a5f99963d 100644
--- a/plotly/validators/layout/shape/label/__init__.py
+++ b/plotly/validators/layout/shape/label/__init__.py
@@ -1,17 +1,29 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yanchor.YanchorValidator",
-        "._xanchor.XanchorValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textposition.TextpositionValidator",
-        "._textangle.TextangleValidator",
-        "._text.TextValidator",
-        "._padding.PaddingValidator",
-        "._font.FontValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yanchor import YanchorValidator
+    from ._xanchor import XanchorValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textposition import TextpositionValidator
+    from ._textangle import TextangleValidator
+    from ._text import TextValidator
+    from ._padding import PaddingValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yanchor.YanchorValidator",
+            "._xanchor.XanchorValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textposition.TextpositionValidator",
+            "._textangle.TextangleValidator",
+            "._text.TextValidator",
+            "._padding.PaddingValidator",
+            "._font.FontValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/shape/label/font/__init__.py b/plotly/validators/layout/shape/label/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/shape/label/font/__init__.py
+++ b/plotly/validators/layout/shape/label/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/shape/legendgrouptitle/__init__.py b/plotly/validators/layout/shape/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/layout/shape/legendgrouptitle/__init__.py
+++ b/plotly/validators/layout/shape/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/layout/shape/legendgrouptitle/font/__init__.py b/plotly/validators/layout/shape/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/shape/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/layout/shape/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/shape/line/__init__.py b/plotly/validators/layout/shape/line/__init__.py
index c5140ef758d..cff41466517 100644
--- a/plotly/validators/layout/shape/line/__init__.py
+++ b/plotly/validators/layout/shape/line/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
+    )
diff --git a/plotly/validators/layout/slider/__init__.py b/plotly/validators/layout/slider/__init__.py
index 707979274ff..54bb79b340a 100644
--- a/plotly/validators/layout/slider/__init__.py
+++ b/plotly/validators/layout/slider/__init__.py
@@ -1,33 +1,61 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._transition.TransitionValidator",
-        "._tickwidth.TickwidthValidator",
-        "._ticklen.TicklenValidator",
-        "._tickcolor.TickcolorValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._stepdefaults.StepdefaultsValidator",
-        "._steps.StepsValidator",
-        "._pad.PadValidator",
-        "._name.NameValidator",
-        "._minorticklen.MinorticklenValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._font.FontValidator",
-        "._currentvalue.CurrentvalueValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-        "._activebgcolor.ActivebgcolorValidator",
-        "._active.ActiveValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._transition import TransitionValidator
+    from ._tickwidth import TickwidthValidator
+    from ._ticklen import TicklenValidator
+    from ._tickcolor import TickcolorValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._stepdefaults import StepdefaultsValidator
+    from ._steps import StepsValidator
+    from ._pad import PadValidator
+    from ._name import NameValidator
+    from ._minorticklen import MinorticklenValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._font import FontValidator
+    from ._currentvalue import CurrentvalueValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+    from ._activebgcolor import ActivebgcolorValidator
+    from ._active import ActiveValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._transition.TransitionValidator",
+            "._tickwidth.TickwidthValidator",
+            "._ticklen.TicklenValidator",
+            "._tickcolor.TickcolorValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._stepdefaults.StepdefaultsValidator",
+            "._steps.StepsValidator",
+            "._pad.PadValidator",
+            "._name.NameValidator",
+            "._minorticklen.MinorticklenValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._font.FontValidator",
+            "._currentvalue.CurrentvalueValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+            "._activebgcolor.ActivebgcolorValidator",
+            "._active.ActiveValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/slider/currentvalue/__init__.py b/plotly/validators/layout/slider/currentvalue/__init__.py
index 4bf8b638e80..7d45ab0ca0f 100644
--- a/plotly/validators/layout/slider/currentvalue/__init__.py
+++ b/plotly/validators/layout/slider/currentvalue/__init__.py
@@ -1,15 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._xanchor.XanchorValidator",
-        "._visible.VisibleValidator",
-        "._suffix.SuffixValidator",
-        "._prefix.PrefixValidator",
-        "._offset.OffsetValidator",
-        "._font.FontValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._xanchor import XanchorValidator
+    from ._visible import VisibleValidator
+    from ._suffix import SuffixValidator
+    from ._prefix import PrefixValidator
+    from ._offset import OffsetValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._xanchor.XanchorValidator",
+            "._visible.VisibleValidator",
+            "._suffix.SuffixValidator",
+            "._prefix.PrefixValidator",
+            "._offset.OffsetValidator",
+            "._font.FontValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/slider/currentvalue/font/__init__.py b/plotly/validators/layout/slider/currentvalue/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/slider/currentvalue/font/__init__.py
+++ b/plotly/validators/layout/slider/currentvalue/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/slider/font/__init__.py b/plotly/validators/layout/slider/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/slider/font/__init__.py
+++ b/plotly/validators/layout/slider/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/slider/pad/__init__.py b/plotly/validators/layout/slider/pad/__init__.py
index 4189bfbe1fd..04e64dbc5ee 100644
--- a/plotly/validators/layout/slider/pad/__init__.py
+++ b/plotly/validators/layout/slider/pad/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._t.TValidator", "._r.RValidator", "._l.LValidator", "._b.BValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._t import TValidator
+    from ._r import RValidator
+    from ._l import LValidator
+    from ._b import BValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._t.TValidator", "._r.RValidator", "._l.LValidator", "._b.BValidator"],
+    )
diff --git a/plotly/validators/layout/slider/step/__init__.py b/plotly/validators/layout/slider/step/__init__.py
index 945d93ed7fe..8abecadfbd8 100644
--- a/plotly/validators/layout/slider/step/__init__.py
+++ b/plotly/validators/layout/slider/step/__init__.py
@@ -1,17 +1,29 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._method.MethodValidator",
-        "._label.LabelValidator",
-        "._execute.ExecuteValidator",
-        "._args.ArgsValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._method import MethodValidator
+    from ._label import LabelValidator
+    from ._execute import ExecuteValidator
+    from ._args import ArgsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._method.MethodValidator",
+            "._label.LabelValidator",
+            "._execute.ExecuteValidator",
+            "._args.ArgsValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/slider/transition/__init__.py b/plotly/validators/layout/slider/transition/__init__.py
index 817ac2685ac..7d9860a84d8 100644
--- a/plotly/validators/layout/slider/transition/__init__.py
+++ b/plotly/validators/layout/slider/transition/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._easing.EasingValidator", "._duration.DurationValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._easing import EasingValidator
+    from ._duration import DurationValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._easing.EasingValidator", "._duration.DurationValidator"]
+    )
diff --git a/plotly/validators/layout/smith/__init__.py b/plotly/validators/layout/smith/__init__.py
index efd64716485..afc951432ff 100644
--- a/plotly/validators/layout/smith/__init__.py
+++ b/plotly/validators/layout/smith/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._realaxis.RealaxisValidator",
-        "._imaginaryaxis.ImaginaryaxisValidator",
-        "._domain.DomainValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._realaxis import RealaxisValidator
+    from ._imaginaryaxis import ImaginaryaxisValidator
+    from ._domain import DomainValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._realaxis.RealaxisValidator",
+            "._imaginaryaxis.ImaginaryaxisValidator",
+            "._domain.DomainValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/smith/domain/__init__.py b/plotly/validators/layout/smith/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/layout/smith/domain/__init__.py
+++ b/plotly/validators/layout/smith/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/smith/imaginaryaxis/__init__.py b/plotly/validators/layout/smith/imaginaryaxis/__init__.py
index 73c1cf501bf..6cb6e2eb065 100644
--- a/plotly/validators/layout/smith/imaginaryaxis/__init__.py
+++ b/plotly/validators/layout/smith/imaginaryaxis/__init__.py
@@ -1,34 +1,63 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._ticklen.TicklenValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showline.ShowlineValidator",
-        "._showgrid.ShowgridValidator",
-        "._linewidth.LinewidthValidator",
-        "._linecolor.LinecolorValidator",
-        "._layer.LayerValidator",
-        "._labelalias.LabelaliasValidator",
-        "._hoverformat.HoverformatValidator",
-        "._gridwidth.GridwidthValidator",
-        "._griddash.GriddashValidator",
-        "._gridcolor.GridcolorValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._ticklen import TicklenValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showline import ShowlineValidator
+    from ._showgrid import ShowgridValidator
+    from ._linewidth import LinewidthValidator
+    from ._linecolor import LinecolorValidator
+    from ._layer import LayerValidator
+    from ._labelalias import LabelaliasValidator
+    from ._hoverformat import HoverformatValidator
+    from ._gridwidth import GridwidthValidator
+    from ._griddash import GriddashValidator
+    from ._gridcolor import GridcolorValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._ticklen.TicklenValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showline.ShowlineValidator",
+            "._showgrid.ShowgridValidator",
+            "._linewidth.LinewidthValidator",
+            "._linecolor.LinecolorValidator",
+            "._layer.LayerValidator",
+            "._labelalias.LabelaliasValidator",
+            "._hoverformat.HoverformatValidator",
+            "._gridwidth.GridwidthValidator",
+            "._griddash.GriddashValidator",
+            "._gridcolor.GridcolorValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/smith/imaginaryaxis/tickfont/__init__.py b/plotly/validators/layout/smith/imaginaryaxis/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/smith/imaginaryaxis/tickfont/__init__.py
+++ b/plotly/validators/layout/smith/imaginaryaxis/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/smith/realaxis/__init__.py b/plotly/validators/layout/smith/realaxis/__init__.py
index 47f058f74e1..d70a1c4234c 100644
--- a/plotly/validators/layout/smith/realaxis/__init__.py
+++ b/plotly/validators/layout/smith/realaxis/__init__.py
@@ -1,36 +1,67 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._ticklen.TicklenValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._side.SideValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showline.ShowlineValidator",
-        "._showgrid.ShowgridValidator",
-        "._linewidth.LinewidthValidator",
-        "._linecolor.LinecolorValidator",
-        "._layer.LayerValidator",
-        "._labelalias.LabelaliasValidator",
-        "._hoverformat.HoverformatValidator",
-        "._gridwidth.GridwidthValidator",
-        "._griddash.GriddashValidator",
-        "._gridcolor.GridcolorValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._ticklen import TicklenValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._side import SideValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showline import ShowlineValidator
+    from ._showgrid import ShowgridValidator
+    from ._linewidth import LinewidthValidator
+    from ._linecolor import LinecolorValidator
+    from ._layer import LayerValidator
+    from ._labelalias import LabelaliasValidator
+    from ._hoverformat import HoverformatValidator
+    from ._gridwidth import GridwidthValidator
+    from ._griddash import GriddashValidator
+    from ._gridcolor import GridcolorValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._ticklen.TicklenValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._side.SideValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showline.ShowlineValidator",
+            "._showgrid.ShowgridValidator",
+            "._linewidth.LinewidthValidator",
+            "._linecolor.LinecolorValidator",
+            "._layer.LayerValidator",
+            "._labelalias.LabelaliasValidator",
+            "._hoverformat.HoverformatValidator",
+            "._gridwidth.GridwidthValidator",
+            "._griddash.GriddashValidator",
+            "._gridcolor.GridcolorValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/smith/realaxis/tickfont/__init__.py b/plotly/validators/layout/smith/realaxis/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/smith/realaxis/tickfont/__init__.py
+++ b/plotly/validators/layout/smith/realaxis/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/template/__init__.py b/plotly/validators/layout/template/__init__.py
index 6252409e26b..bba1136f42a 100644
--- a/plotly/validators/layout/template/__init__.py
+++ b/plotly/validators/layout/template/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._layout.LayoutValidator", "._data.DataValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._layout import LayoutValidator
+    from ._data import DataValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._layout.LayoutValidator", "._data.DataValidator"]
+    )
diff --git a/plotly/validators/layout/template/data/__init__.py b/plotly/validators/layout/template/data/__init__.py
index e81f0e08134..da0ae909741 100644
--- a/plotly/validators/layout/template/data/__init__.py
+++ b/plotly/validators/layout/template/data/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._waterfall.WaterfallValidator",
-        "._volume.VolumeValidator",
-        "._violin.ViolinValidator",
-        "._treemap.TreemapValidator",
-        "._table.TableValidator",
-        "._surface.SurfaceValidator",
-        "._sunburst.SunburstValidator",
-        "._streamtube.StreamtubeValidator",
-        "._splom.SplomValidator",
-        "._scatterternary.ScatterternaryValidator",
-        "._scattersmith.ScattersmithValidator",
-        "._scatter.ScatterValidator",
-        "._scatterpolar.ScatterpolarValidator",
-        "._scatterpolargl.ScatterpolarglValidator",
-        "._scattermap.ScattermapValidator",
-        "._scattermapbox.ScattermapboxValidator",
-        "._scattergl.ScatterglValidator",
-        "._scattergeo.ScattergeoValidator",
-        "._scattercarpet.ScattercarpetValidator",
-        "._scatter3d.Scatter3DValidator",
-        "._sankey.SankeyValidator",
-        "._pie.PieValidator",
-        "._parcoords.ParcoordsValidator",
-        "._parcats.ParcatsValidator",
-        "._ohlc.OhlcValidator",
-        "._mesh3d.Mesh3DValidator",
-        "._isosurface.IsosurfaceValidator",
-        "._indicator.IndicatorValidator",
-        "._image.ImageValidator",
-        "._icicle.IcicleValidator",
-        "._histogram.HistogramValidator",
-        "._histogram2d.Histogram2DValidator",
-        "._histogram2dcontour.Histogram2DcontourValidator",
-        "._heatmap.HeatmapValidator",
-        "._funnel.FunnelValidator",
-        "._funnelarea.FunnelareaValidator",
-        "._densitymap.DensitymapValidator",
-        "._densitymapbox.DensitymapboxValidator",
-        "._contour.ContourValidator",
-        "._contourcarpet.ContourcarpetValidator",
-        "._cone.ConeValidator",
-        "._choropleth.ChoroplethValidator",
-        "._choroplethmap.ChoroplethmapValidator",
-        "._choroplethmapbox.ChoroplethmapboxValidator",
-        "._carpet.CarpetValidator",
-        "._candlestick.CandlestickValidator",
-        "._box.BoxValidator",
-        "._bar.BarValidator",
-        "._barpolar.BarpolarValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._waterfall import WaterfallValidator
+    from ._volume import VolumeValidator
+    from ._violin import ViolinValidator
+    from ._treemap import TreemapValidator
+    from ._table import TableValidator
+    from ._surface import SurfaceValidator
+    from ._sunburst import SunburstValidator
+    from ._streamtube import StreamtubeValidator
+    from ._splom import SplomValidator
+    from ._scatterternary import ScatterternaryValidator
+    from ._scattersmith import ScattersmithValidator
+    from ._scatter import ScatterValidator
+    from ._scatterpolar import ScatterpolarValidator
+    from ._scatterpolargl import ScatterpolarglValidator
+    from ._scattermap import ScattermapValidator
+    from ._scattermapbox import ScattermapboxValidator
+    from ._scattergl import ScatterglValidator
+    from ._scattergeo import ScattergeoValidator
+    from ._scattercarpet import ScattercarpetValidator
+    from ._scatter3d import Scatter3DValidator
+    from ._sankey import SankeyValidator
+    from ._pie import PieValidator
+    from ._parcoords import ParcoordsValidator
+    from ._parcats import ParcatsValidator
+    from ._ohlc import OhlcValidator
+    from ._mesh3d import Mesh3DValidator
+    from ._isosurface import IsosurfaceValidator
+    from ._indicator import IndicatorValidator
+    from ._image import ImageValidator
+    from ._icicle import IcicleValidator
+    from ._histogram import HistogramValidator
+    from ._histogram2d import Histogram2DValidator
+    from ._histogram2dcontour import Histogram2DcontourValidator
+    from ._heatmap import HeatmapValidator
+    from ._funnel import FunnelValidator
+    from ._funnelarea import FunnelareaValidator
+    from ._densitymap import DensitymapValidator
+    from ._densitymapbox import DensitymapboxValidator
+    from ._contour import ContourValidator
+    from ._contourcarpet import ContourcarpetValidator
+    from ._cone import ConeValidator
+    from ._choropleth import ChoroplethValidator
+    from ._choroplethmap import ChoroplethmapValidator
+    from ._choroplethmapbox import ChoroplethmapboxValidator
+    from ._carpet import CarpetValidator
+    from ._candlestick import CandlestickValidator
+    from ._box import BoxValidator
+    from ._bar import BarValidator
+    from ._barpolar import BarpolarValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._waterfall.WaterfallValidator",
+            "._volume.VolumeValidator",
+            "._violin.ViolinValidator",
+            "._treemap.TreemapValidator",
+            "._table.TableValidator",
+            "._surface.SurfaceValidator",
+            "._sunburst.SunburstValidator",
+            "._streamtube.StreamtubeValidator",
+            "._splom.SplomValidator",
+            "._scatterternary.ScatterternaryValidator",
+            "._scattersmith.ScattersmithValidator",
+            "._scatter.ScatterValidator",
+            "._scatterpolar.ScatterpolarValidator",
+            "._scatterpolargl.ScatterpolarglValidator",
+            "._scattermap.ScattermapValidator",
+            "._scattermapbox.ScattermapboxValidator",
+            "._scattergl.ScatterglValidator",
+            "._scattergeo.ScattergeoValidator",
+            "._scattercarpet.ScattercarpetValidator",
+            "._scatter3d.Scatter3DValidator",
+            "._sankey.SankeyValidator",
+            "._pie.PieValidator",
+            "._parcoords.ParcoordsValidator",
+            "._parcats.ParcatsValidator",
+            "._ohlc.OhlcValidator",
+            "._mesh3d.Mesh3DValidator",
+            "._isosurface.IsosurfaceValidator",
+            "._indicator.IndicatorValidator",
+            "._image.ImageValidator",
+            "._icicle.IcicleValidator",
+            "._histogram.HistogramValidator",
+            "._histogram2d.Histogram2DValidator",
+            "._histogram2dcontour.Histogram2DcontourValidator",
+            "._heatmap.HeatmapValidator",
+            "._funnel.FunnelValidator",
+            "._funnelarea.FunnelareaValidator",
+            "._densitymap.DensitymapValidator",
+            "._densitymapbox.DensitymapboxValidator",
+            "._contour.ContourValidator",
+            "._contourcarpet.ContourcarpetValidator",
+            "._cone.ConeValidator",
+            "._choropleth.ChoroplethValidator",
+            "._choroplethmap.ChoroplethmapValidator",
+            "._choroplethmapbox.ChoroplethmapboxValidator",
+            "._carpet.CarpetValidator",
+            "._candlestick.CandlestickValidator",
+            "._box.BoxValidator",
+            "._bar.BarValidator",
+            "._barpolar.BarpolarValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/ternary/__init__.py b/plotly/validators/layout/ternary/__init__.py
index 64f6fa3154a..6c9d35db381 100644
--- a/plotly/validators/layout/ternary/__init__.py
+++ b/plotly/validators/layout/ternary/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._uirevision.UirevisionValidator",
-        "._sum.SumValidator",
-        "._domain.DomainValidator",
-        "._caxis.CaxisValidator",
-        "._bgcolor.BgcolorValidator",
-        "._baxis.BaxisValidator",
-        "._aaxis.AaxisValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._uirevision import UirevisionValidator
+    from ._sum import SumValidator
+    from ._domain import DomainValidator
+    from ._caxis import CaxisValidator
+    from ._bgcolor import BgcolorValidator
+    from ._baxis import BaxisValidator
+    from ._aaxis import AaxisValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._uirevision.UirevisionValidator",
+            "._sum.SumValidator",
+            "._domain.DomainValidator",
+            "._caxis.CaxisValidator",
+            "._bgcolor.BgcolorValidator",
+            "._baxis.BaxisValidator",
+            "._aaxis.AaxisValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/ternary/aaxis/__init__.py b/plotly/validators/layout/ternary/aaxis/__init__.py
index 5f18e869867..0fafe618243 100644
--- a/plotly/validators/layout/ternary/aaxis/__init__.py
+++ b/plotly/validators/layout/ternary/aaxis/__init__.py
@@ -1,50 +1,95 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._uirevision.UirevisionValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showline.ShowlineValidator",
-        "._showgrid.ShowgridValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._min.MinValidator",
-        "._linewidth.LinewidthValidator",
-        "._linecolor.LinecolorValidator",
-        "._layer.LayerValidator",
-        "._labelalias.LabelaliasValidator",
-        "._hoverformat.HoverformatValidator",
-        "._gridwidth.GridwidthValidator",
-        "._griddash.GriddashValidator",
-        "._gridcolor.GridcolorValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._uirevision import UirevisionValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showline import ShowlineValidator
+    from ._showgrid import ShowgridValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._min import MinValidator
+    from ._linewidth import LinewidthValidator
+    from ._linecolor import LinecolorValidator
+    from ._layer import LayerValidator
+    from ._labelalias import LabelaliasValidator
+    from ._hoverformat import HoverformatValidator
+    from ._gridwidth import GridwidthValidator
+    from ._griddash import GriddashValidator
+    from ._gridcolor import GridcolorValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._uirevision.UirevisionValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showline.ShowlineValidator",
+            "._showgrid.ShowgridValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._min.MinValidator",
+            "._linewidth.LinewidthValidator",
+            "._linecolor.LinecolorValidator",
+            "._layer.LayerValidator",
+            "._labelalias.LabelaliasValidator",
+            "._hoverformat.HoverformatValidator",
+            "._gridwidth.GridwidthValidator",
+            "._griddash.GriddashValidator",
+            "._gridcolor.GridcolorValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/ternary/aaxis/tickfont/__init__.py b/plotly/validators/layout/ternary/aaxis/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/ternary/aaxis/tickfont/__init__.py
+++ b/plotly/validators/layout/ternary/aaxis/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/ternary/aaxis/tickformatstop/__init__.py b/plotly/validators/layout/ternary/aaxis/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/layout/ternary/aaxis/tickformatstop/__init__.py
+++ b/plotly/validators/layout/ternary/aaxis/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/ternary/aaxis/title/__init__.py b/plotly/validators/layout/ternary/aaxis/title/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/layout/ternary/aaxis/title/__init__.py
+++ b/plotly/validators/layout/ternary/aaxis/title/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/layout/ternary/aaxis/title/font/__init__.py b/plotly/validators/layout/ternary/aaxis/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/ternary/aaxis/title/font/__init__.py
+++ b/plotly/validators/layout/ternary/aaxis/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/ternary/baxis/__init__.py b/plotly/validators/layout/ternary/baxis/__init__.py
index 5f18e869867..0fafe618243 100644
--- a/plotly/validators/layout/ternary/baxis/__init__.py
+++ b/plotly/validators/layout/ternary/baxis/__init__.py
@@ -1,50 +1,95 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._uirevision.UirevisionValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showline.ShowlineValidator",
-        "._showgrid.ShowgridValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._min.MinValidator",
-        "._linewidth.LinewidthValidator",
-        "._linecolor.LinecolorValidator",
-        "._layer.LayerValidator",
-        "._labelalias.LabelaliasValidator",
-        "._hoverformat.HoverformatValidator",
-        "._gridwidth.GridwidthValidator",
-        "._griddash.GriddashValidator",
-        "._gridcolor.GridcolorValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._uirevision import UirevisionValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showline import ShowlineValidator
+    from ._showgrid import ShowgridValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._min import MinValidator
+    from ._linewidth import LinewidthValidator
+    from ._linecolor import LinecolorValidator
+    from ._layer import LayerValidator
+    from ._labelalias import LabelaliasValidator
+    from ._hoverformat import HoverformatValidator
+    from ._gridwidth import GridwidthValidator
+    from ._griddash import GriddashValidator
+    from ._gridcolor import GridcolorValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._uirevision.UirevisionValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showline.ShowlineValidator",
+            "._showgrid.ShowgridValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._min.MinValidator",
+            "._linewidth.LinewidthValidator",
+            "._linecolor.LinecolorValidator",
+            "._layer.LayerValidator",
+            "._labelalias.LabelaliasValidator",
+            "._hoverformat.HoverformatValidator",
+            "._gridwidth.GridwidthValidator",
+            "._griddash.GriddashValidator",
+            "._gridcolor.GridcolorValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/ternary/baxis/tickfont/__init__.py b/plotly/validators/layout/ternary/baxis/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/ternary/baxis/tickfont/__init__.py
+++ b/plotly/validators/layout/ternary/baxis/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/ternary/baxis/tickformatstop/__init__.py b/plotly/validators/layout/ternary/baxis/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/layout/ternary/baxis/tickformatstop/__init__.py
+++ b/plotly/validators/layout/ternary/baxis/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/ternary/baxis/title/__init__.py b/plotly/validators/layout/ternary/baxis/title/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/layout/ternary/baxis/title/__init__.py
+++ b/plotly/validators/layout/ternary/baxis/title/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/layout/ternary/baxis/title/font/__init__.py b/plotly/validators/layout/ternary/baxis/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/ternary/baxis/title/font/__init__.py
+++ b/plotly/validators/layout/ternary/baxis/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/ternary/caxis/__init__.py b/plotly/validators/layout/ternary/caxis/__init__.py
index 5f18e869867..0fafe618243 100644
--- a/plotly/validators/layout/ternary/caxis/__init__.py
+++ b/plotly/validators/layout/ternary/caxis/__init__.py
@@ -1,50 +1,95 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._uirevision.UirevisionValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showline.ShowlineValidator",
-        "._showgrid.ShowgridValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._min.MinValidator",
-        "._linewidth.LinewidthValidator",
-        "._linecolor.LinecolorValidator",
-        "._layer.LayerValidator",
-        "._labelalias.LabelaliasValidator",
-        "._hoverformat.HoverformatValidator",
-        "._gridwidth.GridwidthValidator",
-        "._griddash.GriddashValidator",
-        "._gridcolor.GridcolorValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._uirevision import UirevisionValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showline import ShowlineValidator
+    from ._showgrid import ShowgridValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._min import MinValidator
+    from ._linewidth import LinewidthValidator
+    from ._linecolor import LinecolorValidator
+    from ._layer import LayerValidator
+    from ._labelalias import LabelaliasValidator
+    from ._hoverformat import HoverformatValidator
+    from ._gridwidth import GridwidthValidator
+    from ._griddash import GriddashValidator
+    from ._gridcolor import GridcolorValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._uirevision.UirevisionValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showline.ShowlineValidator",
+            "._showgrid.ShowgridValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._min.MinValidator",
+            "._linewidth.LinewidthValidator",
+            "._linecolor.LinecolorValidator",
+            "._layer.LayerValidator",
+            "._labelalias.LabelaliasValidator",
+            "._hoverformat.HoverformatValidator",
+            "._gridwidth.GridwidthValidator",
+            "._griddash.GriddashValidator",
+            "._gridcolor.GridcolorValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/ternary/caxis/tickfont/__init__.py b/plotly/validators/layout/ternary/caxis/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/ternary/caxis/tickfont/__init__.py
+++ b/plotly/validators/layout/ternary/caxis/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/ternary/caxis/tickformatstop/__init__.py b/plotly/validators/layout/ternary/caxis/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/layout/ternary/caxis/tickformatstop/__init__.py
+++ b/plotly/validators/layout/ternary/caxis/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/ternary/caxis/title/__init__.py b/plotly/validators/layout/ternary/caxis/title/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/layout/ternary/caxis/title/__init__.py
+++ b/plotly/validators/layout/ternary/caxis/title/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/layout/ternary/caxis/title/font/__init__.py b/plotly/validators/layout/ternary/caxis/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/ternary/caxis/title/font/__init__.py
+++ b/plotly/validators/layout/ternary/caxis/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/ternary/domain/__init__.py b/plotly/validators/layout/ternary/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/layout/ternary/domain/__init__.py
+++ b/plotly/validators/layout/ternary/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/title/__init__.py b/plotly/validators/layout/title/__init__.py
index d5874a9ef9c..ff0523d6807 100644
--- a/plotly/validators/layout/title/__init__.py
+++ b/plotly/validators/layout/title/__init__.py
@@ -1,20 +1,35 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._text.TextValidator",
-        "._subtitle.SubtitleValidator",
-        "._pad.PadValidator",
-        "._font.FontValidator",
-        "._automargin.AutomarginValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._text import TextValidator
+    from ._subtitle import SubtitleValidator
+    from ._pad import PadValidator
+    from ._font import FontValidator
+    from ._automargin import AutomarginValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._text.TextValidator",
+            "._subtitle.SubtitleValidator",
+            "._pad.PadValidator",
+            "._font.FontValidator",
+            "._automargin.AutomarginValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/title/font/__init__.py b/plotly/validators/layout/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/title/font/__init__.py
+++ b/plotly/validators/layout/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/title/pad/__init__.py b/plotly/validators/layout/title/pad/__init__.py
index 4189bfbe1fd..04e64dbc5ee 100644
--- a/plotly/validators/layout/title/pad/__init__.py
+++ b/plotly/validators/layout/title/pad/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._t.TValidator", "._r.RValidator", "._l.LValidator", "._b.BValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._t import TValidator
+    from ._r import RValidator
+    from ._l import LValidator
+    from ._b import BValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._t.TValidator", "._r.RValidator", "._l.LValidator", "._b.BValidator"],
+    )
diff --git a/plotly/validators/layout/title/subtitle/__init__.py b/plotly/validators/layout/title/subtitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/layout/title/subtitle/__init__.py
+++ b/plotly/validators/layout/title/subtitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/layout/title/subtitle/font/__init__.py b/plotly/validators/layout/title/subtitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/title/subtitle/font/__init__.py
+++ b/plotly/validators/layout/title/subtitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/transition/__init__.py b/plotly/validators/layout/transition/__init__.py
index df8f606b1b0..07de6dadaf7 100644
--- a/plotly/validators/layout/transition/__init__.py
+++ b/plotly/validators/layout/transition/__init__.py
@@ -1,12 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._ordering.OrderingValidator",
-        "._easing.EasingValidator",
-        "._duration.DurationValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._ordering import OrderingValidator
+    from ._easing import EasingValidator
+    from ._duration import DurationValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._ordering.OrderingValidator",
+            "._easing.EasingValidator",
+            "._duration.DurationValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/uniformtext/__init__.py b/plotly/validators/layout/uniformtext/__init__.py
index b6bb5dfdb98..8ddff597fe3 100644
--- a/plotly/validators/layout/uniformtext/__init__.py
+++ b/plotly/validators/layout/uniformtext/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._mode.ModeValidator", "._minsize.MinsizeValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._mode import ModeValidator
+    from ._minsize import MinsizeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._mode.ModeValidator", "._minsize.MinsizeValidator"]
+    )
diff --git a/plotly/validators/layout/updatemenu/__init__.py b/plotly/validators/layout/updatemenu/__init__.py
index 4136881a29a..cedac6271e8 100644
--- a/plotly/validators/layout/updatemenu/__init__.py
+++ b/plotly/validators/layout/updatemenu/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._type.TypeValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._showactive.ShowactiveValidator",
-        "._pad.PadValidator",
-        "._name.NameValidator",
-        "._font.FontValidator",
-        "._direction.DirectionValidator",
-        "._buttondefaults.ButtondefaultsValidator",
-        "._buttons.ButtonsValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-        "._active.ActiveValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._type import TypeValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._showactive import ShowactiveValidator
+    from ._pad import PadValidator
+    from ._name import NameValidator
+    from ._font import FontValidator
+    from ._direction import DirectionValidator
+    from ._buttondefaults import ButtondefaultsValidator
+    from ._buttons import ButtonsValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+    from ._active import ActiveValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._type.TypeValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._showactive.ShowactiveValidator",
+            "._pad.PadValidator",
+            "._name.NameValidator",
+            "._font.FontValidator",
+            "._direction.DirectionValidator",
+            "._buttondefaults.ButtondefaultsValidator",
+            "._buttons.ButtonsValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+            "._active.ActiveValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/updatemenu/button/__init__.py b/plotly/validators/layout/updatemenu/button/__init__.py
index de38de558ab..e0a90a88c06 100644
--- a/plotly/validators/layout/updatemenu/button/__init__.py
+++ b/plotly/validators/layout/updatemenu/button/__init__.py
@@ -1,17 +1,29 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._method.MethodValidator",
-        "._label.LabelValidator",
-        "._execute.ExecuteValidator",
-        "._args2.Args2Validator",
-        "._args.ArgsValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._method import MethodValidator
+    from ._label import LabelValidator
+    from ._execute import ExecuteValidator
+    from ._args2 import Args2Validator
+    from ._args import ArgsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._method.MethodValidator",
+            "._label.LabelValidator",
+            "._execute.ExecuteValidator",
+            "._args2.Args2Validator",
+            "._args.ArgsValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/updatemenu/font/__init__.py b/plotly/validators/layout/updatemenu/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/updatemenu/font/__init__.py
+++ b/plotly/validators/layout/updatemenu/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/updatemenu/pad/__init__.py b/plotly/validators/layout/updatemenu/pad/__init__.py
index 4189bfbe1fd..04e64dbc5ee 100644
--- a/plotly/validators/layout/updatemenu/pad/__init__.py
+++ b/plotly/validators/layout/updatemenu/pad/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._t.TValidator", "._r.RValidator", "._l.LValidator", "._b.BValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._t import TValidator
+    from ._r import RValidator
+    from ._l import LValidator
+    from ._b import BValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._t.TValidator", "._r.RValidator", "._l.LValidator", "._b.BValidator"],
+    )
diff --git a/plotly/validators/layout/xaxis/__init__.py b/plotly/validators/layout/xaxis/__init__.py
index ce48cf9b143..be5a049045c 100644
--- a/plotly/validators/layout/xaxis/__init__.py
+++ b/plotly/validators/layout/xaxis/__init__.py
@@ -1,102 +1,199 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zerolinewidth.ZerolinewidthValidator",
-        "._zerolinecolor.ZerolinecolorValidator",
-        "._zeroline.ZerolineValidator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._type.TypeValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._tickson.TicksonValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelstandoff.TicklabelstandoffValidator",
-        "._ticklabelshift.TicklabelshiftValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._ticklabelmode.TicklabelmodeValidator",
-        "._ticklabelindexsrc.TicklabelindexsrcValidator",
-        "._ticklabelindex.TicklabelindexValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._spikethickness.SpikethicknessValidator",
-        "._spikesnap.SpikesnapValidator",
-        "._spikemode.SpikemodeValidator",
-        "._spikedash.SpikedashValidator",
-        "._spikecolor.SpikecolorValidator",
-        "._side.SideValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showspikes.ShowspikesValidator",
-        "._showline.ShowlineValidator",
-        "._showgrid.ShowgridValidator",
-        "._showexponent.ShowexponentValidator",
-        "._showdividers.ShowdividersValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._scaleratio.ScaleratioValidator",
-        "._scaleanchor.ScaleanchorValidator",
-        "._rangeslider.RangesliderValidator",
-        "._rangeselector.RangeselectorValidator",
-        "._rangemode.RangemodeValidator",
-        "._rangebreakdefaults.RangebreakdefaultsValidator",
-        "._rangebreaks.RangebreaksValidator",
-        "._range.RangeValidator",
-        "._position.PositionValidator",
-        "._overlaying.OverlayingValidator",
-        "._nticks.NticksValidator",
-        "._mirror.MirrorValidator",
-        "._minor.MinorValidator",
-        "._minexponent.MinexponentValidator",
-        "._minallowed.MinallowedValidator",
-        "._maxallowed.MaxallowedValidator",
-        "._matches.MatchesValidator",
-        "._linewidth.LinewidthValidator",
-        "._linecolor.LinecolorValidator",
-        "._layer.LayerValidator",
-        "._labelalias.LabelaliasValidator",
-        "._insiderange.InsiderangeValidator",
-        "._hoverformat.HoverformatValidator",
-        "._gridwidth.GridwidthValidator",
-        "._griddash.GriddashValidator",
-        "._gridcolor.GridcolorValidator",
-        "._fixedrange.FixedrangeValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._domain.DomainValidator",
-        "._dividerwidth.DividerwidthValidator",
-        "._dividercolor.DividercolorValidator",
-        "._constraintoward.ConstraintowardValidator",
-        "._constrain.ConstrainValidator",
-        "._color.ColorValidator",
-        "._categoryorder.CategoryorderValidator",
-        "._categoryarraysrc.CategoryarraysrcValidator",
-        "._categoryarray.CategoryarrayValidator",
-        "._calendar.CalendarValidator",
-        "._autotypenumbers.AutotypenumbersValidator",
-        "._autotickangles.AutotickanglesValidator",
-        "._autorangeoptions.AutorangeoptionsValidator",
-        "._autorange.AutorangeValidator",
-        "._automargin.AutomarginValidator",
-        "._anchor.AnchorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zerolinewidth import ZerolinewidthValidator
+    from ._zerolinecolor import ZerolinecolorValidator
+    from ._zeroline import ZerolineValidator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._type import TypeValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._tickson import TicksonValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelstandoff import TicklabelstandoffValidator
+    from ._ticklabelshift import TicklabelshiftValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._ticklabelmode import TicklabelmodeValidator
+    from ._ticklabelindexsrc import TicklabelindexsrcValidator
+    from ._ticklabelindex import TicklabelindexValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._spikethickness import SpikethicknessValidator
+    from ._spikesnap import SpikesnapValidator
+    from ._spikemode import SpikemodeValidator
+    from ._spikedash import SpikedashValidator
+    from ._spikecolor import SpikecolorValidator
+    from ._side import SideValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showspikes import ShowspikesValidator
+    from ._showline import ShowlineValidator
+    from ._showgrid import ShowgridValidator
+    from ._showexponent import ShowexponentValidator
+    from ._showdividers import ShowdividersValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._scaleratio import ScaleratioValidator
+    from ._scaleanchor import ScaleanchorValidator
+    from ._rangeslider import RangesliderValidator
+    from ._rangeselector import RangeselectorValidator
+    from ._rangemode import RangemodeValidator
+    from ._rangebreakdefaults import RangebreakdefaultsValidator
+    from ._rangebreaks import RangebreaksValidator
+    from ._range import RangeValidator
+    from ._position import PositionValidator
+    from ._overlaying import OverlayingValidator
+    from ._nticks import NticksValidator
+    from ._mirror import MirrorValidator
+    from ._minor import MinorValidator
+    from ._minexponent import MinexponentValidator
+    from ._minallowed import MinallowedValidator
+    from ._maxallowed import MaxallowedValidator
+    from ._matches import MatchesValidator
+    from ._linewidth import LinewidthValidator
+    from ._linecolor import LinecolorValidator
+    from ._layer import LayerValidator
+    from ._labelalias import LabelaliasValidator
+    from ._insiderange import InsiderangeValidator
+    from ._hoverformat import HoverformatValidator
+    from ._gridwidth import GridwidthValidator
+    from ._griddash import GriddashValidator
+    from ._gridcolor import GridcolorValidator
+    from ._fixedrange import FixedrangeValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._domain import DomainValidator
+    from ._dividerwidth import DividerwidthValidator
+    from ._dividercolor import DividercolorValidator
+    from ._constraintoward import ConstraintowardValidator
+    from ._constrain import ConstrainValidator
+    from ._color import ColorValidator
+    from ._categoryorder import CategoryorderValidator
+    from ._categoryarraysrc import CategoryarraysrcValidator
+    from ._categoryarray import CategoryarrayValidator
+    from ._calendar import CalendarValidator
+    from ._autotypenumbers import AutotypenumbersValidator
+    from ._autotickangles import AutotickanglesValidator
+    from ._autorangeoptions import AutorangeoptionsValidator
+    from ._autorange import AutorangeValidator
+    from ._automargin import AutomarginValidator
+    from ._anchor import AnchorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zerolinewidth.ZerolinewidthValidator",
+            "._zerolinecolor.ZerolinecolorValidator",
+            "._zeroline.ZerolineValidator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._type.TypeValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._tickson.TicksonValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelstandoff.TicklabelstandoffValidator",
+            "._ticklabelshift.TicklabelshiftValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._ticklabelmode.TicklabelmodeValidator",
+            "._ticklabelindexsrc.TicklabelindexsrcValidator",
+            "._ticklabelindex.TicklabelindexValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._spikethickness.SpikethicknessValidator",
+            "._spikesnap.SpikesnapValidator",
+            "._spikemode.SpikemodeValidator",
+            "._spikedash.SpikedashValidator",
+            "._spikecolor.SpikecolorValidator",
+            "._side.SideValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showspikes.ShowspikesValidator",
+            "._showline.ShowlineValidator",
+            "._showgrid.ShowgridValidator",
+            "._showexponent.ShowexponentValidator",
+            "._showdividers.ShowdividersValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._scaleratio.ScaleratioValidator",
+            "._scaleanchor.ScaleanchorValidator",
+            "._rangeslider.RangesliderValidator",
+            "._rangeselector.RangeselectorValidator",
+            "._rangemode.RangemodeValidator",
+            "._rangebreakdefaults.RangebreakdefaultsValidator",
+            "._rangebreaks.RangebreaksValidator",
+            "._range.RangeValidator",
+            "._position.PositionValidator",
+            "._overlaying.OverlayingValidator",
+            "._nticks.NticksValidator",
+            "._mirror.MirrorValidator",
+            "._minor.MinorValidator",
+            "._minexponent.MinexponentValidator",
+            "._minallowed.MinallowedValidator",
+            "._maxallowed.MaxallowedValidator",
+            "._matches.MatchesValidator",
+            "._linewidth.LinewidthValidator",
+            "._linecolor.LinecolorValidator",
+            "._layer.LayerValidator",
+            "._labelalias.LabelaliasValidator",
+            "._insiderange.InsiderangeValidator",
+            "._hoverformat.HoverformatValidator",
+            "._gridwidth.GridwidthValidator",
+            "._griddash.GriddashValidator",
+            "._gridcolor.GridcolorValidator",
+            "._fixedrange.FixedrangeValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._domain.DomainValidator",
+            "._dividerwidth.DividerwidthValidator",
+            "._dividercolor.DividercolorValidator",
+            "._constraintoward.ConstraintowardValidator",
+            "._constrain.ConstrainValidator",
+            "._color.ColorValidator",
+            "._categoryorder.CategoryorderValidator",
+            "._categoryarraysrc.CategoryarraysrcValidator",
+            "._categoryarray.CategoryarrayValidator",
+            "._calendar.CalendarValidator",
+            "._autotypenumbers.AutotypenumbersValidator",
+            "._autotickangles.AutotickanglesValidator",
+            "._autorangeoptions.AutorangeoptionsValidator",
+            "._autorange.AutorangeValidator",
+            "._automargin.AutomarginValidator",
+            "._anchor.AnchorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/xaxis/autorangeoptions/__init__.py b/plotly/validators/layout/xaxis/autorangeoptions/__init__.py
index 8ef0b74165b..701f84c04e0 100644
--- a/plotly/validators/layout/xaxis/autorangeoptions/__init__.py
+++ b/plotly/validators/layout/xaxis/autorangeoptions/__init__.py
@@ -1,15 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._minallowed.MinallowedValidator",
-        "._maxallowed.MaxallowedValidator",
-        "._includesrc.IncludesrcValidator",
-        "._include.IncludeValidator",
-        "._clipmin.ClipminValidator",
-        "._clipmax.ClipmaxValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._minallowed import MinallowedValidator
+    from ._maxallowed import MaxallowedValidator
+    from ._includesrc import IncludesrcValidator
+    from ._include import IncludeValidator
+    from ._clipmin import ClipminValidator
+    from ._clipmax import ClipmaxValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._minallowed.MinallowedValidator",
+            "._maxallowed.MaxallowedValidator",
+            "._includesrc.IncludesrcValidator",
+            "._include.IncludeValidator",
+            "._clipmin.ClipminValidator",
+            "._clipmax.ClipmaxValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/xaxis/minor/__init__.py b/plotly/validators/layout/xaxis/minor/__init__.py
index 50b85221656..27860a82b88 100644
--- a/plotly/validators/layout/xaxis/minor/__init__.py
+++ b/plotly/validators/layout/xaxis/minor/__init__.py
@@ -1,23 +1,41 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticks.TicksValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tick0.Tick0Validator",
-        "._showgrid.ShowgridValidator",
-        "._nticks.NticksValidator",
-        "._gridwidth.GridwidthValidator",
-        "._griddash.GriddashValidator",
-        "._gridcolor.GridcolorValidator",
-        "._dtick.DtickValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticks import TicksValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tick0 import Tick0Validator
+    from ._showgrid import ShowgridValidator
+    from ._nticks import NticksValidator
+    from ._gridwidth import GridwidthValidator
+    from ._griddash import GriddashValidator
+    from ._gridcolor import GridcolorValidator
+    from ._dtick import DtickValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticks.TicksValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tick0.Tick0Validator",
+            "._showgrid.ShowgridValidator",
+            "._nticks.NticksValidator",
+            "._gridwidth.GridwidthValidator",
+            "._griddash.GriddashValidator",
+            "._gridcolor.GridcolorValidator",
+            "._dtick.DtickValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/xaxis/rangebreak/__init__.py b/plotly/validators/layout/xaxis/rangebreak/__init__.py
index 4cd89140b8f..03883658535 100644
--- a/plotly/validators/layout/xaxis/rangebreak/__init__.py
+++ b/plotly/validators/layout/xaxis/rangebreak/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._values.ValuesValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._pattern.PatternValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dvalue.DvalueValidator",
-        "._bounds.BoundsValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._values import ValuesValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._pattern import PatternValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dvalue import DvalueValidator
+    from ._bounds import BoundsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._values.ValuesValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._pattern.PatternValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dvalue.DvalueValidator",
+            "._bounds.BoundsValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/xaxis/rangeselector/__init__.py b/plotly/validators/layout/xaxis/rangeselector/__init__.py
index 42354defa58..4e2ef7c7f34 100644
--- a/plotly/validators/layout/xaxis/rangeselector/__init__.py
+++ b/plotly/validators/layout/xaxis/rangeselector/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._font.FontValidator",
-        "._buttondefaults.ButtondefaultsValidator",
-        "._buttons.ButtonsValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-        "._activecolor.ActivecolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._font import FontValidator
+    from ._buttondefaults import ButtondefaultsValidator
+    from ._buttons import ButtonsValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+    from ._activecolor import ActivecolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._font.FontValidator",
+            "._buttondefaults.ButtondefaultsValidator",
+            "._buttons.ButtonsValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+            "._activecolor.ActivecolorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/xaxis/rangeselector/button/__init__.py b/plotly/validators/layout/xaxis/rangeselector/button/__init__.py
index ac076088f8f..50e76b682db 100644
--- a/plotly/validators/layout/xaxis/rangeselector/button/__init__.py
+++ b/plotly/validators/layout/xaxis/rangeselector/button/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._stepmode.StepmodeValidator",
-        "._step.StepValidator",
-        "._name.NameValidator",
-        "._label.LabelValidator",
-        "._count.CountValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._stepmode import StepmodeValidator
+    from ._step import StepValidator
+    from ._name import NameValidator
+    from ._label import LabelValidator
+    from ._count import CountValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._stepmode.StepmodeValidator",
+            "._step.StepValidator",
+            "._name.NameValidator",
+            "._label.LabelValidator",
+            "._count.CountValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/xaxis/rangeselector/font/__init__.py b/plotly/validators/layout/xaxis/rangeselector/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/xaxis/rangeselector/font/__init__.py
+++ b/plotly/validators/layout/xaxis/rangeselector/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/xaxis/rangeslider/__init__.py b/plotly/validators/layout/xaxis/rangeslider/__init__.py
index 56f0806302b..b772996f42c 100644
--- a/plotly/validators/layout/xaxis/rangeslider/__init__.py
+++ b/plotly/validators/layout/xaxis/rangeslider/__init__.py
@@ -1,17 +1,29 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yaxis.YaxisValidator",
-        "._visible.VisibleValidator",
-        "._thickness.ThicknessValidator",
-        "._range.RangeValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-        "._autorange.AutorangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yaxis import YaxisValidator
+    from ._visible import VisibleValidator
+    from ._thickness import ThicknessValidator
+    from ._range import RangeValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+    from ._autorange import AutorangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yaxis.YaxisValidator",
+            "._visible.VisibleValidator",
+            "._thickness.ThicknessValidator",
+            "._range.RangeValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+            "._autorange.AutorangeValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/xaxis/rangeslider/yaxis/__init__.py b/plotly/validators/layout/xaxis/rangeslider/yaxis/__init__.py
index d0f62faf82e..4f27a744de8 100644
--- a/plotly/validators/layout/xaxis/rangeslider/yaxis/__init__.py
+++ b/plotly/validators/layout/xaxis/rangeslider/yaxis/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._rangemode.RangemodeValidator", "._range.RangeValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._rangemode import RangemodeValidator
+    from ._range import RangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._rangemode.RangemodeValidator", "._range.RangeValidator"]
+    )
diff --git a/plotly/validators/layout/xaxis/tickfont/__init__.py b/plotly/validators/layout/xaxis/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/xaxis/tickfont/__init__.py
+++ b/plotly/validators/layout/xaxis/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/xaxis/tickformatstop/__init__.py b/plotly/validators/layout/xaxis/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/layout/xaxis/tickformatstop/__init__.py
+++ b/plotly/validators/layout/xaxis/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/xaxis/title/__init__.py b/plotly/validators/layout/xaxis/title/__init__.py
index a0bd5d5de8d..e8ad96b4dc9 100644
--- a/plotly/validators/layout/xaxis/title/__init__.py
+++ b/plotly/validators/layout/xaxis/title/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._standoff.StandoffValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._standoff import StandoffValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._text.TextValidator",
+            "._standoff.StandoffValidator",
+            "._font.FontValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/xaxis/title/font/__init__.py b/plotly/validators/layout/xaxis/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/xaxis/title/font/__init__.py
+++ b/plotly/validators/layout/xaxis/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/yaxis/__init__.py b/plotly/validators/layout/yaxis/__init__.py
index 6dfe4972b24..b081aee460c 100644
--- a/plotly/validators/layout/yaxis/__init__.py
+++ b/plotly/validators/layout/yaxis/__init__.py
@@ -1,102 +1,199 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zerolinewidth.ZerolinewidthValidator",
-        "._zerolinecolor.ZerolinecolorValidator",
-        "._zeroline.ZerolineValidator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._type.TypeValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._tickson.TicksonValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelstandoff.TicklabelstandoffValidator",
-        "._ticklabelshift.TicklabelshiftValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._ticklabelmode.TicklabelmodeValidator",
-        "._ticklabelindexsrc.TicklabelindexsrcValidator",
-        "._ticklabelindex.TicklabelindexValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._spikethickness.SpikethicknessValidator",
-        "._spikesnap.SpikesnapValidator",
-        "._spikemode.SpikemodeValidator",
-        "._spikedash.SpikedashValidator",
-        "._spikecolor.SpikecolorValidator",
-        "._side.SideValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showspikes.ShowspikesValidator",
-        "._showline.ShowlineValidator",
-        "._showgrid.ShowgridValidator",
-        "._showexponent.ShowexponentValidator",
-        "._showdividers.ShowdividersValidator",
-        "._shift.ShiftValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._scaleratio.ScaleratioValidator",
-        "._scaleanchor.ScaleanchorValidator",
-        "._rangemode.RangemodeValidator",
-        "._rangebreakdefaults.RangebreakdefaultsValidator",
-        "._rangebreaks.RangebreaksValidator",
-        "._range.RangeValidator",
-        "._position.PositionValidator",
-        "._overlaying.OverlayingValidator",
-        "._nticks.NticksValidator",
-        "._mirror.MirrorValidator",
-        "._minor.MinorValidator",
-        "._minexponent.MinexponentValidator",
-        "._minallowed.MinallowedValidator",
-        "._maxallowed.MaxallowedValidator",
-        "._matches.MatchesValidator",
-        "._linewidth.LinewidthValidator",
-        "._linecolor.LinecolorValidator",
-        "._layer.LayerValidator",
-        "._labelalias.LabelaliasValidator",
-        "._insiderange.InsiderangeValidator",
-        "._hoverformat.HoverformatValidator",
-        "._gridwidth.GridwidthValidator",
-        "._griddash.GriddashValidator",
-        "._gridcolor.GridcolorValidator",
-        "._fixedrange.FixedrangeValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._domain.DomainValidator",
-        "._dividerwidth.DividerwidthValidator",
-        "._dividercolor.DividercolorValidator",
-        "._constraintoward.ConstraintowardValidator",
-        "._constrain.ConstrainValidator",
-        "._color.ColorValidator",
-        "._categoryorder.CategoryorderValidator",
-        "._categoryarraysrc.CategoryarraysrcValidator",
-        "._categoryarray.CategoryarrayValidator",
-        "._calendar.CalendarValidator",
-        "._autotypenumbers.AutotypenumbersValidator",
-        "._autotickangles.AutotickanglesValidator",
-        "._autoshift.AutoshiftValidator",
-        "._autorangeoptions.AutorangeoptionsValidator",
-        "._autorange.AutorangeValidator",
-        "._automargin.AutomarginValidator",
-        "._anchor.AnchorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zerolinewidth import ZerolinewidthValidator
+    from ._zerolinecolor import ZerolinecolorValidator
+    from ._zeroline import ZerolineValidator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._type import TypeValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._tickson import TicksonValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelstandoff import TicklabelstandoffValidator
+    from ._ticklabelshift import TicklabelshiftValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._ticklabelmode import TicklabelmodeValidator
+    from ._ticklabelindexsrc import TicklabelindexsrcValidator
+    from ._ticklabelindex import TicklabelindexValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._spikethickness import SpikethicknessValidator
+    from ._spikesnap import SpikesnapValidator
+    from ._spikemode import SpikemodeValidator
+    from ._spikedash import SpikedashValidator
+    from ._spikecolor import SpikecolorValidator
+    from ._side import SideValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showspikes import ShowspikesValidator
+    from ._showline import ShowlineValidator
+    from ._showgrid import ShowgridValidator
+    from ._showexponent import ShowexponentValidator
+    from ._showdividers import ShowdividersValidator
+    from ._shift import ShiftValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._scaleratio import ScaleratioValidator
+    from ._scaleanchor import ScaleanchorValidator
+    from ._rangemode import RangemodeValidator
+    from ._rangebreakdefaults import RangebreakdefaultsValidator
+    from ._rangebreaks import RangebreaksValidator
+    from ._range import RangeValidator
+    from ._position import PositionValidator
+    from ._overlaying import OverlayingValidator
+    from ._nticks import NticksValidator
+    from ._mirror import MirrorValidator
+    from ._minor import MinorValidator
+    from ._minexponent import MinexponentValidator
+    from ._minallowed import MinallowedValidator
+    from ._maxallowed import MaxallowedValidator
+    from ._matches import MatchesValidator
+    from ._linewidth import LinewidthValidator
+    from ._linecolor import LinecolorValidator
+    from ._layer import LayerValidator
+    from ._labelalias import LabelaliasValidator
+    from ._insiderange import InsiderangeValidator
+    from ._hoverformat import HoverformatValidator
+    from ._gridwidth import GridwidthValidator
+    from ._griddash import GriddashValidator
+    from ._gridcolor import GridcolorValidator
+    from ._fixedrange import FixedrangeValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._domain import DomainValidator
+    from ._dividerwidth import DividerwidthValidator
+    from ._dividercolor import DividercolorValidator
+    from ._constraintoward import ConstraintowardValidator
+    from ._constrain import ConstrainValidator
+    from ._color import ColorValidator
+    from ._categoryorder import CategoryorderValidator
+    from ._categoryarraysrc import CategoryarraysrcValidator
+    from ._categoryarray import CategoryarrayValidator
+    from ._calendar import CalendarValidator
+    from ._autotypenumbers import AutotypenumbersValidator
+    from ._autotickangles import AutotickanglesValidator
+    from ._autoshift import AutoshiftValidator
+    from ._autorangeoptions import AutorangeoptionsValidator
+    from ._autorange import AutorangeValidator
+    from ._automargin import AutomarginValidator
+    from ._anchor import AnchorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zerolinewidth.ZerolinewidthValidator",
+            "._zerolinecolor.ZerolinecolorValidator",
+            "._zeroline.ZerolineValidator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._type.TypeValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._tickson.TicksonValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelstandoff.TicklabelstandoffValidator",
+            "._ticklabelshift.TicklabelshiftValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._ticklabelmode.TicklabelmodeValidator",
+            "._ticklabelindexsrc.TicklabelindexsrcValidator",
+            "._ticklabelindex.TicklabelindexValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._spikethickness.SpikethicknessValidator",
+            "._spikesnap.SpikesnapValidator",
+            "._spikemode.SpikemodeValidator",
+            "._spikedash.SpikedashValidator",
+            "._spikecolor.SpikecolorValidator",
+            "._side.SideValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showspikes.ShowspikesValidator",
+            "._showline.ShowlineValidator",
+            "._showgrid.ShowgridValidator",
+            "._showexponent.ShowexponentValidator",
+            "._showdividers.ShowdividersValidator",
+            "._shift.ShiftValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._scaleratio.ScaleratioValidator",
+            "._scaleanchor.ScaleanchorValidator",
+            "._rangemode.RangemodeValidator",
+            "._rangebreakdefaults.RangebreakdefaultsValidator",
+            "._rangebreaks.RangebreaksValidator",
+            "._range.RangeValidator",
+            "._position.PositionValidator",
+            "._overlaying.OverlayingValidator",
+            "._nticks.NticksValidator",
+            "._mirror.MirrorValidator",
+            "._minor.MinorValidator",
+            "._minexponent.MinexponentValidator",
+            "._minallowed.MinallowedValidator",
+            "._maxallowed.MaxallowedValidator",
+            "._matches.MatchesValidator",
+            "._linewidth.LinewidthValidator",
+            "._linecolor.LinecolorValidator",
+            "._layer.LayerValidator",
+            "._labelalias.LabelaliasValidator",
+            "._insiderange.InsiderangeValidator",
+            "._hoverformat.HoverformatValidator",
+            "._gridwidth.GridwidthValidator",
+            "._griddash.GriddashValidator",
+            "._gridcolor.GridcolorValidator",
+            "._fixedrange.FixedrangeValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._domain.DomainValidator",
+            "._dividerwidth.DividerwidthValidator",
+            "._dividercolor.DividercolorValidator",
+            "._constraintoward.ConstraintowardValidator",
+            "._constrain.ConstrainValidator",
+            "._color.ColorValidator",
+            "._categoryorder.CategoryorderValidator",
+            "._categoryarraysrc.CategoryarraysrcValidator",
+            "._categoryarray.CategoryarrayValidator",
+            "._calendar.CalendarValidator",
+            "._autotypenumbers.AutotypenumbersValidator",
+            "._autotickangles.AutotickanglesValidator",
+            "._autoshift.AutoshiftValidator",
+            "._autorangeoptions.AutorangeoptionsValidator",
+            "._autorange.AutorangeValidator",
+            "._automargin.AutomarginValidator",
+            "._anchor.AnchorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/yaxis/autorangeoptions/__init__.py b/plotly/validators/layout/yaxis/autorangeoptions/__init__.py
index 8ef0b74165b..701f84c04e0 100644
--- a/plotly/validators/layout/yaxis/autorangeoptions/__init__.py
+++ b/plotly/validators/layout/yaxis/autorangeoptions/__init__.py
@@ -1,15 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._minallowed.MinallowedValidator",
-        "._maxallowed.MaxallowedValidator",
-        "._includesrc.IncludesrcValidator",
-        "._include.IncludeValidator",
-        "._clipmin.ClipminValidator",
-        "._clipmax.ClipmaxValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._minallowed import MinallowedValidator
+    from ._maxallowed import MaxallowedValidator
+    from ._includesrc import IncludesrcValidator
+    from ._include import IncludeValidator
+    from ._clipmin import ClipminValidator
+    from ._clipmax import ClipmaxValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._minallowed.MinallowedValidator",
+            "._maxallowed.MaxallowedValidator",
+            "._includesrc.IncludesrcValidator",
+            "._include.IncludeValidator",
+            "._clipmin.ClipminValidator",
+            "._clipmax.ClipmaxValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/yaxis/minor/__init__.py b/plotly/validators/layout/yaxis/minor/__init__.py
index 50b85221656..27860a82b88 100644
--- a/plotly/validators/layout/yaxis/minor/__init__.py
+++ b/plotly/validators/layout/yaxis/minor/__init__.py
@@ -1,23 +1,41 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticks.TicksValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tick0.Tick0Validator",
-        "._showgrid.ShowgridValidator",
-        "._nticks.NticksValidator",
-        "._gridwidth.GridwidthValidator",
-        "._griddash.GriddashValidator",
-        "._gridcolor.GridcolorValidator",
-        "._dtick.DtickValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticks import TicksValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tick0 import Tick0Validator
+    from ._showgrid import ShowgridValidator
+    from ._nticks import NticksValidator
+    from ._gridwidth import GridwidthValidator
+    from ._griddash import GriddashValidator
+    from ._gridcolor import GridcolorValidator
+    from ._dtick import DtickValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticks.TicksValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tick0.Tick0Validator",
+            "._showgrid.ShowgridValidator",
+            "._nticks.NticksValidator",
+            "._gridwidth.GridwidthValidator",
+            "._griddash.GriddashValidator",
+            "._gridcolor.GridcolorValidator",
+            "._dtick.DtickValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/yaxis/rangebreak/__init__.py b/plotly/validators/layout/yaxis/rangebreak/__init__.py
index 4cd89140b8f..03883658535 100644
--- a/plotly/validators/layout/yaxis/rangebreak/__init__.py
+++ b/plotly/validators/layout/yaxis/rangebreak/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._values.ValuesValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._pattern.PatternValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dvalue.DvalueValidator",
-        "._bounds.BoundsValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._values import ValuesValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._pattern import PatternValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dvalue import DvalueValidator
+    from ._bounds import BoundsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._values.ValuesValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._pattern.PatternValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dvalue.DvalueValidator",
+            "._bounds.BoundsValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/yaxis/tickfont/__init__.py b/plotly/validators/layout/yaxis/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/yaxis/tickfont/__init__.py
+++ b/plotly/validators/layout/yaxis/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/yaxis/tickformatstop/__init__.py b/plotly/validators/layout/yaxis/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/layout/yaxis/tickformatstop/__init__.py
+++ b/plotly/validators/layout/yaxis/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/yaxis/title/__init__.py b/plotly/validators/layout/yaxis/title/__init__.py
index a0bd5d5de8d..e8ad96b4dc9 100644
--- a/plotly/validators/layout/yaxis/title/__init__.py
+++ b/plotly/validators/layout/yaxis/title/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._standoff.StandoffValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._standoff import StandoffValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._text.TextValidator",
+            "._standoff.StandoffValidator",
+            "._font.FontValidator",
+        ],
+    )
diff --git a/plotly/validators/layout/yaxis/title/font/__init__.py b/plotly/validators/layout/yaxis/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/layout/yaxis/title/font/__init__.py
+++ b/plotly/validators/layout/yaxis/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/mesh3d/__init__.py b/plotly/validators/mesh3d/__init__.py
index 959d3c13f78..fc0281e8973 100644
--- a/plotly/validators/mesh3d/__init__.py
+++ b/plotly/validators/mesh3d/__init__.py
@@ -1,79 +1,153 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zhoverformat.ZhoverformatValidator",
-        "._zcalendar.ZcalendarValidator",
-        "._z.ZValidator",
-        "._ysrc.YsrcValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._ycalendar.YcalendarValidator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xcalendar.XcalendarValidator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._vertexcolorsrc.VertexcolorsrcValidator",
-        "._vertexcolor.VertexcolorValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._showscale.ShowscaleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._scene.SceneValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._lightposition.LightpositionValidator",
-        "._lighting.LightingValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._ksrc.KsrcValidator",
-        "._k.KValidator",
-        "._jsrc.JsrcValidator",
-        "._j.JValidator",
-        "._isrc.IsrcValidator",
-        "._intensitysrc.IntensitysrcValidator",
-        "._intensitymode.IntensitymodeValidator",
-        "._intensity.IntensityValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._i.IValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._flatshading.FlatshadingValidator",
-        "._facecolorsrc.FacecolorsrcValidator",
-        "._facecolor.FacecolorValidator",
-        "._delaunayaxis.DelaunayaxisValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._contour.ContourValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-        "._alphahull.AlphahullValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zhoverformat import ZhoverformatValidator
+    from ._zcalendar import ZcalendarValidator
+    from ._z import ZValidator
+    from ._ysrc import YsrcValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._ycalendar import YcalendarValidator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xcalendar import XcalendarValidator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._vertexcolorsrc import VertexcolorsrcValidator
+    from ._vertexcolor import VertexcolorValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._showscale import ShowscaleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._scene import SceneValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._lightposition import LightpositionValidator
+    from ._lighting import LightingValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._ksrc import KsrcValidator
+    from ._k import KValidator
+    from ._jsrc import JsrcValidator
+    from ._j import JValidator
+    from ._isrc import IsrcValidator
+    from ._intensitysrc import IntensitysrcValidator
+    from ._intensitymode import IntensitymodeValidator
+    from ._intensity import IntensityValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._i import IValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._flatshading import FlatshadingValidator
+    from ._facecolorsrc import FacecolorsrcValidator
+    from ._facecolor import FacecolorValidator
+    from ._delaunayaxis import DelaunayaxisValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._contour import ContourValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+    from ._alphahull import AlphahullValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zhoverformat.ZhoverformatValidator",
+            "._zcalendar.ZcalendarValidator",
+            "._z.ZValidator",
+            "._ysrc.YsrcValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._ycalendar.YcalendarValidator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xcalendar.XcalendarValidator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._vertexcolorsrc.VertexcolorsrcValidator",
+            "._vertexcolor.VertexcolorValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._showscale.ShowscaleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._scene.SceneValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._lightposition.LightpositionValidator",
+            "._lighting.LightingValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._ksrc.KsrcValidator",
+            "._k.KValidator",
+            "._jsrc.JsrcValidator",
+            "._j.JValidator",
+            "._isrc.IsrcValidator",
+            "._intensitysrc.IntensitysrcValidator",
+            "._intensitymode.IntensitymodeValidator",
+            "._intensity.IntensityValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._i.IValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._flatshading.FlatshadingValidator",
+            "._facecolorsrc.FacecolorsrcValidator",
+            "._facecolor.FacecolorValidator",
+            "._delaunayaxis.DelaunayaxisValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._contour.ContourValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+            "._alphahull.AlphahullValidator",
+        ],
+    )
diff --git a/plotly/validators/mesh3d/_jsrc.py b/plotly/validators/mesh3d/_jsrc.py
index 3f3085de8d8..1f865bcb59d 100644
--- a/plotly/validators/mesh3d/_jsrc.py
+++ b/plotly/validators/mesh3d/_jsrc.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -5,10 +9,9 @@
 
 
 class JsrcValidator(_bv.SrcValidator):
-    def __init__(self, plotly_name="jsrc", parent_name="mesh3d", **kwargs):
-        super().__init__(
-            plotly_name,
-            parent_name,
-            edit_type=kwargs.pop("edit_type", "none"),
-            **kwargs,
-        )
+    def __init__(self, plotly_name='jsrc',
+                       parent_name='mesh3d',
+                       **kwargs):
+        super().__init__(plotly_name, parent_name,
+                 edit_type=kwargs.pop('edit_type', 'none'),
+        **kwargs)
\ No newline at end of file
diff --git a/plotly/validators/mesh3d/colorbar/__init__.py b/plotly/validators/mesh3d/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/mesh3d/colorbar/__init__.py
+++ b/plotly/validators/mesh3d/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/mesh3d/colorbar/tickfont/__init__.py b/plotly/validators/mesh3d/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/mesh3d/colorbar/tickfont/__init__.py
+++ b/plotly/validators/mesh3d/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/mesh3d/colorbar/tickformatstop/__init__.py b/plotly/validators/mesh3d/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/mesh3d/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/mesh3d/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/mesh3d/colorbar/title/__init__.py b/plotly/validators/mesh3d/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/mesh3d/colorbar/title/__init__.py
+++ b/plotly/validators/mesh3d/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/mesh3d/colorbar/title/font/__init__.py b/plotly/validators/mesh3d/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/mesh3d/colorbar/title/font/__init__.py
+++ b/plotly/validators/mesh3d/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/mesh3d/contour/__init__.py b/plotly/validators/mesh3d/contour/__init__.py
index 1a1cc3031d5..8d51b1d4c02 100644
--- a/plotly/validators/mesh3d/contour/__init__.py
+++ b/plotly/validators/mesh3d/contour/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._width.WidthValidator", "._show.ShowValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._show import ShowValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._width.WidthValidator", "._show.ShowValidator", "._color.ColorValidator"],
+    )
diff --git a/plotly/validators/mesh3d/hoverlabel/__init__.py b/plotly/validators/mesh3d/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/mesh3d/hoverlabel/__init__.py
+++ b/plotly/validators/mesh3d/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/mesh3d/hoverlabel/font/__init__.py b/plotly/validators/mesh3d/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/mesh3d/hoverlabel/font/__init__.py
+++ b/plotly/validators/mesh3d/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/mesh3d/legendgrouptitle/__init__.py b/plotly/validators/mesh3d/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/mesh3d/legendgrouptitle/__init__.py
+++ b/plotly/validators/mesh3d/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/mesh3d/legendgrouptitle/font/__init__.py b/plotly/validators/mesh3d/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/mesh3d/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/mesh3d/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/mesh3d/lighting/__init__.py b/plotly/validators/mesh3d/lighting/__init__.py
index 1f11e1b86fc..028351f35d6 100644
--- a/plotly/validators/mesh3d/lighting/__init__.py
+++ b/plotly/validators/mesh3d/lighting/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._vertexnormalsepsilon.VertexnormalsepsilonValidator",
-        "._specular.SpecularValidator",
-        "._roughness.RoughnessValidator",
-        "._fresnel.FresnelValidator",
-        "._facenormalsepsilon.FacenormalsepsilonValidator",
-        "._diffuse.DiffuseValidator",
-        "._ambient.AmbientValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._vertexnormalsepsilon import VertexnormalsepsilonValidator
+    from ._specular import SpecularValidator
+    from ._roughness import RoughnessValidator
+    from ._fresnel import FresnelValidator
+    from ._facenormalsepsilon import FacenormalsepsilonValidator
+    from ._diffuse import DiffuseValidator
+    from ._ambient import AmbientValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._vertexnormalsepsilon.VertexnormalsepsilonValidator",
+            "._specular.SpecularValidator",
+            "._roughness.RoughnessValidator",
+            "._fresnel.FresnelValidator",
+            "._facenormalsepsilon.FacenormalsepsilonValidator",
+            "._diffuse.DiffuseValidator",
+            "._ambient.AmbientValidator",
+        ],
+    )
diff --git a/plotly/validators/mesh3d/lightposition/__init__.py b/plotly/validators/mesh3d/lightposition/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/mesh3d/lightposition/__init__.py
+++ b/plotly/validators/mesh3d/lightposition/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/mesh3d/stream/__init__.py b/plotly/validators/mesh3d/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/mesh3d/stream/__init__.py
+++ b/plotly/validators/mesh3d/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/ohlc/__init__.py b/plotly/validators/ohlc/__init__.py
index 5204a700899..1a42406dad5 100644
--- a/plotly/validators/ohlc/__init__.py
+++ b/plotly/validators/ohlc/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zorder.ZorderValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._yaxis.YaxisValidator",
-        "._xsrc.XsrcValidator",
-        "._xperiodalignment.XperiodalignmentValidator",
-        "._xperiod0.Xperiod0Validator",
-        "._xperiod.XperiodValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xcalendar.XcalendarValidator",
-        "._xaxis.XaxisValidator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._tickwidth.TickwidthValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._opensrc.OpensrcValidator",
-        "._open.OpenValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._lowsrc.LowsrcValidator",
-        "._low.LowValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._increasing.IncreasingValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._highsrc.HighsrcValidator",
-        "._high.HighValidator",
-        "._decreasing.DecreasingValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._closesrc.ClosesrcValidator",
-        "._close.CloseValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zorder import ZorderValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._yaxis import YaxisValidator
+    from ._xsrc import XsrcValidator
+    from ._xperiodalignment import XperiodalignmentValidator
+    from ._xperiod0 import Xperiod0Validator
+    from ._xperiod import XperiodValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xcalendar import XcalendarValidator
+    from ._xaxis import XaxisValidator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._tickwidth import TickwidthValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._opensrc import OpensrcValidator
+    from ._open import OpenValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._lowsrc import LowsrcValidator
+    from ._low import LowValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._increasing import IncreasingValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._highsrc import HighsrcValidator
+    from ._high import HighValidator
+    from ._decreasing import DecreasingValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._closesrc import ClosesrcValidator
+    from ._close import CloseValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zorder.ZorderValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._yaxis.YaxisValidator",
+            "._xsrc.XsrcValidator",
+            "._xperiodalignment.XperiodalignmentValidator",
+            "._xperiod0.Xperiod0Validator",
+            "._xperiod.XperiodValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xcalendar.XcalendarValidator",
+            "._xaxis.XaxisValidator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._tickwidth.TickwidthValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._opensrc.OpensrcValidator",
+            "._open.OpenValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._lowsrc.LowsrcValidator",
+            "._low.LowValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._increasing.IncreasingValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._highsrc.HighsrcValidator",
+            "._high.HighValidator",
+            "._decreasing.DecreasingValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._closesrc.ClosesrcValidator",
+            "._close.CloseValidator",
+        ],
+    )
diff --git a/plotly/validators/ohlc/decreasing/__init__.py b/plotly/validators/ohlc/decreasing/__init__.py
index f7acb5b172b..90c7f7b1276 100644
--- a/plotly/validators/ohlc/decreasing/__init__.py
+++ b/plotly/validators/ohlc/decreasing/__init__.py
@@ -1,4 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.LineValidator"])
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import LineValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._line.LineValidator"]
+    )
diff --git a/plotly/validators/ohlc/decreasing/line/__init__.py b/plotly/validators/ohlc/decreasing/line/__init__.py
index c5140ef758d..cff41466517 100644
--- a/plotly/validators/ohlc/decreasing/line/__init__.py
+++ b/plotly/validators/ohlc/decreasing/line/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
+    )
diff --git a/plotly/validators/ohlc/hoverlabel/__init__.py b/plotly/validators/ohlc/hoverlabel/__init__.py
index f4773f7cdd5..5504c36e76f 100644
--- a/plotly/validators/ohlc/hoverlabel/__init__.py
+++ b/plotly/validators/ohlc/hoverlabel/__init__.py
@@ -1,19 +1,33 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._split.SplitValidator",
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._split import SplitValidator
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._split.SplitValidator",
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/ohlc/hoverlabel/font/__init__.py b/plotly/validators/ohlc/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/ohlc/hoverlabel/font/__init__.py
+++ b/plotly/validators/ohlc/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/ohlc/increasing/__init__.py b/plotly/validators/ohlc/increasing/__init__.py
index f7acb5b172b..90c7f7b1276 100644
--- a/plotly/validators/ohlc/increasing/__init__.py
+++ b/plotly/validators/ohlc/increasing/__init__.py
@@ -1,4 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.LineValidator"])
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import LineValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._line.LineValidator"]
+    )
diff --git a/plotly/validators/ohlc/increasing/line/__init__.py b/plotly/validators/ohlc/increasing/line/__init__.py
index c5140ef758d..cff41466517 100644
--- a/plotly/validators/ohlc/increasing/line/__init__.py
+++ b/plotly/validators/ohlc/increasing/line/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
+    )
diff --git a/plotly/validators/ohlc/legendgrouptitle/__init__.py b/plotly/validators/ohlc/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/ohlc/legendgrouptitle/__init__.py
+++ b/plotly/validators/ohlc/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/ohlc/legendgrouptitle/font/__init__.py b/plotly/validators/ohlc/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/ohlc/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/ohlc/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/ohlc/line/__init__.py b/plotly/validators/ohlc/line/__init__.py
index a2136ec59f5..e02935101ff 100644
--- a/plotly/validators/ohlc/line/__init__.py
+++ b/plotly/validators/ohlc/line/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._width.WidthValidator", "._dash.DashValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._dash import DashValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._width.WidthValidator", "._dash.DashValidator"]
+    )
diff --git a/plotly/validators/ohlc/stream/__init__.py b/plotly/validators/ohlc/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/ohlc/stream/__init__.py
+++ b/plotly/validators/ohlc/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/parcats/__init__.py b/plotly/validators/parcats/__init__.py
index 59a4163d027..6e95a64b31f 100644
--- a/plotly/validators/parcats/__init__.py
+++ b/plotly/validators/parcats/__init__.py
@@ -1,32 +1,59 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._tickfont.TickfontValidator",
-        "._stream.StreamValidator",
-        "._sortpaths.SortpathsValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._labelfont.LabelfontValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoveron.HoveronValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._domain.DomainValidator",
-        "._dimensiondefaults.DimensiondefaultsValidator",
-        "._dimensions.DimensionsValidator",
-        "._countssrc.CountssrcValidator",
-        "._counts.CountsValidator",
-        "._bundlecolors.BundlecolorsValidator",
-        "._arrangement.ArrangementValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._tickfont import TickfontValidator
+    from ._stream import StreamValidator
+    from ._sortpaths import SortpathsValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._labelfont import LabelfontValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoveron import HoveronValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._domain import DomainValidator
+    from ._dimensiondefaults import DimensiondefaultsValidator
+    from ._dimensions import DimensionsValidator
+    from ._countssrc import CountssrcValidator
+    from ._counts import CountsValidator
+    from ._bundlecolors import BundlecolorsValidator
+    from ._arrangement import ArrangementValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._tickfont.TickfontValidator",
+            "._stream.StreamValidator",
+            "._sortpaths.SortpathsValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._labelfont.LabelfontValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoveron.HoveronValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._domain.DomainValidator",
+            "._dimensiondefaults.DimensiondefaultsValidator",
+            "._dimensions.DimensionsValidator",
+            "._countssrc.CountssrcValidator",
+            "._counts.CountsValidator",
+            "._bundlecolors.BundlecolorsValidator",
+            "._arrangement.ArrangementValidator",
+        ],
+    )
diff --git a/plotly/validators/parcats/dimension/__init__.py b/plotly/validators/parcats/dimension/__init__.py
index 976c1fcfe27..166d9faa329 100644
--- a/plotly/validators/parcats/dimension/__init__.py
+++ b/plotly/validators/parcats/dimension/__init__.py
@@ -1,19 +1,33 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._valuessrc.ValuessrcValidator",
-        "._values.ValuesValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._label.LabelValidator",
-        "._displayindex.DisplayindexValidator",
-        "._categoryorder.CategoryorderValidator",
-        "._categoryarraysrc.CategoryarraysrcValidator",
-        "._categoryarray.CategoryarrayValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._valuessrc import ValuessrcValidator
+    from ._values import ValuesValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._label import LabelValidator
+    from ._displayindex import DisplayindexValidator
+    from ._categoryorder import CategoryorderValidator
+    from ._categoryarraysrc import CategoryarraysrcValidator
+    from ._categoryarray import CategoryarrayValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._valuessrc.ValuessrcValidator",
+            "._values.ValuesValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._label.LabelValidator",
+            "._displayindex.DisplayindexValidator",
+            "._categoryorder.CategoryorderValidator",
+            "._categoryarraysrc.CategoryarraysrcValidator",
+            "._categoryarray.CategoryarrayValidator",
+        ],
+    )
diff --git a/plotly/validators/parcats/domain/__init__.py b/plotly/validators/parcats/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/parcats/domain/__init__.py
+++ b/plotly/validators/parcats/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/parcats/labelfont/__init__.py b/plotly/validators/parcats/labelfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/parcats/labelfont/__init__.py
+++ b/plotly/validators/parcats/labelfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/parcats/legendgrouptitle/__init__.py b/plotly/validators/parcats/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/parcats/legendgrouptitle/__init__.py
+++ b/plotly/validators/parcats/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/parcats/legendgrouptitle/font/__init__.py b/plotly/validators/parcats/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/parcats/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/parcats/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/parcats/line/__init__.py b/plotly/validators/parcats/line/__init__.py
index 4d382fb8909..a5677cc3e26 100644
--- a/plotly/validators/parcats/line/__init__.py
+++ b/plotly/validators/parcats/line/__init__.py
@@ -1,23 +1,41 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._showscale.ShowscaleValidator",
-        "._shape.ShapeValidator",
-        "._reversescale.ReversescaleValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._showscale import ShowscaleValidator
+    from ._shape import ShapeValidator
+    from ._reversescale import ReversescaleValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._showscale.ShowscaleValidator",
+            "._shape.ShapeValidator",
+            "._reversescale.ReversescaleValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/parcats/line/colorbar/__init__.py b/plotly/validators/parcats/line/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/parcats/line/colorbar/__init__.py
+++ b/plotly/validators/parcats/line/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/parcats/line/colorbar/tickfont/__init__.py b/plotly/validators/parcats/line/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/parcats/line/colorbar/tickfont/__init__.py
+++ b/plotly/validators/parcats/line/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/parcats/line/colorbar/tickformatstop/__init__.py b/plotly/validators/parcats/line/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/parcats/line/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/parcats/line/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/parcats/line/colorbar/title/__init__.py b/plotly/validators/parcats/line/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/parcats/line/colorbar/title/__init__.py
+++ b/plotly/validators/parcats/line/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/parcats/line/colorbar/title/font/__init__.py b/plotly/validators/parcats/line/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/parcats/line/colorbar/title/font/__init__.py
+++ b/plotly/validators/parcats/line/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/parcats/stream/__init__.py b/plotly/validators/parcats/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/parcats/stream/__init__.py
+++ b/plotly/validators/parcats/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/parcats/tickfont/__init__.py b/plotly/validators/parcats/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/parcats/tickfont/__init__.py
+++ b/plotly/validators/parcats/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/parcoords/__init__.py b/plotly/validators/parcoords/__init__.py
index ff07cb03703..9fb0212462b 100644
--- a/plotly/validators/parcoords/__init__.py
+++ b/plotly/validators/parcoords/__init__.py
@@ -1,34 +1,63 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._tickfont.TickfontValidator",
-        "._stream.StreamValidator",
-        "._rangefont.RangefontValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legend.LegendValidator",
-        "._labelside.LabelsideValidator",
-        "._labelfont.LabelfontValidator",
-        "._labelangle.LabelangleValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._domain.DomainValidator",
-        "._dimensiondefaults.DimensiondefaultsValidator",
-        "._dimensions.DimensionsValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._tickfont import TickfontValidator
+    from ._stream import StreamValidator
+    from ._rangefont import RangefontValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legend import LegendValidator
+    from ._labelside import LabelsideValidator
+    from ._labelfont import LabelfontValidator
+    from ._labelangle import LabelangleValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._domain import DomainValidator
+    from ._dimensiondefaults import DimensiondefaultsValidator
+    from ._dimensions import DimensionsValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._tickfont.TickfontValidator",
+            "._stream.StreamValidator",
+            "._rangefont.RangefontValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legend.LegendValidator",
+            "._labelside.LabelsideValidator",
+            "._labelfont.LabelfontValidator",
+            "._labelangle.LabelangleValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._domain.DomainValidator",
+            "._dimensiondefaults.DimensiondefaultsValidator",
+            "._dimensions.DimensionsValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+        ],
+    )
diff --git a/plotly/validators/parcoords/dimension/__init__.py b/plotly/validators/parcoords/dimension/__init__.py
index 0177ed8b247..69bde72cd61 100644
--- a/plotly/validators/parcoords/dimension/__init__.py
+++ b/plotly/validators/parcoords/dimension/__init__.py
@@ -1,23 +1,41 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._valuessrc.ValuessrcValidator",
-        "._values.ValuesValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._tickformat.TickformatValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._range.RangeValidator",
-        "._name.NameValidator",
-        "._multiselect.MultiselectValidator",
-        "._label.LabelValidator",
-        "._constraintrange.ConstraintrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._valuessrc import ValuessrcValidator
+    from ._values import ValuesValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._tickformat import TickformatValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._range import RangeValidator
+    from ._name import NameValidator
+    from ._multiselect import MultiselectValidator
+    from ._label import LabelValidator
+    from ._constraintrange import ConstraintrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._valuessrc.ValuessrcValidator",
+            "._values.ValuesValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._tickformat.TickformatValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._range.RangeValidator",
+            "._name.NameValidator",
+            "._multiselect.MultiselectValidator",
+            "._label.LabelValidator",
+            "._constraintrange.ConstraintrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/parcoords/domain/__init__.py b/plotly/validators/parcoords/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/parcoords/domain/__init__.py
+++ b/plotly/validators/parcoords/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/parcoords/labelfont/__init__.py b/plotly/validators/parcoords/labelfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/parcoords/labelfont/__init__.py
+++ b/plotly/validators/parcoords/labelfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/parcoords/legendgrouptitle/__init__.py b/plotly/validators/parcoords/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/parcoords/legendgrouptitle/__init__.py
+++ b/plotly/validators/parcoords/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/parcoords/legendgrouptitle/font/__init__.py b/plotly/validators/parcoords/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/parcoords/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/parcoords/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/parcoords/line/__init__.py b/plotly/validators/parcoords/line/__init__.py
index 4ec1631b845..acf6c173d89 100644
--- a/plotly/validators/parcoords/line/__init__.py
+++ b/plotly/validators/parcoords/line/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/parcoords/line/colorbar/__init__.py b/plotly/validators/parcoords/line/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/parcoords/line/colorbar/__init__.py
+++ b/plotly/validators/parcoords/line/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/parcoords/line/colorbar/tickfont/__init__.py b/plotly/validators/parcoords/line/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/parcoords/line/colorbar/tickfont/__init__.py
+++ b/plotly/validators/parcoords/line/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/parcoords/line/colorbar/tickformatstop/__init__.py b/plotly/validators/parcoords/line/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/parcoords/line/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/parcoords/line/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/parcoords/line/colorbar/title/__init__.py b/plotly/validators/parcoords/line/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/parcoords/line/colorbar/title/__init__.py
+++ b/plotly/validators/parcoords/line/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/parcoords/line/colorbar/title/font/__init__.py b/plotly/validators/parcoords/line/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/parcoords/line/colorbar/title/font/__init__.py
+++ b/plotly/validators/parcoords/line/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/parcoords/rangefont/__init__.py b/plotly/validators/parcoords/rangefont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/parcoords/rangefont/__init__.py
+++ b/plotly/validators/parcoords/rangefont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/parcoords/stream/__init__.py b/plotly/validators/parcoords/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/parcoords/stream/__init__.py
+++ b/plotly/validators/parcoords/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/parcoords/tickfont/__init__.py b/plotly/validators/parcoords/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/parcoords/tickfont/__init__.py
+++ b/plotly/validators/parcoords/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/parcoords/unselected/__init__.py b/plotly/validators/parcoords/unselected/__init__.py
index f7acb5b172b..90c7f7b1276 100644
--- a/plotly/validators/parcoords/unselected/__init__.py
+++ b/plotly/validators/parcoords/unselected/__init__.py
@@ -1,4 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.LineValidator"])
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import LineValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._line.LineValidator"]
+    )
diff --git a/plotly/validators/parcoords/unselected/line/__init__.py b/plotly/validators/parcoords/unselected/line/__init__.py
index 653e5729338..d8f31347bfd 100644
--- a/plotly/validators/parcoords/unselected/line/__init__.py
+++ b/plotly/validators/parcoords/unselected/line/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/pie/__init__.py b/plotly/validators/pie/__init__.py
index 90f4ec75138..7ee355c1cb4 100644
--- a/plotly/validators/pie/__init__.py
+++ b/plotly/validators/pie/__init__.py
@@ -1,62 +1,119 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._valuessrc.ValuessrcValidator",
-        "._values.ValuesValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._title.TitleValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textpositionsrc.TextpositionsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textinfo.TextinfoValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._sort.SortValidator",
-        "._showlegend.ShowlegendValidator",
-        "._scalegroup.ScalegroupValidator",
-        "._rotation.RotationValidator",
-        "._pullsrc.PullsrcValidator",
-        "._pull.PullValidator",
-        "._outsidetextfont.OutsidetextfontValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._labelssrc.LabelssrcValidator",
-        "._labels.LabelsValidator",
-        "._label0.Label0Validator",
-        "._insidetextorientation.InsidetextorientationValidator",
-        "._insidetextfont.InsidetextfontValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._hole.HoleValidator",
-        "._domain.DomainValidator",
-        "._dlabel.DlabelValidator",
-        "._direction.DirectionValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._automargin.AutomarginValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._valuessrc import ValuessrcValidator
+    from ._values import ValuesValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._title import TitleValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textpositionsrc import TextpositionsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textinfo import TextinfoValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._sort import SortValidator
+    from ._showlegend import ShowlegendValidator
+    from ._scalegroup import ScalegroupValidator
+    from ._rotation import RotationValidator
+    from ._pullsrc import PullsrcValidator
+    from ._pull import PullValidator
+    from ._outsidetextfont import OutsidetextfontValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._labelssrc import LabelssrcValidator
+    from ._labels import LabelsValidator
+    from ._label0 import Label0Validator
+    from ._insidetextorientation import InsidetextorientationValidator
+    from ._insidetextfont import InsidetextfontValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._hole import HoleValidator
+    from ._domain import DomainValidator
+    from ._dlabel import DlabelValidator
+    from ._direction import DirectionValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._automargin import AutomarginValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._valuessrc.ValuessrcValidator",
+            "._values.ValuesValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._title.TitleValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textpositionsrc.TextpositionsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textinfo.TextinfoValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._sort.SortValidator",
+            "._showlegend.ShowlegendValidator",
+            "._scalegroup.ScalegroupValidator",
+            "._rotation.RotationValidator",
+            "._pullsrc.PullsrcValidator",
+            "._pull.PullValidator",
+            "._outsidetextfont.OutsidetextfontValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._labelssrc.LabelssrcValidator",
+            "._labels.LabelsValidator",
+            "._label0.Label0Validator",
+            "._insidetextorientation.InsidetextorientationValidator",
+            "._insidetextfont.InsidetextfontValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._hole.HoleValidator",
+            "._domain.DomainValidator",
+            "._dlabel.DlabelValidator",
+            "._direction.DirectionValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._automargin.AutomarginValidator",
+        ],
+    )
diff --git a/plotly/validators/pie/domain/__init__.py b/plotly/validators/pie/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/pie/domain/__init__.py
+++ b/plotly/validators/pie/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/pie/hoverlabel/__init__.py b/plotly/validators/pie/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/pie/hoverlabel/__init__.py
+++ b/plotly/validators/pie/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/pie/hoverlabel/font/__init__.py b/plotly/validators/pie/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/pie/hoverlabel/font/__init__.py
+++ b/plotly/validators/pie/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/pie/insidetextfont/__init__.py b/plotly/validators/pie/insidetextfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/pie/insidetextfont/__init__.py
+++ b/plotly/validators/pie/insidetextfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/pie/legendgrouptitle/__init__.py b/plotly/validators/pie/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/pie/legendgrouptitle/__init__.py
+++ b/plotly/validators/pie/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/pie/legendgrouptitle/font/__init__.py b/plotly/validators/pie/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/pie/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/pie/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/pie/marker/__init__.py b/plotly/validators/pie/marker/__init__.py
index 22860e3333c..aeae3564f66 100644
--- a/plotly/validators/pie/marker/__init__.py
+++ b/plotly/validators/pie/marker/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._pattern.PatternValidator",
-        "._line.LineValidator",
-        "._colorssrc.ColorssrcValidator",
-        "._colors.ColorsValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._pattern import PatternValidator
+    from ._line import LineValidator
+    from ._colorssrc import ColorssrcValidator
+    from ._colors import ColorsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._pattern.PatternValidator",
+            "._line.LineValidator",
+            "._colorssrc.ColorssrcValidator",
+            "._colors.ColorsValidator",
+        ],
+    )
diff --git a/plotly/validators/pie/marker/line/__init__.py b/plotly/validators/pie/marker/line/__init__.py
index ca6d32f725b..a2b9e1ae50c 100644
--- a/plotly/validators/pie/marker/line/__init__.py
+++ b/plotly/validators/pie/marker/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/pie/marker/pattern/__init__.py b/plotly/validators/pie/marker/pattern/__init__.py
index e42ccc4d0fb..e190f962c46 100644
--- a/plotly/validators/pie/marker/pattern/__init__.py
+++ b/plotly/validators/pie/marker/pattern/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._soliditysrc.SoliditysrcValidator",
-        "._solidity.SolidityValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shapesrc.ShapesrcValidator",
-        "._shape.ShapeValidator",
-        "._fillmode.FillmodeValidator",
-        "._fgopacity.FgopacityValidator",
-        "._fgcolorsrc.FgcolorsrcValidator",
-        "._fgcolor.FgcolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._soliditysrc import SoliditysrcValidator
+    from ._solidity import SolidityValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shapesrc import ShapesrcValidator
+    from ._shape import ShapeValidator
+    from ._fillmode import FillmodeValidator
+    from ._fgopacity import FgopacityValidator
+    from ._fgcolorsrc import FgcolorsrcValidator
+    from ._fgcolor import FgcolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._soliditysrc.SoliditysrcValidator",
+            "._solidity.SolidityValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shapesrc.ShapesrcValidator",
+            "._shape.ShapeValidator",
+            "._fillmode.FillmodeValidator",
+            "._fgopacity.FgopacityValidator",
+            "._fgcolorsrc.FgcolorsrcValidator",
+            "._fgcolor.FgcolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/pie/outsidetextfont/__init__.py b/plotly/validators/pie/outsidetextfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/pie/outsidetextfont/__init__.py
+++ b/plotly/validators/pie/outsidetextfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/pie/stream/__init__.py b/plotly/validators/pie/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/pie/stream/__init__.py
+++ b/plotly/validators/pie/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/pie/textfont/__init__.py b/plotly/validators/pie/textfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/pie/textfont/__init__.py
+++ b/plotly/validators/pie/textfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/pie/title/__init__.py b/plotly/validators/pie/title/__init__.py
index 8d5c91b29e3..bedd4ba1767 100644
--- a/plotly/validators/pie/title/__init__.py
+++ b/plotly/validators/pie/title/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._position.PositionValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._position import PositionValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._text.TextValidator",
+            "._position.PositionValidator",
+            "._font.FontValidator",
+        ],
+    )
diff --git a/plotly/validators/pie/title/font/__init__.py b/plotly/validators/pie/title/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/pie/title/font/__init__.py
+++ b/plotly/validators/pie/title/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/sankey/__init__.py b/plotly/validators/sankey/__init__.py
index 9cde0f22be0..0dd341cd80b 100644
--- a/plotly/validators/sankey/__init__.py
+++ b/plotly/validators/sankey/__init__.py
@@ -1,35 +1,65 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._valuesuffix.ValuesuffixValidator",
-        "._valueformat.ValueformatValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._textfont.TextfontValidator",
-        "._stream.StreamValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._orientation.OrientationValidator",
-        "._node.NodeValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._link.LinkValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._domain.DomainValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._arrangement.ArrangementValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._valuesuffix import ValuesuffixValidator
+    from ._valueformat import ValueformatValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._textfont import TextfontValidator
+    from ._stream import StreamValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._orientation import OrientationValidator
+    from ._node import NodeValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._link import LinkValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._domain import DomainValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._arrangement import ArrangementValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._valuesuffix.ValuesuffixValidator",
+            "._valueformat.ValueformatValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._textfont.TextfontValidator",
+            "._stream.StreamValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._orientation.OrientationValidator",
+            "._node.NodeValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._link.LinkValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._domain.DomainValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._arrangement.ArrangementValidator",
+        ],
+    )
diff --git a/plotly/validators/sankey/domain/__init__.py b/plotly/validators/sankey/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/sankey/domain/__init__.py
+++ b/plotly/validators/sankey/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/sankey/hoverlabel/__init__.py b/plotly/validators/sankey/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/sankey/hoverlabel/__init__.py
+++ b/plotly/validators/sankey/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/sankey/hoverlabel/font/__init__.py b/plotly/validators/sankey/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/sankey/hoverlabel/font/__init__.py
+++ b/plotly/validators/sankey/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/sankey/legendgrouptitle/__init__.py b/plotly/validators/sankey/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/sankey/legendgrouptitle/__init__.py
+++ b/plotly/validators/sankey/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/sankey/legendgrouptitle/font/__init__.py b/plotly/validators/sankey/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/sankey/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/sankey/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/sankey/link/__init__.py b/plotly/validators/sankey/link/__init__.py
index 3b101a070fb..8305b5d1d37 100644
--- a/plotly/validators/sankey/link/__init__.py
+++ b/plotly/validators/sankey/link/__init__.py
@@ -1,31 +1,57 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._valuesrc.ValuesrcValidator",
-        "._value.ValueValidator",
-        "._targetsrc.TargetsrcValidator",
-        "._target.TargetValidator",
-        "._sourcesrc.SourcesrcValidator",
-        "._source.SourceValidator",
-        "._line.LineValidator",
-        "._labelsrc.LabelsrcValidator",
-        "._label.LabelValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._hovercolorsrc.HovercolorsrcValidator",
-        "._hovercolor.HovercolorValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscaledefaults.ColorscaledefaultsValidator",
-        "._colorscales.ColorscalesValidator",
-        "._color.ColorValidator",
-        "._arrowlen.ArrowlenValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._valuesrc import ValuesrcValidator
+    from ._value import ValueValidator
+    from ._targetsrc import TargetsrcValidator
+    from ._target import TargetValidator
+    from ._sourcesrc import SourcesrcValidator
+    from ._source import SourceValidator
+    from ._line import LineValidator
+    from ._labelsrc import LabelsrcValidator
+    from ._label import LabelValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._hovercolorsrc import HovercolorsrcValidator
+    from ._hovercolor import HovercolorValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscaledefaults import ColorscaledefaultsValidator
+    from ._colorscales import ColorscalesValidator
+    from ._color import ColorValidator
+    from ._arrowlen import ArrowlenValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._valuesrc.ValuesrcValidator",
+            "._value.ValueValidator",
+            "._targetsrc.TargetsrcValidator",
+            "._target.TargetValidator",
+            "._sourcesrc.SourcesrcValidator",
+            "._source.SourceValidator",
+            "._line.LineValidator",
+            "._labelsrc.LabelsrcValidator",
+            "._label.LabelValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._hovercolorsrc.HovercolorsrcValidator",
+            "._hovercolor.HovercolorValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscaledefaults.ColorscaledefaultsValidator",
+            "._colorscales.ColorscalesValidator",
+            "._color.ColorValidator",
+            "._arrowlen.ArrowlenValidator",
+        ],
+    )
diff --git a/plotly/validators/sankey/link/colorscale/__init__.py b/plotly/validators/sankey/link/colorscale/__init__.py
index 2a011439692..a254f9c1217 100644
--- a/plotly/validators/sankey/link/colorscale/__init__.py
+++ b/plotly/validators/sankey/link/colorscale/__init__.py
@@ -1,15 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._label.LabelValidator",
-        "._colorscale.ColorscaleValidator",
-        "._cmin.CminValidator",
-        "._cmax.CmaxValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._label import LabelValidator
+    from ._colorscale import ColorscaleValidator
+    from ._cmin import CminValidator
+    from ._cmax import CmaxValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._label.LabelValidator",
+            "._colorscale.ColorscaleValidator",
+            "._cmin.CminValidator",
+            "._cmax.CmaxValidator",
+        ],
+    )
diff --git a/plotly/validators/sankey/link/hoverlabel/__init__.py b/plotly/validators/sankey/link/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/sankey/link/hoverlabel/__init__.py
+++ b/plotly/validators/sankey/link/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/sankey/link/hoverlabel/font/__init__.py b/plotly/validators/sankey/link/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/sankey/link/hoverlabel/font/__init__.py
+++ b/plotly/validators/sankey/link/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/sankey/link/line/__init__.py b/plotly/validators/sankey/link/line/__init__.py
index ca6d32f725b..a2b9e1ae50c 100644
--- a/plotly/validators/sankey/link/line/__init__.py
+++ b/plotly/validators/sankey/link/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/sankey/node/__init__.py b/plotly/validators/sankey/node/__init__.py
index 5d472034bf8..276f46d65c3 100644
--- a/plotly/validators/sankey/node/__init__.py
+++ b/plotly/validators/sankey/node/__init__.py
@@ -1,28 +1,51 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._ysrc.YsrcValidator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._x.XValidator",
-        "._thickness.ThicknessValidator",
-        "._pad.PadValidator",
-        "._line.LineValidator",
-        "._labelsrc.LabelsrcValidator",
-        "._label.LabelValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._groups.GroupsValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._ysrc import YsrcValidator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._x import XValidator
+    from ._thickness import ThicknessValidator
+    from ._pad import PadValidator
+    from ._line import LineValidator
+    from ._labelsrc import LabelsrcValidator
+    from ._label import LabelValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._groups import GroupsValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._ysrc.YsrcValidator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._x.XValidator",
+            "._thickness.ThicknessValidator",
+            "._pad.PadValidator",
+            "._line.LineValidator",
+            "._labelsrc.LabelsrcValidator",
+            "._label.LabelValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._groups.GroupsValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/sankey/node/hoverlabel/__init__.py b/plotly/validators/sankey/node/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/sankey/node/hoverlabel/__init__.py
+++ b/plotly/validators/sankey/node/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/sankey/node/hoverlabel/font/__init__.py b/plotly/validators/sankey/node/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/sankey/node/hoverlabel/font/__init__.py
+++ b/plotly/validators/sankey/node/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/sankey/node/line/__init__.py b/plotly/validators/sankey/node/line/__init__.py
index ca6d32f725b..a2b9e1ae50c 100644
--- a/plotly/validators/sankey/node/line/__init__.py
+++ b/plotly/validators/sankey/node/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/sankey/stream/__init__.py b/plotly/validators/sankey/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/sankey/stream/__init__.py
+++ b/plotly/validators/sankey/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/sankey/textfont/__init__.py b/plotly/validators/sankey/textfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/sankey/textfont/__init__.py
+++ b/plotly/validators/sankey/textfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/__init__.py b/plotly/validators/scatter/__init__.py
index 3788649bfdc..e159bfe4564 100644
--- a/plotly/validators/scatter/__init__.py
+++ b/plotly/validators/scatter/__init__.py
@@ -1,83 +1,161 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zorder.ZorderValidator",
-        "._ysrc.YsrcValidator",
-        "._yperiodalignment.YperiodalignmentValidator",
-        "._yperiod0.Yperiod0Validator",
-        "._yperiod.YperiodValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._ycalendar.YcalendarValidator",
-        "._yaxis.YaxisValidator",
-        "._y0.Y0Validator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xperiodalignment.XperiodalignmentValidator",
-        "._xperiod0.Xperiod0Validator",
-        "._xperiod.XperiodValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xcalendar.XcalendarValidator",
-        "._xaxis.XaxisValidator",
-        "._x0.X0Validator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textpositionsrc.TextpositionsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._stackgroup.StackgroupValidator",
-        "._stackgaps.StackgapsValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._orientation.OrientationValidator",
-        "._opacity.OpacityValidator",
-        "._offsetgroup.OffsetgroupValidator",
-        "._name.NameValidator",
-        "._mode.ModeValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoveron.HoveronValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._groupnorm.GroupnormValidator",
-        "._fillpattern.FillpatternValidator",
-        "._fillgradient.FillgradientValidator",
-        "._fillcolor.FillcolorValidator",
-        "._fill.FillValidator",
-        "._error_y.Error_YValidator",
-        "._error_x.Error_XValidator",
-        "._dy.DyValidator",
-        "._dx.DxValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._connectgaps.ConnectgapsValidator",
-        "._cliponaxis.CliponaxisValidator",
-        "._alignmentgroup.AlignmentgroupValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zorder import ZorderValidator
+    from ._ysrc import YsrcValidator
+    from ._yperiodalignment import YperiodalignmentValidator
+    from ._yperiod0 import Yperiod0Validator
+    from ._yperiod import YperiodValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._ycalendar import YcalendarValidator
+    from ._yaxis import YaxisValidator
+    from ._y0 import Y0Validator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xperiodalignment import XperiodalignmentValidator
+    from ._xperiod0 import Xperiod0Validator
+    from ._xperiod import XperiodValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xcalendar import XcalendarValidator
+    from ._xaxis import XaxisValidator
+    from ._x0 import X0Validator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textpositionsrc import TextpositionsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._stackgroup import StackgroupValidator
+    from ._stackgaps import StackgapsValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._orientation import OrientationValidator
+    from ._opacity import OpacityValidator
+    from ._offsetgroup import OffsetgroupValidator
+    from ._name import NameValidator
+    from ._mode import ModeValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoveron import HoveronValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._groupnorm import GroupnormValidator
+    from ._fillpattern import FillpatternValidator
+    from ._fillgradient import FillgradientValidator
+    from ._fillcolor import FillcolorValidator
+    from ._fill import FillValidator
+    from ._error_y import Error_YValidator
+    from ._error_x import Error_XValidator
+    from ._dy import DyValidator
+    from ._dx import DxValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._connectgaps import ConnectgapsValidator
+    from ._cliponaxis import CliponaxisValidator
+    from ._alignmentgroup import AlignmentgroupValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zorder.ZorderValidator",
+            "._ysrc.YsrcValidator",
+            "._yperiodalignment.YperiodalignmentValidator",
+            "._yperiod0.Yperiod0Validator",
+            "._yperiod.YperiodValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._ycalendar.YcalendarValidator",
+            "._yaxis.YaxisValidator",
+            "._y0.Y0Validator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xperiodalignment.XperiodalignmentValidator",
+            "._xperiod0.Xperiod0Validator",
+            "._xperiod.XperiodValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xcalendar.XcalendarValidator",
+            "._xaxis.XaxisValidator",
+            "._x0.X0Validator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textpositionsrc.TextpositionsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._stackgroup.StackgroupValidator",
+            "._stackgaps.StackgapsValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._orientation.OrientationValidator",
+            "._opacity.OpacityValidator",
+            "._offsetgroup.OffsetgroupValidator",
+            "._name.NameValidator",
+            "._mode.ModeValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoveron.HoveronValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._groupnorm.GroupnormValidator",
+            "._fillpattern.FillpatternValidator",
+            "._fillgradient.FillgradientValidator",
+            "._fillcolor.FillcolorValidator",
+            "._fill.FillValidator",
+            "._error_y.Error_YValidator",
+            "._error_x.Error_XValidator",
+            "._dy.DyValidator",
+            "._dx.DxValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._connectgaps.ConnectgapsValidator",
+            "._cliponaxis.CliponaxisValidator",
+            "._alignmentgroup.AlignmentgroupValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/error_x/__init__.py b/plotly/validators/scatter/error_x/__init__.py
index 62838bdb731..2e3ce59d75d 100644
--- a/plotly/validators/scatter/error_x/__init__.py
+++ b/plotly/validators/scatter/error_x/__init__.py
@@ -1,24 +1,43 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._valueminus.ValueminusValidator",
-        "._value.ValueValidator",
-        "._type.TypeValidator",
-        "._tracerefminus.TracerefminusValidator",
-        "._traceref.TracerefValidator",
-        "._thickness.ThicknessValidator",
-        "._symmetric.SymmetricValidator",
-        "._copy_ystyle.Copy_YstyleValidator",
-        "._color.ColorValidator",
-        "._arraysrc.ArraysrcValidator",
-        "._arrayminussrc.ArrayminussrcValidator",
-        "._arrayminus.ArrayminusValidator",
-        "._array.ArrayValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._valueminus import ValueminusValidator
+    from ._value import ValueValidator
+    from ._type import TypeValidator
+    from ._tracerefminus import TracerefminusValidator
+    from ._traceref import TracerefValidator
+    from ._thickness import ThicknessValidator
+    from ._symmetric import SymmetricValidator
+    from ._copy_ystyle import Copy_YstyleValidator
+    from ._color import ColorValidator
+    from ._arraysrc import ArraysrcValidator
+    from ._arrayminussrc import ArrayminussrcValidator
+    from ._arrayminus import ArrayminusValidator
+    from ._array import ArrayValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._valueminus.ValueminusValidator",
+            "._value.ValueValidator",
+            "._type.TypeValidator",
+            "._tracerefminus.TracerefminusValidator",
+            "._traceref.TracerefValidator",
+            "._thickness.ThicknessValidator",
+            "._symmetric.SymmetricValidator",
+            "._copy_ystyle.Copy_YstyleValidator",
+            "._color.ColorValidator",
+            "._arraysrc.ArraysrcValidator",
+            "._arrayminussrc.ArrayminussrcValidator",
+            "._arrayminus.ArrayminusValidator",
+            "._array.ArrayValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/error_y/__init__.py b/plotly/validators/scatter/error_y/__init__.py
index ea49850d5fe..eff09cd6a0a 100644
--- a/plotly/validators/scatter/error_y/__init__.py
+++ b/plotly/validators/scatter/error_y/__init__.py
@@ -1,23 +1,41 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._valueminus.ValueminusValidator",
-        "._value.ValueValidator",
-        "._type.TypeValidator",
-        "._tracerefminus.TracerefminusValidator",
-        "._traceref.TracerefValidator",
-        "._thickness.ThicknessValidator",
-        "._symmetric.SymmetricValidator",
-        "._color.ColorValidator",
-        "._arraysrc.ArraysrcValidator",
-        "._arrayminussrc.ArrayminussrcValidator",
-        "._arrayminus.ArrayminusValidator",
-        "._array.ArrayValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._valueminus import ValueminusValidator
+    from ._value import ValueValidator
+    from ._type import TypeValidator
+    from ._tracerefminus import TracerefminusValidator
+    from ._traceref import TracerefValidator
+    from ._thickness import ThicknessValidator
+    from ._symmetric import SymmetricValidator
+    from ._color import ColorValidator
+    from ._arraysrc import ArraysrcValidator
+    from ._arrayminussrc import ArrayminussrcValidator
+    from ._arrayminus import ArrayminusValidator
+    from ._array import ArrayValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._valueminus.ValueminusValidator",
+            "._value.ValueValidator",
+            "._type.TypeValidator",
+            "._tracerefminus.TracerefminusValidator",
+            "._traceref.TracerefValidator",
+            "._thickness.ThicknessValidator",
+            "._symmetric.SymmetricValidator",
+            "._color.ColorValidator",
+            "._arraysrc.ArraysrcValidator",
+            "._arrayminussrc.ArrayminussrcValidator",
+            "._arrayminus.ArrayminusValidator",
+            "._array.ArrayValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/fillgradient/__init__.py b/plotly/validators/scatter/fillgradient/__init__.py
index a286cf09190..27798f1e389 100644
--- a/plotly/validators/scatter/fillgradient/__init__.py
+++ b/plotly/validators/scatter/fillgradient/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._type.TypeValidator",
-        "._stop.StopValidator",
-        "._start.StartValidator",
-        "._colorscale.ColorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._type import TypeValidator
+    from ._stop import StopValidator
+    from ._start import StartValidator
+    from ._colorscale import ColorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._type.TypeValidator",
+            "._stop.StopValidator",
+            "._start.StartValidator",
+            "._colorscale.ColorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/fillpattern/__init__.py b/plotly/validators/scatter/fillpattern/__init__.py
index e42ccc4d0fb..e190f962c46 100644
--- a/plotly/validators/scatter/fillpattern/__init__.py
+++ b/plotly/validators/scatter/fillpattern/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._soliditysrc.SoliditysrcValidator",
-        "._solidity.SolidityValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shapesrc.ShapesrcValidator",
-        "._shape.ShapeValidator",
-        "._fillmode.FillmodeValidator",
-        "._fgopacity.FgopacityValidator",
-        "._fgcolorsrc.FgcolorsrcValidator",
-        "._fgcolor.FgcolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._soliditysrc import SoliditysrcValidator
+    from ._solidity import SolidityValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shapesrc import ShapesrcValidator
+    from ._shape import ShapeValidator
+    from ._fillmode import FillmodeValidator
+    from ._fgopacity import FgopacityValidator
+    from ._fgcolorsrc import FgcolorsrcValidator
+    from ._fgcolor import FgcolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._soliditysrc.SoliditysrcValidator",
+            "._solidity.SolidityValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shapesrc.ShapesrcValidator",
+            "._shape.ShapeValidator",
+            "._fillmode.FillmodeValidator",
+            "._fgopacity.FgopacityValidator",
+            "._fgcolorsrc.FgcolorsrcValidator",
+            "._fgcolor.FgcolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/hoverlabel/__init__.py b/plotly/validators/scatter/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/scatter/hoverlabel/__init__.py
+++ b/plotly/validators/scatter/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/hoverlabel/font/__init__.py b/plotly/validators/scatter/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scatter/hoverlabel/font/__init__.py
+++ b/plotly/validators/scatter/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/legendgrouptitle/__init__.py b/plotly/validators/scatter/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/scatter/legendgrouptitle/__init__.py
+++ b/plotly/validators/scatter/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/scatter/legendgrouptitle/font/__init__.py b/plotly/validators/scatter/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatter/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/scatter/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/line/__init__.py b/plotly/validators/scatter/line/__init__.py
index 95279b84d5c..ddf365c6a4c 100644
--- a/plotly/validators/scatter/line/__init__.py
+++ b/plotly/validators/scatter/line/__init__.py
@@ -1,17 +1,29 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._smoothing.SmoothingValidator",
-        "._simplify.SimplifyValidator",
-        "._shape.ShapeValidator",
-        "._dash.DashValidator",
-        "._color.ColorValidator",
-        "._backoffsrc.BackoffsrcValidator",
-        "._backoff.BackoffValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._smoothing import SmoothingValidator
+    from ._simplify import SimplifyValidator
+    from ._shape import ShapeValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+    from ._backoffsrc import BackoffsrcValidator
+    from ._backoff import BackoffValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._smoothing.SmoothingValidator",
+            "._simplify.SimplifyValidator",
+            "._shape.ShapeValidator",
+            "._dash.DashValidator",
+            "._color.ColorValidator",
+            "._backoffsrc.BackoffsrcValidator",
+            "._backoff.BackoffValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/marker/__init__.py b/plotly/validators/scatter/marker/__init__.py
index fea9868a7bd..8434e73e3f5 100644
--- a/plotly/validators/scatter/marker/__init__.py
+++ b/plotly/validators/scatter/marker/__init__.py
@@ -1,38 +1,71 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._symbolsrc.SymbolsrcValidator",
-        "._symbol.SymbolValidator",
-        "._standoffsrc.StandoffsrcValidator",
-        "._standoff.StandoffValidator",
-        "._sizesrc.SizesrcValidator",
-        "._sizeref.SizerefValidator",
-        "._sizemode.SizemodeValidator",
-        "._sizemin.SizeminValidator",
-        "._size.SizeValidator",
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._maxdisplayed.MaxdisplayedValidator",
-        "._line.LineValidator",
-        "._gradient.GradientValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-        "._anglesrc.AnglesrcValidator",
-        "._angleref.AnglerefValidator",
-        "._angle.AngleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._symbolsrc import SymbolsrcValidator
+    from ._symbol import SymbolValidator
+    from ._standoffsrc import StandoffsrcValidator
+    from ._standoff import StandoffValidator
+    from ._sizesrc import SizesrcValidator
+    from ._sizeref import SizerefValidator
+    from ._sizemode import SizemodeValidator
+    from ._sizemin import SizeminValidator
+    from ._size import SizeValidator
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._maxdisplayed import MaxdisplayedValidator
+    from ._line import LineValidator
+    from ._gradient import GradientValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+    from ._anglesrc import AnglesrcValidator
+    from ._angleref import AnglerefValidator
+    from ._angle import AngleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._symbolsrc.SymbolsrcValidator",
+            "._symbol.SymbolValidator",
+            "._standoffsrc.StandoffsrcValidator",
+            "._standoff.StandoffValidator",
+            "._sizesrc.SizesrcValidator",
+            "._sizeref.SizerefValidator",
+            "._sizemode.SizemodeValidator",
+            "._sizemin.SizeminValidator",
+            "._size.SizeValidator",
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._maxdisplayed.MaxdisplayedValidator",
+            "._line.LineValidator",
+            "._gradient.GradientValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+            "._anglesrc.AnglesrcValidator",
+            "._angleref.AnglerefValidator",
+            "._angle.AngleValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/marker/colorbar/__init__.py b/plotly/validators/scatter/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/scatter/marker/colorbar/__init__.py
+++ b/plotly/validators/scatter/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/marker/colorbar/tickfont/__init__.py b/plotly/validators/scatter/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatter/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/scatter/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/scatter/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/scatter/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/scatter/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/marker/colorbar/title/__init__.py b/plotly/validators/scatter/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/scatter/marker/colorbar/title/__init__.py
+++ b/plotly/validators/scatter/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/scatter/marker/colorbar/title/font/__init__.py b/plotly/validators/scatter/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatter/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/scatter/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/marker/gradient/__init__.py b/plotly/validators/scatter/marker/gradient/__init__.py
index f5373e78223..624a280ea46 100644
--- a/plotly/validators/scatter/marker/gradient/__init__.py
+++ b/plotly/validators/scatter/marker/gradient/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._typesrc.TypesrcValidator",
-        "._type.TypeValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._typesrc import TypesrcValidator
+    from ._type import TypeValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._typesrc.TypesrcValidator",
+            "._type.TypeValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/marker/line/__init__.py b/plotly/validators/scatter/marker/line/__init__.py
index 4ba3ea340b5..facbe33f884 100644
--- a/plotly/validators/scatter/marker/line/__init__.py
+++ b/plotly/validators/scatter/marker/line/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._reversescale.ReversescaleValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._reversescale import ReversescaleValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._reversescale.ReversescaleValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/selected/__init__.py b/plotly/validators/scatter/selected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/scatter/selected/__init__.py
+++ b/plotly/validators/scatter/selected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scatter/selected/marker/__init__.py b/plotly/validators/scatter/selected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scatter/selected/marker/__init__.py
+++ b/plotly/validators/scatter/selected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/selected/textfont/__init__.py b/plotly/validators/scatter/selected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/scatter/selected/textfont/__init__.py
+++ b/plotly/validators/scatter/selected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scatter/stream/__init__.py b/plotly/validators/scatter/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/scatter/stream/__init__.py
+++ b/plotly/validators/scatter/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/scatter/textfont/__init__.py b/plotly/validators/scatter/textfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scatter/textfont/__init__.py
+++ b/plotly/validators/scatter/textfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/unselected/__init__.py b/plotly/validators/scatter/unselected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/scatter/unselected/__init__.py
+++ b/plotly/validators/scatter/unselected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scatter/unselected/marker/__init__.py b/plotly/validators/scatter/unselected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scatter/unselected/marker/__init__.py
+++ b/plotly/validators/scatter/unselected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter/unselected/textfont/__init__.py b/plotly/validators/scatter/unselected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/scatter/unselected/textfont/__init__.py
+++ b/plotly/validators/scatter/unselected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scatter3d/__init__.py b/plotly/validators/scatter3d/__init__.py
index abc965ced29..c9a28b14c34 100644
--- a/plotly/validators/scatter3d/__init__.py
+++ b/plotly/validators/scatter3d/__init__.py
@@ -1,64 +1,123 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zhoverformat.ZhoverformatValidator",
-        "._zcalendar.ZcalendarValidator",
-        "._z.ZValidator",
-        "._ysrc.YsrcValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._ycalendar.YcalendarValidator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xcalendar.XcalendarValidator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textpositionsrc.TextpositionsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._surfacecolor.SurfacecolorValidator",
-        "._surfaceaxis.SurfaceaxisValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._scene.SceneValidator",
-        "._projection.ProjectionValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._mode.ModeValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._error_z.Error_ZValidator",
-        "._error_y.Error_YValidator",
-        "._error_x.Error_XValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._connectgaps.ConnectgapsValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zhoverformat import ZhoverformatValidator
+    from ._zcalendar import ZcalendarValidator
+    from ._z import ZValidator
+    from ._ysrc import YsrcValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._ycalendar import YcalendarValidator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xcalendar import XcalendarValidator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textpositionsrc import TextpositionsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._surfacecolor import SurfacecolorValidator
+    from ._surfaceaxis import SurfaceaxisValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._scene import SceneValidator
+    from ._projection import ProjectionValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._mode import ModeValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._error_z import Error_ZValidator
+    from ._error_y import Error_YValidator
+    from ._error_x import Error_XValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._connectgaps import ConnectgapsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zhoverformat.ZhoverformatValidator",
+            "._zcalendar.ZcalendarValidator",
+            "._z.ZValidator",
+            "._ysrc.YsrcValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._ycalendar.YcalendarValidator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xcalendar.XcalendarValidator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textpositionsrc.TextpositionsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._surfacecolor.SurfacecolorValidator",
+            "._surfaceaxis.SurfaceaxisValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._scene.SceneValidator",
+            "._projection.ProjectionValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._mode.ModeValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._error_z.Error_ZValidator",
+            "._error_y.Error_YValidator",
+            "._error_x.Error_XValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._connectgaps.ConnectgapsValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/error_x/__init__.py b/plotly/validators/scatter3d/error_x/__init__.py
index 1572917759b..ff9282973c6 100644
--- a/plotly/validators/scatter3d/error_x/__init__.py
+++ b/plotly/validators/scatter3d/error_x/__init__.py
@@ -1,24 +1,43 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._valueminus.ValueminusValidator",
-        "._value.ValueValidator",
-        "._type.TypeValidator",
-        "._tracerefminus.TracerefminusValidator",
-        "._traceref.TracerefValidator",
-        "._thickness.ThicknessValidator",
-        "._symmetric.SymmetricValidator",
-        "._copy_zstyle.Copy_ZstyleValidator",
-        "._color.ColorValidator",
-        "._arraysrc.ArraysrcValidator",
-        "._arrayminussrc.ArrayminussrcValidator",
-        "._arrayminus.ArrayminusValidator",
-        "._array.ArrayValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._valueminus import ValueminusValidator
+    from ._value import ValueValidator
+    from ._type import TypeValidator
+    from ._tracerefminus import TracerefminusValidator
+    from ._traceref import TracerefValidator
+    from ._thickness import ThicknessValidator
+    from ._symmetric import SymmetricValidator
+    from ._copy_zstyle import Copy_ZstyleValidator
+    from ._color import ColorValidator
+    from ._arraysrc import ArraysrcValidator
+    from ._arrayminussrc import ArrayminussrcValidator
+    from ._arrayminus import ArrayminusValidator
+    from ._array import ArrayValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._valueminus.ValueminusValidator",
+            "._value.ValueValidator",
+            "._type.TypeValidator",
+            "._tracerefminus.TracerefminusValidator",
+            "._traceref.TracerefValidator",
+            "._thickness.ThicknessValidator",
+            "._symmetric.SymmetricValidator",
+            "._copy_zstyle.Copy_ZstyleValidator",
+            "._color.ColorValidator",
+            "._arraysrc.ArraysrcValidator",
+            "._arrayminussrc.ArrayminussrcValidator",
+            "._arrayminus.ArrayminusValidator",
+            "._array.ArrayValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/error_y/__init__.py b/plotly/validators/scatter3d/error_y/__init__.py
index 1572917759b..ff9282973c6 100644
--- a/plotly/validators/scatter3d/error_y/__init__.py
+++ b/plotly/validators/scatter3d/error_y/__init__.py
@@ -1,24 +1,43 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._valueminus.ValueminusValidator",
-        "._value.ValueValidator",
-        "._type.TypeValidator",
-        "._tracerefminus.TracerefminusValidator",
-        "._traceref.TracerefValidator",
-        "._thickness.ThicknessValidator",
-        "._symmetric.SymmetricValidator",
-        "._copy_zstyle.Copy_ZstyleValidator",
-        "._color.ColorValidator",
-        "._arraysrc.ArraysrcValidator",
-        "._arrayminussrc.ArrayminussrcValidator",
-        "._arrayminus.ArrayminusValidator",
-        "._array.ArrayValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._valueminus import ValueminusValidator
+    from ._value import ValueValidator
+    from ._type import TypeValidator
+    from ._tracerefminus import TracerefminusValidator
+    from ._traceref import TracerefValidator
+    from ._thickness import ThicknessValidator
+    from ._symmetric import SymmetricValidator
+    from ._copy_zstyle import Copy_ZstyleValidator
+    from ._color import ColorValidator
+    from ._arraysrc import ArraysrcValidator
+    from ._arrayminussrc import ArrayminussrcValidator
+    from ._arrayminus import ArrayminusValidator
+    from ._array import ArrayValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._valueminus.ValueminusValidator",
+            "._value.ValueValidator",
+            "._type.TypeValidator",
+            "._tracerefminus.TracerefminusValidator",
+            "._traceref.TracerefValidator",
+            "._thickness.ThicknessValidator",
+            "._symmetric.SymmetricValidator",
+            "._copy_zstyle.Copy_ZstyleValidator",
+            "._color.ColorValidator",
+            "._arraysrc.ArraysrcValidator",
+            "._arrayminussrc.ArrayminussrcValidator",
+            "._arrayminus.ArrayminusValidator",
+            "._array.ArrayValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/error_z/__init__.py b/plotly/validators/scatter3d/error_z/__init__.py
index ea49850d5fe..eff09cd6a0a 100644
--- a/plotly/validators/scatter3d/error_z/__init__.py
+++ b/plotly/validators/scatter3d/error_z/__init__.py
@@ -1,23 +1,41 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._valueminus.ValueminusValidator",
-        "._value.ValueValidator",
-        "._type.TypeValidator",
-        "._tracerefminus.TracerefminusValidator",
-        "._traceref.TracerefValidator",
-        "._thickness.ThicknessValidator",
-        "._symmetric.SymmetricValidator",
-        "._color.ColorValidator",
-        "._arraysrc.ArraysrcValidator",
-        "._arrayminussrc.ArrayminussrcValidator",
-        "._arrayminus.ArrayminusValidator",
-        "._array.ArrayValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._valueminus import ValueminusValidator
+    from ._value import ValueValidator
+    from ._type import TypeValidator
+    from ._tracerefminus import TracerefminusValidator
+    from ._traceref import TracerefValidator
+    from ._thickness import ThicknessValidator
+    from ._symmetric import SymmetricValidator
+    from ._color import ColorValidator
+    from ._arraysrc import ArraysrcValidator
+    from ._arrayminussrc import ArrayminussrcValidator
+    from ._arrayminus import ArrayminusValidator
+    from ._array import ArrayValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._valueminus.ValueminusValidator",
+            "._value.ValueValidator",
+            "._type.TypeValidator",
+            "._tracerefminus.TracerefminusValidator",
+            "._traceref.TracerefValidator",
+            "._thickness.ThicknessValidator",
+            "._symmetric.SymmetricValidator",
+            "._color.ColorValidator",
+            "._arraysrc.ArraysrcValidator",
+            "._arrayminussrc.ArrayminussrcValidator",
+            "._arrayminus.ArrayminusValidator",
+            "._array.ArrayValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/hoverlabel/__init__.py b/plotly/validators/scatter3d/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/scatter3d/hoverlabel/__init__.py
+++ b/plotly/validators/scatter3d/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/hoverlabel/font/__init__.py b/plotly/validators/scatter3d/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scatter3d/hoverlabel/font/__init__.py
+++ b/plotly/validators/scatter3d/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/legendgrouptitle/__init__.py b/plotly/validators/scatter3d/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/scatter3d/legendgrouptitle/__init__.py
+++ b/plotly/validators/scatter3d/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/scatter3d/legendgrouptitle/font/__init__.py b/plotly/validators/scatter3d/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatter3d/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/scatter3d/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/line/__init__.py b/plotly/validators/scatter3d/line/__init__.py
index 680c0d2ac5a..acdb8a9fbcd 100644
--- a/plotly/validators/scatter3d/line/__init__.py
+++ b/plotly/validators/scatter3d/line/__init__.py
@@ -1,23 +1,41 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._dash.DashValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._dash import DashValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._dash.DashValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/line/colorbar/__init__.py b/plotly/validators/scatter3d/line/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/scatter3d/line/colorbar/__init__.py
+++ b/plotly/validators/scatter3d/line/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/line/colorbar/tickfont/__init__.py b/plotly/validators/scatter3d/line/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatter3d/line/colorbar/tickfont/__init__.py
+++ b/plotly/validators/scatter3d/line/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/line/colorbar/tickformatstop/__init__.py b/plotly/validators/scatter3d/line/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/scatter3d/line/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/scatter3d/line/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/line/colorbar/title/__init__.py b/plotly/validators/scatter3d/line/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/scatter3d/line/colorbar/title/__init__.py
+++ b/plotly/validators/scatter3d/line/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/scatter3d/line/colorbar/title/font/__init__.py b/plotly/validators/scatter3d/line/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatter3d/line/colorbar/title/font/__init__.py
+++ b/plotly/validators/scatter3d/line/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/marker/__init__.py b/plotly/validators/scatter3d/marker/__init__.py
index 94e235e239e..df67bfdf210 100644
--- a/plotly/validators/scatter3d/marker/__init__.py
+++ b/plotly/validators/scatter3d/marker/__init__.py
@@ -1,30 +1,55 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._symbolsrc.SymbolsrcValidator",
-        "._symbol.SymbolValidator",
-        "._sizesrc.SizesrcValidator",
-        "._sizeref.SizerefValidator",
-        "._sizemode.SizemodeValidator",
-        "._sizemin.SizeminValidator",
-        "._size.SizeValidator",
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacity.OpacityValidator",
-        "._line.LineValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._symbolsrc import SymbolsrcValidator
+    from ._symbol import SymbolValidator
+    from ._sizesrc import SizesrcValidator
+    from ._sizeref import SizerefValidator
+    from ._sizemode import SizemodeValidator
+    from ._sizemin import SizeminValidator
+    from ._size import SizeValidator
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacity import OpacityValidator
+    from ._line import LineValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._symbolsrc.SymbolsrcValidator",
+            "._symbol.SymbolValidator",
+            "._sizesrc.SizesrcValidator",
+            "._sizeref.SizerefValidator",
+            "._sizemode.SizemodeValidator",
+            "._sizemin.SizeminValidator",
+            "._size.SizeValidator",
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacity.OpacityValidator",
+            "._line.LineValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/marker/colorbar/__init__.py b/plotly/validators/scatter3d/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/scatter3d/marker/colorbar/__init__.py
+++ b/plotly/validators/scatter3d/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/marker/colorbar/tickfont/__init__.py b/plotly/validators/scatter3d/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatter3d/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/scatter3d/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/scatter3d/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/scatter3d/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/scatter3d/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/marker/colorbar/title/__init__.py b/plotly/validators/scatter3d/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/scatter3d/marker/colorbar/title/__init__.py
+++ b/plotly/validators/scatter3d/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/scatter3d/marker/colorbar/title/font/__init__.py b/plotly/validators/scatter3d/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatter3d/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/scatter3d/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/marker/line/__init__.py b/plotly/validators/scatter3d/marker/line/__init__.py
index d59e454a393..cb1dba3be15 100644
--- a/plotly/validators/scatter3d/marker/line/__init__.py
+++ b/plotly/validators/scatter3d/marker/line/__init__.py
@@ -1,20 +1,35 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._reversescale.ReversescaleValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._reversescale import ReversescaleValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._reversescale.ReversescaleValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/projection/__init__.py b/plotly/validators/scatter3d/projection/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/scatter3d/projection/__init__.py
+++ b/plotly/validators/scatter3d/projection/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/scatter3d/projection/x/__init__.py b/plotly/validators/scatter3d/projection/x/__init__.py
index 1f45773815f..45005776b78 100644
--- a/plotly/validators/scatter3d/projection/x/__init__.py
+++ b/plotly/validators/scatter3d/projection/x/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._show.ShowValidator", "._scale.ScaleValidator", "._opacity.OpacityValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._scale import ScaleValidator
+    from ._opacity import OpacityValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._show.ShowValidator",
+            "._scale.ScaleValidator",
+            "._opacity.OpacityValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/projection/y/__init__.py b/plotly/validators/scatter3d/projection/y/__init__.py
index 1f45773815f..45005776b78 100644
--- a/plotly/validators/scatter3d/projection/y/__init__.py
+++ b/plotly/validators/scatter3d/projection/y/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._show.ShowValidator", "._scale.ScaleValidator", "._opacity.OpacityValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._scale import ScaleValidator
+    from ._opacity import OpacityValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._show.ShowValidator",
+            "._scale.ScaleValidator",
+            "._opacity.OpacityValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/projection/z/__init__.py b/plotly/validators/scatter3d/projection/z/__init__.py
index 1f45773815f..45005776b78 100644
--- a/plotly/validators/scatter3d/projection/z/__init__.py
+++ b/plotly/validators/scatter3d/projection/z/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._show.ShowValidator", "._scale.ScaleValidator", "._opacity.OpacityValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._scale import ScaleValidator
+    from ._opacity import OpacityValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._show.ShowValidator",
+            "._scale.ScaleValidator",
+            "._opacity.OpacityValidator",
+        ],
+    )
diff --git a/plotly/validators/scatter3d/stream/__init__.py b/plotly/validators/scatter3d/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/scatter3d/stream/__init__.py
+++ b/plotly/validators/scatter3d/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/scatter3d/textfont/__init__.py b/plotly/validators/scatter3d/textfont/__init__.py
index 35d589957bd..d87c37ff7aa 100644
--- a/plotly/validators/scatter3d/textfont/__init__.py
+++ b/plotly/validators/scatter3d/textfont/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattercarpet/__init__.py b/plotly/validators/scattercarpet/__init__.py
index 4714c2ce849..2a6cd88e3e6 100644
--- a/plotly/validators/scattercarpet/__init__.py
+++ b/plotly/validators/scattercarpet/__init__.py
@@ -1,59 +1,113 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zorder.ZorderValidator",
-        "._yaxis.YaxisValidator",
-        "._xaxis.XaxisValidator",
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textpositionsrc.TextpositionsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._mode.ModeValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoveron.HoveronValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._fillcolor.FillcolorValidator",
-        "._fill.FillValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._connectgaps.ConnectgapsValidator",
-        "._carpet.CarpetValidator",
-        "._bsrc.BsrcValidator",
-        "._b.BValidator",
-        "._asrc.AsrcValidator",
-        "._a.AValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zorder import ZorderValidator
+    from ._yaxis import YaxisValidator
+    from ._xaxis import XaxisValidator
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textpositionsrc import TextpositionsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._mode import ModeValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoveron import HoveronValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._fillcolor import FillcolorValidator
+    from ._fill import FillValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._connectgaps import ConnectgapsValidator
+    from ._carpet import CarpetValidator
+    from ._bsrc import BsrcValidator
+    from ._b import BValidator
+    from ._asrc import AsrcValidator
+    from ._a import AValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zorder.ZorderValidator",
+            "._yaxis.YaxisValidator",
+            "._xaxis.XaxisValidator",
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textpositionsrc.TextpositionsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._mode.ModeValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoveron.HoveronValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._fillcolor.FillcolorValidator",
+            "._fill.FillValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._connectgaps.ConnectgapsValidator",
+            "._carpet.CarpetValidator",
+            "._bsrc.BsrcValidator",
+            "._b.BValidator",
+            "._asrc.AsrcValidator",
+            "._a.AValidator",
+        ],
+    )
diff --git a/plotly/validators/scattercarpet/hoverlabel/__init__.py b/plotly/validators/scattercarpet/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/scattercarpet/hoverlabel/__init__.py
+++ b/plotly/validators/scattercarpet/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/scattercarpet/hoverlabel/font/__init__.py b/plotly/validators/scattercarpet/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scattercarpet/hoverlabel/font/__init__.py
+++ b/plotly/validators/scattercarpet/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattercarpet/legendgrouptitle/__init__.py b/plotly/validators/scattercarpet/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/scattercarpet/legendgrouptitle/__init__.py
+++ b/plotly/validators/scattercarpet/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/scattercarpet/legendgrouptitle/font/__init__.py b/plotly/validators/scattercarpet/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattercarpet/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/scattercarpet/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattercarpet/line/__init__.py b/plotly/validators/scattercarpet/line/__init__.py
index d9c0ff9500d..7045562597a 100644
--- a/plotly/validators/scattercarpet/line/__init__.py
+++ b/plotly/validators/scattercarpet/line/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._smoothing.SmoothingValidator",
-        "._shape.ShapeValidator",
-        "._dash.DashValidator",
-        "._color.ColorValidator",
-        "._backoffsrc.BackoffsrcValidator",
-        "._backoff.BackoffValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._smoothing import SmoothingValidator
+    from ._shape import ShapeValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+    from ._backoffsrc import BackoffsrcValidator
+    from ._backoff import BackoffValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._smoothing.SmoothingValidator",
+            "._shape.ShapeValidator",
+            "._dash.DashValidator",
+            "._color.ColorValidator",
+            "._backoffsrc.BackoffsrcValidator",
+            "._backoff.BackoffValidator",
+        ],
+    )
diff --git a/plotly/validators/scattercarpet/marker/__init__.py b/plotly/validators/scattercarpet/marker/__init__.py
index fea9868a7bd..8434e73e3f5 100644
--- a/plotly/validators/scattercarpet/marker/__init__.py
+++ b/plotly/validators/scattercarpet/marker/__init__.py
@@ -1,38 +1,71 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._symbolsrc.SymbolsrcValidator",
-        "._symbol.SymbolValidator",
-        "._standoffsrc.StandoffsrcValidator",
-        "._standoff.StandoffValidator",
-        "._sizesrc.SizesrcValidator",
-        "._sizeref.SizerefValidator",
-        "._sizemode.SizemodeValidator",
-        "._sizemin.SizeminValidator",
-        "._size.SizeValidator",
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._maxdisplayed.MaxdisplayedValidator",
-        "._line.LineValidator",
-        "._gradient.GradientValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-        "._anglesrc.AnglesrcValidator",
-        "._angleref.AnglerefValidator",
-        "._angle.AngleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._symbolsrc import SymbolsrcValidator
+    from ._symbol import SymbolValidator
+    from ._standoffsrc import StandoffsrcValidator
+    from ._standoff import StandoffValidator
+    from ._sizesrc import SizesrcValidator
+    from ._sizeref import SizerefValidator
+    from ._sizemode import SizemodeValidator
+    from ._sizemin import SizeminValidator
+    from ._size import SizeValidator
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._maxdisplayed import MaxdisplayedValidator
+    from ._line import LineValidator
+    from ._gradient import GradientValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+    from ._anglesrc import AnglesrcValidator
+    from ._angleref import AnglerefValidator
+    from ._angle import AngleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._symbolsrc.SymbolsrcValidator",
+            "._symbol.SymbolValidator",
+            "._standoffsrc.StandoffsrcValidator",
+            "._standoff.StandoffValidator",
+            "._sizesrc.SizesrcValidator",
+            "._sizeref.SizerefValidator",
+            "._sizemode.SizemodeValidator",
+            "._sizemin.SizeminValidator",
+            "._size.SizeValidator",
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._maxdisplayed.MaxdisplayedValidator",
+            "._line.LineValidator",
+            "._gradient.GradientValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+            "._anglesrc.AnglesrcValidator",
+            "._angleref.AnglerefValidator",
+            "._angle.AngleValidator",
+        ],
+    )
diff --git a/plotly/validators/scattercarpet/marker/colorbar/__init__.py b/plotly/validators/scattercarpet/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/scattercarpet/marker/colorbar/__init__.py
+++ b/plotly/validators/scattercarpet/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattercarpet/marker/colorbar/tickfont/__init__.py b/plotly/validators/scattercarpet/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattercarpet/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/scattercarpet/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/scattercarpet/marker/colorbar/title/__init__.py b/plotly/validators/scattercarpet/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/scattercarpet/marker/colorbar/title/__init__.py
+++ b/plotly/validators/scattercarpet/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/scattercarpet/marker/colorbar/title/font/__init__.py b/plotly/validators/scattercarpet/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattercarpet/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/scattercarpet/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattercarpet/marker/gradient/__init__.py b/plotly/validators/scattercarpet/marker/gradient/__init__.py
index f5373e78223..624a280ea46 100644
--- a/plotly/validators/scattercarpet/marker/gradient/__init__.py
+++ b/plotly/validators/scattercarpet/marker/gradient/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._typesrc.TypesrcValidator",
-        "._type.TypeValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._typesrc import TypesrcValidator
+    from ._type import TypeValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._typesrc.TypesrcValidator",
+            "._type.TypeValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattercarpet/marker/line/__init__.py b/plotly/validators/scattercarpet/marker/line/__init__.py
index 4ba3ea340b5..facbe33f884 100644
--- a/plotly/validators/scattercarpet/marker/line/__init__.py
+++ b/plotly/validators/scattercarpet/marker/line/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._reversescale.ReversescaleValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._reversescale import ReversescaleValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._reversescale.ReversescaleValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/scattercarpet/selected/__init__.py b/plotly/validators/scattercarpet/selected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/scattercarpet/selected/__init__.py
+++ b/plotly/validators/scattercarpet/selected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scattercarpet/selected/marker/__init__.py b/plotly/validators/scattercarpet/selected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scattercarpet/selected/marker/__init__.py
+++ b/plotly/validators/scattercarpet/selected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattercarpet/selected/textfont/__init__.py b/plotly/validators/scattercarpet/selected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/scattercarpet/selected/textfont/__init__.py
+++ b/plotly/validators/scattercarpet/selected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scattercarpet/stream/__init__.py b/plotly/validators/scattercarpet/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/scattercarpet/stream/__init__.py
+++ b/plotly/validators/scattercarpet/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/scattercarpet/textfont/__init__.py b/plotly/validators/scattercarpet/textfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scattercarpet/textfont/__init__.py
+++ b/plotly/validators/scattercarpet/textfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattercarpet/unselected/__init__.py b/plotly/validators/scattercarpet/unselected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/scattercarpet/unselected/__init__.py
+++ b/plotly/validators/scattercarpet/unselected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scattercarpet/unselected/marker/__init__.py b/plotly/validators/scattercarpet/unselected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scattercarpet/unselected/marker/__init__.py
+++ b/plotly/validators/scattercarpet/unselected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattercarpet/unselected/textfont/__init__.py b/plotly/validators/scattercarpet/unselected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/scattercarpet/unselected/textfont/__init__.py
+++ b/plotly/validators/scattercarpet/unselected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scattergeo/__init__.py b/plotly/validators/scattergeo/__init__.py
index 920b558fa06..fd1f0586a2e 100644
--- a/plotly/validators/scattergeo/__init__.py
+++ b/plotly/validators/scattergeo/__init__.py
@@ -1,60 +1,115 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textpositionsrc.TextpositionsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._mode.ModeValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._lonsrc.LonsrcValidator",
-        "._lon.LonValidator",
-        "._locationssrc.LocationssrcValidator",
-        "._locations.LocationsValidator",
-        "._locationmode.LocationmodeValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._latsrc.LatsrcValidator",
-        "._lat.LatValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._geojson.GeojsonValidator",
-        "._geo.GeoValidator",
-        "._fillcolor.FillcolorValidator",
-        "._fill.FillValidator",
-        "._featureidkey.FeatureidkeyValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._connectgaps.ConnectgapsValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textpositionsrc import TextpositionsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._mode import ModeValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._lonsrc import LonsrcValidator
+    from ._lon import LonValidator
+    from ._locationssrc import LocationssrcValidator
+    from ._locations import LocationsValidator
+    from ._locationmode import LocationmodeValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._latsrc import LatsrcValidator
+    from ._lat import LatValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._geojson import GeojsonValidator
+    from ._geo import GeoValidator
+    from ._fillcolor import FillcolorValidator
+    from ._fill import FillValidator
+    from ._featureidkey import FeatureidkeyValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._connectgaps import ConnectgapsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textpositionsrc.TextpositionsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._mode.ModeValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._lonsrc.LonsrcValidator",
+            "._lon.LonValidator",
+            "._locationssrc.LocationssrcValidator",
+            "._locations.LocationsValidator",
+            "._locationmode.LocationmodeValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._latsrc.LatsrcValidator",
+            "._lat.LatValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._geojson.GeojsonValidator",
+            "._geo.GeoValidator",
+            "._fillcolor.FillcolorValidator",
+            "._fill.FillValidator",
+            "._featureidkey.FeatureidkeyValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._connectgaps.ConnectgapsValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergeo/_geojson.py b/plotly/validators/scattergeo/_geojson.py
index 33ec97fb9b0..41103869ec6 100644
--- a/plotly/validators/scattergeo/_geojson.py
+++ b/plotly/validators/scattergeo/_geojson.py
@@ -1,3 +1,7 @@
+
+
+
+
 #                   --- THIS FILE IS AUTO-GENERATED ---
 # Modifications will be overwitten the next time code generation run.
 
@@ -5,10 +9,9 @@
 
 
 class GeojsonValidator(_bv.AnyValidator):
-    def __init__(self, plotly_name="geojson", parent_name="scattergeo", **kwargs):
-        super().__init__(
-            plotly_name,
-            parent_name,
-            edit_type=kwargs.pop("edit_type", "calc"),
-            **kwargs,
-        )
+    def __init__(self, plotly_name='geojson',
+                       parent_name='scattergeo',
+                       **kwargs):
+        super().__init__(plotly_name, parent_name,
+                 edit_type=kwargs.pop('edit_type', 'calc'),
+        **kwargs)
\ No newline at end of file
diff --git a/plotly/validators/scattergeo/hoverlabel/__init__.py b/plotly/validators/scattergeo/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/scattergeo/hoverlabel/__init__.py
+++ b/plotly/validators/scattergeo/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergeo/hoverlabel/font/__init__.py b/plotly/validators/scattergeo/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scattergeo/hoverlabel/font/__init__.py
+++ b/plotly/validators/scattergeo/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergeo/legendgrouptitle/__init__.py b/plotly/validators/scattergeo/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/scattergeo/legendgrouptitle/__init__.py
+++ b/plotly/validators/scattergeo/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/scattergeo/legendgrouptitle/font/__init__.py b/plotly/validators/scattergeo/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattergeo/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/scattergeo/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergeo/line/__init__.py b/plotly/validators/scattergeo/line/__init__.py
index c5140ef758d..cff41466517 100644
--- a/plotly/validators/scattergeo/line/__init__.py
+++ b/plotly/validators/scattergeo/line/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
+    )
diff --git a/plotly/validators/scattergeo/marker/__init__.py b/plotly/validators/scattergeo/marker/__init__.py
index 3db73a0afdf..48545a32a3f 100644
--- a/plotly/validators/scattergeo/marker/__init__.py
+++ b/plotly/validators/scattergeo/marker/__init__.py
@@ -1,37 +1,69 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._symbolsrc.SymbolsrcValidator",
-        "._symbol.SymbolValidator",
-        "._standoffsrc.StandoffsrcValidator",
-        "._standoff.StandoffValidator",
-        "._sizesrc.SizesrcValidator",
-        "._sizeref.SizerefValidator",
-        "._sizemode.SizemodeValidator",
-        "._sizemin.SizeminValidator",
-        "._size.SizeValidator",
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._line.LineValidator",
-        "._gradient.GradientValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-        "._anglesrc.AnglesrcValidator",
-        "._angleref.AnglerefValidator",
-        "._angle.AngleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._symbolsrc import SymbolsrcValidator
+    from ._symbol import SymbolValidator
+    from ._standoffsrc import StandoffsrcValidator
+    from ._standoff import StandoffValidator
+    from ._sizesrc import SizesrcValidator
+    from ._sizeref import SizerefValidator
+    from ._sizemode import SizemodeValidator
+    from ._sizemin import SizeminValidator
+    from ._size import SizeValidator
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._line import LineValidator
+    from ._gradient import GradientValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+    from ._anglesrc import AnglesrcValidator
+    from ._angleref import AnglerefValidator
+    from ._angle import AngleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._symbolsrc.SymbolsrcValidator",
+            "._symbol.SymbolValidator",
+            "._standoffsrc.StandoffsrcValidator",
+            "._standoff.StandoffValidator",
+            "._sizesrc.SizesrcValidator",
+            "._sizeref.SizerefValidator",
+            "._sizemode.SizemodeValidator",
+            "._sizemin.SizeminValidator",
+            "._size.SizeValidator",
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._line.LineValidator",
+            "._gradient.GradientValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+            "._anglesrc.AnglesrcValidator",
+            "._angleref.AnglerefValidator",
+            "._angle.AngleValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergeo/marker/colorbar/__init__.py b/plotly/validators/scattergeo/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/scattergeo/marker/colorbar/__init__.py
+++ b/plotly/validators/scattergeo/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergeo/marker/colorbar/tickfont/__init__.py b/plotly/validators/scattergeo/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattergeo/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/scattergeo/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergeo/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/scattergeo/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/scattergeo/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/scattergeo/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergeo/marker/colorbar/title/__init__.py b/plotly/validators/scattergeo/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/scattergeo/marker/colorbar/title/__init__.py
+++ b/plotly/validators/scattergeo/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/scattergeo/marker/colorbar/title/font/__init__.py b/plotly/validators/scattergeo/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattergeo/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/scattergeo/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergeo/marker/gradient/__init__.py b/plotly/validators/scattergeo/marker/gradient/__init__.py
index f5373e78223..624a280ea46 100644
--- a/plotly/validators/scattergeo/marker/gradient/__init__.py
+++ b/plotly/validators/scattergeo/marker/gradient/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._typesrc.TypesrcValidator",
-        "._type.TypeValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._typesrc import TypesrcValidator
+    from ._type import TypeValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._typesrc.TypesrcValidator",
+            "._type.TypeValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergeo/marker/line/__init__.py b/plotly/validators/scattergeo/marker/line/__init__.py
index 4ba3ea340b5..facbe33f884 100644
--- a/plotly/validators/scattergeo/marker/line/__init__.py
+++ b/plotly/validators/scattergeo/marker/line/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._reversescale.ReversescaleValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._reversescale import ReversescaleValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._reversescale.ReversescaleValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergeo/selected/__init__.py b/plotly/validators/scattergeo/selected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/scattergeo/selected/__init__.py
+++ b/plotly/validators/scattergeo/selected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scattergeo/selected/marker/__init__.py b/plotly/validators/scattergeo/selected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scattergeo/selected/marker/__init__.py
+++ b/plotly/validators/scattergeo/selected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergeo/selected/textfont/__init__.py b/plotly/validators/scattergeo/selected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/scattergeo/selected/textfont/__init__.py
+++ b/plotly/validators/scattergeo/selected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scattergeo/stream/__init__.py b/plotly/validators/scattergeo/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/scattergeo/stream/__init__.py
+++ b/plotly/validators/scattergeo/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/scattergeo/textfont/__init__.py b/plotly/validators/scattergeo/textfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scattergeo/textfont/__init__.py
+++ b/plotly/validators/scattergeo/textfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergeo/unselected/__init__.py b/plotly/validators/scattergeo/unselected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/scattergeo/unselected/__init__.py
+++ b/plotly/validators/scattergeo/unselected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scattergeo/unselected/marker/__init__.py b/plotly/validators/scattergeo/unselected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scattergeo/unselected/marker/__init__.py
+++ b/plotly/validators/scattergeo/unselected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergeo/unselected/textfont/__init__.py b/plotly/validators/scattergeo/unselected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/scattergeo/unselected/textfont/__init__.py
+++ b/plotly/validators/scattergeo/unselected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scattergl/__init__.py b/plotly/validators/scattergl/__init__.py
index af7ff671ae5..04ea09cc2c9 100644
--- a/plotly/validators/scattergl/__init__.py
+++ b/plotly/validators/scattergl/__init__.py
@@ -1,72 +1,139 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._ysrc.YsrcValidator",
-        "._yperiodalignment.YperiodalignmentValidator",
-        "._yperiod0.Yperiod0Validator",
-        "._yperiod.YperiodValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._ycalendar.YcalendarValidator",
-        "._yaxis.YaxisValidator",
-        "._y0.Y0Validator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xperiodalignment.XperiodalignmentValidator",
-        "._xperiod0.Xperiod0Validator",
-        "._xperiod.XperiodValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xcalendar.XcalendarValidator",
-        "._xaxis.XaxisValidator",
-        "._x0.X0Validator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textpositionsrc.TextpositionsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._mode.ModeValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._fillcolor.FillcolorValidator",
-        "._fill.FillValidator",
-        "._error_y.Error_YValidator",
-        "._error_x.Error_XValidator",
-        "._dy.DyValidator",
-        "._dx.DxValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._connectgaps.ConnectgapsValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._ysrc import YsrcValidator
+    from ._yperiodalignment import YperiodalignmentValidator
+    from ._yperiod0 import Yperiod0Validator
+    from ._yperiod import YperiodValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._ycalendar import YcalendarValidator
+    from ._yaxis import YaxisValidator
+    from ._y0 import Y0Validator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xperiodalignment import XperiodalignmentValidator
+    from ._xperiod0 import Xperiod0Validator
+    from ._xperiod import XperiodValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xcalendar import XcalendarValidator
+    from ._xaxis import XaxisValidator
+    from ._x0 import X0Validator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textpositionsrc import TextpositionsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._mode import ModeValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._fillcolor import FillcolorValidator
+    from ._fill import FillValidator
+    from ._error_y import Error_YValidator
+    from ._error_x import Error_XValidator
+    from ._dy import DyValidator
+    from ._dx import DxValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._connectgaps import ConnectgapsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._ysrc.YsrcValidator",
+            "._yperiodalignment.YperiodalignmentValidator",
+            "._yperiod0.Yperiod0Validator",
+            "._yperiod.YperiodValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._ycalendar.YcalendarValidator",
+            "._yaxis.YaxisValidator",
+            "._y0.Y0Validator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xperiodalignment.XperiodalignmentValidator",
+            "._xperiod0.Xperiod0Validator",
+            "._xperiod.XperiodValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xcalendar.XcalendarValidator",
+            "._xaxis.XaxisValidator",
+            "._x0.X0Validator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textpositionsrc.TextpositionsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._mode.ModeValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._fillcolor.FillcolorValidator",
+            "._fill.FillValidator",
+            "._error_y.Error_YValidator",
+            "._error_x.Error_XValidator",
+            "._dy.DyValidator",
+            "._dx.DxValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._connectgaps.ConnectgapsValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergl/error_x/__init__.py b/plotly/validators/scattergl/error_x/__init__.py
index 62838bdb731..2e3ce59d75d 100644
--- a/plotly/validators/scattergl/error_x/__init__.py
+++ b/plotly/validators/scattergl/error_x/__init__.py
@@ -1,24 +1,43 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._valueminus.ValueminusValidator",
-        "._value.ValueValidator",
-        "._type.TypeValidator",
-        "._tracerefminus.TracerefminusValidator",
-        "._traceref.TracerefValidator",
-        "._thickness.ThicknessValidator",
-        "._symmetric.SymmetricValidator",
-        "._copy_ystyle.Copy_YstyleValidator",
-        "._color.ColorValidator",
-        "._arraysrc.ArraysrcValidator",
-        "._arrayminussrc.ArrayminussrcValidator",
-        "._arrayminus.ArrayminusValidator",
-        "._array.ArrayValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._valueminus import ValueminusValidator
+    from ._value import ValueValidator
+    from ._type import TypeValidator
+    from ._tracerefminus import TracerefminusValidator
+    from ._traceref import TracerefValidator
+    from ._thickness import ThicknessValidator
+    from ._symmetric import SymmetricValidator
+    from ._copy_ystyle import Copy_YstyleValidator
+    from ._color import ColorValidator
+    from ._arraysrc import ArraysrcValidator
+    from ._arrayminussrc import ArrayminussrcValidator
+    from ._arrayminus import ArrayminusValidator
+    from ._array import ArrayValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._valueminus.ValueminusValidator",
+            "._value.ValueValidator",
+            "._type.TypeValidator",
+            "._tracerefminus.TracerefminusValidator",
+            "._traceref.TracerefValidator",
+            "._thickness.ThicknessValidator",
+            "._symmetric.SymmetricValidator",
+            "._copy_ystyle.Copy_YstyleValidator",
+            "._color.ColorValidator",
+            "._arraysrc.ArraysrcValidator",
+            "._arrayminussrc.ArrayminussrcValidator",
+            "._arrayminus.ArrayminusValidator",
+            "._array.ArrayValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergl/error_y/__init__.py b/plotly/validators/scattergl/error_y/__init__.py
index ea49850d5fe..eff09cd6a0a 100644
--- a/plotly/validators/scattergl/error_y/__init__.py
+++ b/plotly/validators/scattergl/error_y/__init__.py
@@ -1,23 +1,41 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._valueminus.ValueminusValidator",
-        "._value.ValueValidator",
-        "._type.TypeValidator",
-        "._tracerefminus.TracerefminusValidator",
-        "._traceref.TracerefValidator",
-        "._thickness.ThicknessValidator",
-        "._symmetric.SymmetricValidator",
-        "._color.ColorValidator",
-        "._arraysrc.ArraysrcValidator",
-        "._arrayminussrc.ArrayminussrcValidator",
-        "._arrayminus.ArrayminusValidator",
-        "._array.ArrayValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._valueminus import ValueminusValidator
+    from ._value import ValueValidator
+    from ._type import TypeValidator
+    from ._tracerefminus import TracerefminusValidator
+    from ._traceref import TracerefValidator
+    from ._thickness import ThicknessValidator
+    from ._symmetric import SymmetricValidator
+    from ._color import ColorValidator
+    from ._arraysrc import ArraysrcValidator
+    from ._arrayminussrc import ArrayminussrcValidator
+    from ._arrayminus import ArrayminusValidator
+    from ._array import ArrayValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._valueminus.ValueminusValidator",
+            "._value.ValueValidator",
+            "._type.TypeValidator",
+            "._tracerefminus.TracerefminusValidator",
+            "._traceref.TracerefValidator",
+            "._thickness.ThicknessValidator",
+            "._symmetric.SymmetricValidator",
+            "._color.ColorValidator",
+            "._arraysrc.ArraysrcValidator",
+            "._arrayminussrc.ArrayminussrcValidator",
+            "._arrayminus.ArrayminusValidator",
+            "._array.ArrayValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergl/hoverlabel/__init__.py b/plotly/validators/scattergl/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/scattergl/hoverlabel/__init__.py
+++ b/plotly/validators/scattergl/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergl/hoverlabel/font/__init__.py b/plotly/validators/scattergl/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scattergl/hoverlabel/font/__init__.py
+++ b/plotly/validators/scattergl/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergl/legendgrouptitle/__init__.py b/plotly/validators/scattergl/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/scattergl/legendgrouptitle/__init__.py
+++ b/plotly/validators/scattergl/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/scattergl/legendgrouptitle/font/__init__.py b/plotly/validators/scattergl/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattergl/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/scattergl/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergl/line/__init__.py b/plotly/validators/scattergl/line/__init__.py
index e1adabc8b68..84b4574bb5e 100644
--- a/plotly/validators/scattergl/line/__init__.py
+++ b/plotly/validators/scattergl/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._shape.ShapeValidator",
-        "._dash.DashValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._shape import ShapeValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._shape.ShapeValidator",
+            "._dash.DashValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergl/marker/__init__.py b/plotly/validators/scattergl/marker/__init__.py
index ec56080f713..dc48879d6be 100644
--- a/plotly/validators/scattergl/marker/__init__.py
+++ b/plotly/validators/scattergl/marker/__init__.py
@@ -1,33 +1,61 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._symbolsrc.SymbolsrcValidator",
-        "._symbol.SymbolValidator",
-        "._sizesrc.SizesrcValidator",
-        "._sizeref.SizerefValidator",
-        "._sizemode.SizemodeValidator",
-        "._sizemin.SizeminValidator",
-        "._size.SizeValidator",
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._line.LineValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-        "._anglesrc.AnglesrcValidator",
-        "._angle.AngleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._symbolsrc import SymbolsrcValidator
+    from ._symbol import SymbolValidator
+    from ._sizesrc import SizesrcValidator
+    from ._sizeref import SizerefValidator
+    from ._sizemode import SizemodeValidator
+    from ._sizemin import SizeminValidator
+    from ._size import SizeValidator
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._line import LineValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+    from ._anglesrc import AnglesrcValidator
+    from ._angle import AngleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._symbolsrc.SymbolsrcValidator",
+            "._symbol.SymbolValidator",
+            "._sizesrc.SizesrcValidator",
+            "._sizeref.SizerefValidator",
+            "._sizemode.SizemodeValidator",
+            "._sizemin.SizeminValidator",
+            "._size.SizeValidator",
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._line.LineValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+            "._anglesrc.AnglesrcValidator",
+            "._angle.AngleValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergl/marker/colorbar/__init__.py b/plotly/validators/scattergl/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/scattergl/marker/colorbar/__init__.py
+++ b/plotly/validators/scattergl/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergl/marker/colorbar/tickfont/__init__.py b/plotly/validators/scattergl/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattergl/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/scattergl/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergl/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/scattergl/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/scattergl/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/scattergl/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergl/marker/colorbar/title/__init__.py b/plotly/validators/scattergl/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/scattergl/marker/colorbar/title/__init__.py
+++ b/plotly/validators/scattergl/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/scattergl/marker/colorbar/title/font/__init__.py b/plotly/validators/scattergl/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattergl/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/scattergl/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergl/marker/line/__init__.py b/plotly/validators/scattergl/marker/line/__init__.py
index 4ba3ea340b5..facbe33f884 100644
--- a/plotly/validators/scattergl/marker/line/__init__.py
+++ b/plotly/validators/scattergl/marker/line/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._reversescale.ReversescaleValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._reversescale import ReversescaleValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._reversescale.ReversescaleValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergl/selected/__init__.py b/plotly/validators/scattergl/selected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/scattergl/selected/__init__.py
+++ b/plotly/validators/scattergl/selected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scattergl/selected/marker/__init__.py b/plotly/validators/scattergl/selected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scattergl/selected/marker/__init__.py
+++ b/plotly/validators/scattergl/selected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergl/selected/textfont/__init__.py b/plotly/validators/scattergl/selected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/scattergl/selected/textfont/__init__.py
+++ b/plotly/validators/scattergl/selected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scattergl/stream/__init__.py b/plotly/validators/scattergl/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/scattergl/stream/__init__.py
+++ b/plotly/validators/scattergl/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/scattergl/textfont/__init__.py b/plotly/validators/scattergl/textfont/__init__.py
index 35d589957bd..d87c37ff7aa 100644
--- a/plotly/validators/scattergl/textfont/__init__.py
+++ b/plotly/validators/scattergl/textfont/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergl/unselected/__init__.py b/plotly/validators/scattergl/unselected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/scattergl/unselected/__init__.py
+++ b/plotly/validators/scattergl/unselected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scattergl/unselected/marker/__init__.py b/plotly/validators/scattergl/unselected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scattergl/unselected/marker/__init__.py
+++ b/plotly/validators/scattergl/unselected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattergl/unselected/textfont/__init__.py b/plotly/validators/scattergl/unselected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/scattergl/unselected/textfont/__init__.py
+++ b/plotly/validators/scattergl/unselected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scattermap/__init__.py b/plotly/validators/scattermap/__init__.py
index 8d6c1c2da7e..5abe04051d4 100644
--- a/plotly/validators/scattermap/__init__.py
+++ b/plotly/validators/scattermap/__init__.py
@@ -1,56 +1,107 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._subplot.SubplotValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._mode.ModeValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._lonsrc.LonsrcValidator",
-        "._lon.LonValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._latsrc.LatsrcValidator",
-        "._lat.LatValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._fillcolor.FillcolorValidator",
-        "._fill.FillValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._connectgaps.ConnectgapsValidator",
-        "._cluster.ClusterValidator",
-        "._below.BelowValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._subplot import SubplotValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._mode import ModeValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._lonsrc import LonsrcValidator
+    from ._lon import LonValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._latsrc import LatsrcValidator
+    from ._lat import LatValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._fillcolor import FillcolorValidator
+    from ._fill import FillValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._connectgaps import ConnectgapsValidator
+    from ._cluster import ClusterValidator
+    from ._below import BelowValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._subplot.SubplotValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._mode.ModeValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._lonsrc.LonsrcValidator",
+            "._lon.LonValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._latsrc.LatsrcValidator",
+            "._lat.LatValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._fillcolor.FillcolorValidator",
+            "._fill.FillValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._connectgaps.ConnectgapsValidator",
+            "._cluster.ClusterValidator",
+            "._below.BelowValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermap/cluster/__init__.py b/plotly/validators/scattermap/cluster/__init__.py
index 34fca2d007a..e8f530f8e9e 100644
--- a/plotly/validators/scattermap/cluster/__init__.py
+++ b/plotly/validators/scattermap/cluster/__init__.py
@@ -1,19 +1,33 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._stepsrc.StepsrcValidator",
-        "._step.StepValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._maxzoom.MaxzoomValidator",
-        "._enabled.EnabledValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._stepsrc import StepsrcValidator
+    from ._step import StepValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._maxzoom import MaxzoomValidator
+    from ._enabled import EnabledValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._stepsrc.StepsrcValidator",
+            "._step.StepValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._maxzoom.MaxzoomValidator",
+            "._enabled.EnabledValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermap/hoverlabel/__init__.py b/plotly/validators/scattermap/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/scattermap/hoverlabel/__init__.py
+++ b/plotly/validators/scattermap/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermap/hoverlabel/font/__init__.py b/plotly/validators/scattermap/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scattermap/hoverlabel/font/__init__.py
+++ b/plotly/validators/scattermap/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermap/legendgrouptitle/__init__.py b/plotly/validators/scattermap/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/scattermap/legendgrouptitle/__init__.py
+++ b/plotly/validators/scattermap/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/scattermap/legendgrouptitle/font/__init__.py b/plotly/validators/scattermap/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattermap/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/scattermap/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermap/line/__init__.py b/plotly/validators/scattermap/line/__init__.py
index d49328faace..63a516578b5 100644
--- a/plotly/validators/scattermap/line/__init__.py
+++ b/plotly/validators/scattermap/line/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scattermap/marker/__init__.py b/plotly/validators/scattermap/marker/__init__.py
index 22d40af5a8c..1560474e41f 100644
--- a/plotly/validators/scattermap/marker/__init__.py
+++ b/plotly/validators/scattermap/marker/__init__.py
@@ -1,33 +1,61 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._symbolsrc.SymbolsrcValidator",
-        "._symbol.SymbolValidator",
-        "._sizesrc.SizesrcValidator",
-        "._sizeref.SizerefValidator",
-        "._sizemode.SizemodeValidator",
-        "._sizemin.SizeminValidator",
-        "._size.SizeValidator",
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-        "._anglesrc.AnglesrcValidator",
-        "._angle.AngleValidator",
-        "._allowoverlap.AllowoverlapValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._symbolsrc import SymbolsrcValidator
+    from ._symbol import SymbolValidator
+    from ._sizesrc import SizesrcValidator
+    from ._sizeref import SizerefValidator
+    from ._sizemode import SizemodeValidator
+    from ._sizemin import SizeminValidator
+    from ._size import SizeValidator
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+    from ._anglesrc import AnglesrcValidator
+    from ._angle import AngleValidator
+    from ._allowoverlap import AllowoverlapValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._symbolsrc.SymbolsrcValidator",
+            "._symbol.SymbolValidator",
+            "._sizesrc.SizesrcValidator",
+            "._sizeref.SizerefValidator",
+            "._sizemode.SizemodeValidator",
+            "._sizemin.SizeminValidator",
+            "._size.SizeValidator",
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+            "._anglesrc.AnglesrcValidator",
+            "._angle.AngleValidator",
+            "._allowoverlap.AllowoverlapValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermap/marker/colorbar/__init__.py b/plotly/validators/scattermap/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/scattermap/marker/colorbar/__init__.py
+++ b/plotly/validators/scattermap/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermap/marker/colorbar/tickfont/__init__.py b/plotly/validators/scattermap/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattermap/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/scattermap/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermap/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/scattermap/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/scattermap/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/scattermap/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermap/marker/colorbar/title/__init__.py b/plotly/validators/scattermap/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/scattermap/marker/colorbar/title/__init__.py
+++ b/plotly/validators/scattermap/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/scattermap/marker/colorbar/title/font/__init__.py b/plotly/validators/scattermap/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattermap/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/scattermap/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermap/selected/__init__.py b/plotly/validators/scattermap/selected/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/scattermap/selected/__init__.py
+++ b/plotly/validators/scattermap/selected/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scattermap/selected/marker/__init__.py b/plotly/validators/scattermap/selected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scattermap/selected/marker/__init__.py
+++ b/plotly/validators/scattermap/selected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermap/stream/__init__.py b/plotly/validators/scattermap/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/scattermap/stream/__init__.py
+++ b/plotly/validators/scattermap/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/scattermap/textfont/__init__.py b/plotly/validators/scattermap/textfont/__init__.py
index 13cbf9ae54e..9301c0688ce 100644
--- a/plotly/validators/scattermap/textfont/__init__.py
+++ b/plotly/validators/scattermap/textfont/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermap/unselected/__init__.py b/plotly/validators/scattermap/unselected/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/scattermap/unselected/__init__.py
+++ b/plotly/validators/scattermap/unselected/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scattermap/unselected/marker/__init__.py b/plotly/validators/scattermap/unselected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scattermap/unselected/marker/__init__.py
+++ b/plotly/validators/scattermap/unselected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermapbox/__init__.py b/plotly/validators/scattermapbox/__init__.py
index 8d6c1c2da7e..5abe04051d4 100644
--- a/plotly/validators/scattermapbox/__init__.py
+++ b/plotly/validators/scattermapbox/__init__.py
@@ -1,56 +1,107 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._subplot.SubplotValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._mode.ModeValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._lonsrc.LonsrcValidator",
-        "._lon.LonValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._latsrc.LatsrcValidator",
-        "._lat.LatValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._fillcolor.FillcolorValidator",
-        "._fill.FillValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._connectgaps.ConnectgapsValidator",
-        "._cluster.ClusterValidator",
-        "._below.BelowValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._subplot import SubplotValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._mode import ModeValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._lonsrc import LonsrcValidator
+    from ._lon import LonValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._latsrc import LatsrcValidator
+    from ._lat import LatValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._fillcolor import FillcolorValidator
+    from ._fill import FillValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._connectgaps import ConnectgapsValidator
+    from ._cluster import ClusterValidator
+    from ._below import BelowValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._subplot.SubplotValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._mode.ModeValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._lonsrc.LonsrcValidator",
+            "._lon.LonValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._latsrc.LatsrcValidator",
+            "._lat.LatValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._fillcolor.FillcolorValidator",
+            "._fill.FillValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._connectgaps.ConnectgapsValidator",
+            "._cluster.ClusterValidator",
+            "._below.BelowValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermapbox/cluster/__init__.py b/plotly/validators/scattermapbox/cluster/__init__.py
index 34fca2d007a..e8f530f8e9e 100644
--- a/plotly/validators/scattermapbox/cluster/__init__.py
+++ b/plotly/validators/scattermapbox/cluster/__init__.py
@@ -1,19 +1,33 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._stepsrc.StepsrcValidator",
-        "._step.StepValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._maxzoom.MaxzoomValidator",
-        "._enabled.EnabledValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._stepsrc import StepsrcValidator
+    from ._step import StepValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._maxzoom import MaxzoomValidator
+    from ._enabled import EnabledValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._stepsrc.StepsrcValidator",
+            "._step.StepValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._maxzoom.MaxzoomValidator",
+            "._enabled.EnabledValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermapbox/hoverlabel/__init__.py b/plotly/validators/scattermapbox/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/scattermapbox/hoverlabel/__init__.py
+++ b/plotly/validators/scattermapbox/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermapbox/hoverlabel/font/__init__.py b/plotly/validators/scattermapbox/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scattermapbox/hoverlabel/font/__init__.py
+++ b/plotly/validators/scattermapbox/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermapbox/legendgrouptitle/__init__.py b/plotly/validators/scattermapbox/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/scattermapbox/legendgrouptitle/__init__.py
+++ b/plotly/validators/scattermapbox/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/scattermapbox/legendgrouptitle/font/__init__.py b/plotly/validators/scattermapbox/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattermapbox/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/scattermapbox/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermapbox/line/__init__.py b/plotly/validators/scattermapbox/line/__init__.py
index d49328faace..63a516578b5 100644
--- a/plotly/validators/scattermapbox/line/__init__.py
+++ b/plotly/validators/scattermapbox/line/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scattermapbox/marker/__init__.py b/plotly/validators/scattermapbox/marker/__init__.py
index 22d40af5a8c..1560474e41f 100644
--- a/plotly/validators/scattermapbox/marker/__init__.py
+++ b/plotly/validators/scattermapbox/marker/__init__.py
@@ -1,33 +1,61 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._symbolsrc.SymbolsrcValidator",
-        "._symbol.SymbolValidator",
-        "._sizesrc.SizesrcValidator",
-        "._sizeref.SizerefValidator",
-        "._sizemode.SizemodeValidator",
-        "._sizemin.SizeminValidator",
-        "._size.SizeValidator",
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-        "._anglesrc.AnglesrcValidator",
-        "._angle.AngleValidator",
-        "._allowoverlap.AllowoverlapValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._symbolsrc import SymbolsrcValidator
+    from ._symbol import SymbolValidator
+    from ._sizesrc import SizesrcValidator
+    from ._sizeref import SizerefValidator
+    from ._sizemode import SizemodeValidator
+    from ._sizemin import SizeminValidator
+    from ._size import SizeValidator
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+    from ._anglesrc import AnglesrcValidator
+    from ._angle import AngleValidator
+    from ._allowoverlap import AllowoverlapValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._symbolsrc.SymbolsrcValidator",
+            "._symbol.SymbolValidator",
+            "._sizesrc.SizesrcValidator",
+            "._sizeref.SizerefValidator",
+            "._sizemode.SizemodeValidator",
+            "._sizemin.SizeminValidator",
+            "._size.SizeValidator",
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+            "._anglesrc.AnglesrcValidator",
+            "._angle.AngleValidator",
+            "._allowoverlap.AllowoverlapValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermapbox/marker/colorbar/__init__.py b/plotly/validators/scattermapbox/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/scattermapbox/marker/colorbar/__init__.py
+++ b/plotly/validators/scattermapbox/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermapbox/marker/colorbar/tickfont/__init__.py b/plotly/validators/scattermapbox/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattermapbox/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/scattermapbox/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermapbox/marker/colorbar/title/__init__.py b/plotly/validators/scattermapbox/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/scattermapbox/marker/colorbar/title/__init__.py
+++ b/plotly/validators/scattermapbox/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/scattermapbox/marker/colorbar/title/font/__init__.py b/plotly/validators/scattermapbox/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattermapbox/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/scattermapbox/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermapbox/selected/__init__.py b/plotly/validators/scattermapbox/selected/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/scattermapbox/selected/__init__.py
+++ b/plotly/validators/scattermapbox/selected/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scattermapbox/selected/marker/__init__.py b/plotly/validators/scattermapbox/selected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scattermapbox/selected/marker/__init__.py
+++ b/plotly/validators/scattermapbox/selected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermapbox/stream/__init__.py b/plotly/validators/scattermapbox/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/scattermapbox/stream/__init__.py
+++ b/plotly/validators/scattermapbox/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/scattermapbox/textfont/__init__.py b/plotly/validators/scattermapbox/textfont/__init__.py
index 13cbf9ae54e..9301c0688ce 100644
--- a/plotly/validators/scattermapbox/textfont/__init__.py
+++ b/plotly/validators/scattermapbox/textfont/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattermapbox/unselected/__init__.py b/plotly/validators/scattermapbox/unselected/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/scattermapbox/unselected/__init__.py
+++ b/plotly/validators/scattermapbox/unselected/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scattermapbox/unselected/marker/__init__.py b/plotly/validators/scattermapbox/unselected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scattermapbox/unselected/marker/__init__.py
+++ b/plotly/validators/scattermapbox/unselected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolar/__init__.py b/plotly/validators/scatterpolar/__init__.py
index eeedcc82c29..ce934b10c88 100644
--- a/plotly/validators/scatterpolar/__init__.py
+++ b/plotly/validators/scatterpolar/__init__.py
@@ -1,62 +1,119 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._thetaunit.ThetaunitValidator",
-        "._thetasrc.ThetasrcValidator",
-        "._theta0.Theta0Validator",
-        "._theta.ThetaValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textpositionsrc.TextpositionsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._subplot.SubplotValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._rsrc.RsrcValidator",
-        "._r0.R0Validator",
-        "._r.RValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._mode.ModeValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoveron.HoveronValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._fillcolor.FillcolorValidator",
-        "._fill.FillValidator",
-        "._dtheta.DthetaValidator",
-        "._dr.DrValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._connectgaps.ConnectgapsValidator",
-        "._cliponaxis.CliponaxisValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._thetaunit import ThetaunitValidator
+    from ._thetasrc import ThetasrcValidator
+    from ._theta0 import Theta0Validator
+    from ._theta import ThetaValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textpositionsrc import TextpositionsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._subplot import SubplotValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._rsrc import RsrcValidator
+    from ._r0 import R0Validator
+    from ._r import RValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._mode import ModeValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoveron import HoveronValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._fillcolor import FillcolorValidator
+    from ._fill import FillValidator
+    from ._dtheta import DthetaValidator
+    from ._dr import DrValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._connectgaps import ConnectgapsValidator
+    from ._cliponaxis import CliponaxisValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._thetaunit.ThetaunitValidator",
+            "._thetasrc.ThetasrcValidator",
+            "._theta0.Theta0Validator",
+            "._theta.ThetaValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textpositionsrc.TextpositionsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._subplot.SubplotValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._rsrc.RsrcValidator",
+            "._r0.R0Validator",
+            "._r.RValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._mode.ModeValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoveron.HoveronValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._fillcolor.FillcolorValidator",
+            "._fill.FillValidator",
+            "._dtheta.DthetaValidator",
+            "._dr.DrValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._connectgaps.ConnectgapsValidator",
+            "._cliponaxis.CliponaxisValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolar/hoverlabel/__init__.py b/plotly/validators/scatterpolar/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/scatterpolar/hoverlabel/__init__.py
+++ b/plotly/validators/scatterpolar/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolar/hoverlabel/font/__init__.py b/plotly/validators/scatterpolar/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scatterpolar/hoverlabel/font/__init__.py
+++ b/plotly/validators/scatterpolar/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolar/legendgrouptitle/__init__.py b/plotly/validators/scatterpolar/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/scatterpolar/legendgrouptitle/__init__.py
+++ b/plotly/validators/scatterpolar/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/scatterpolar/legendgrouptitle/font/__init__.py b/plotly/validators/scatterpolar/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatterpolar/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/scatterpolar/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolar/line/__init__.py b/plotly/validators/scatterpolar/line/__init__.py
index d9c0ff9500d..7045562597a 100644
--- a/plotly/validators/scatterpolar/line/__init__.py
+++ b/plotly/validators/scatterpolar/line/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._smoothing.SmoothingValidator",
-        "._shape.ShapeValidator",
-        "._dash.DashValidator",
-        "._color.ColorValidator",
-        "._backoffsrc.BackoffsrcValidator",
-        "._backoff.BackoffValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._smoothing import SmoothingValidator
+    from ._shape import ShapeValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+    from ._backoffsrc import BackoffsrcValidator
+    from ._backoff import BackoffValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._smoothing.SmoothingValidator",
+            "._shape.ShapeValidator",
+            "._dash.DashValidator",
+            "._color.ColorValidator",
+            "._backoffsrc.BackoffsrcValidator",
+            "._backoff.BackoffValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolar/marker/__init__.py b/plotly/validators/scatterpolar/marker/__init__.py
index fea9868a7bd..8434e73e3f5 100644
--- a/plotly/validators/scatterpolar/marker/__init__.py
+++ b/plotly/validators/scatterpolar/marker/__init__.py
@@ -1,38 +1,71 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._symbolsrc.SymbolsrcValidator",
-        "._symbol.SymbolValidator",
-        "._standoffsrc.StandoffsrcValidator",
-        "._standoff.StandoffValidator",
-        "._sizesrc.SizesrcValidator",
-        "._sizeref.SizerefValidator",
-        "._sizemode.SizemodeValidator",
-        "._sizemin.SizeminValidator",
-        "._size.SizeValidator",
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._maxdisplayed.MaxdisplayedValidator",
-        "._line.LineValidator",
-        "._gradient.GradientValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-        "._anglesrc.AnglesrcValidator",
-        "._angleref.AnglerefValidator",
-        "._angle.AngleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._symbolsrc import SymbolsrcValidator
+    from ._symbol import SymbolValidator
+    from ._standoffsrc import StandoffsrcValidator
+    from ._standoff import StandoffValidator
+    from ._sizesrc import SizesrcValidator
+    from ._sizeref import SizerefValidator
+    from ._sizemode import SizemodeValidator
+    from ._sizemin import SizeminValidator
+    from ._size import SizeValidator
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._maxdisplayed import MaxdisplayedValidator
+    from ._line import LineValidator
+    from ._gradient import GradientValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+    from ._anglesrc import AnglesrcValidator
+    from ._angleref import AnglerefValidator
+    from ._angle import AngleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._symbolsrc.SymbolsrcValidator",
+            "._symbol.SymbolValidator",
+            "._standoffsrc.StandoffsrcValidator",
+            "._standoff.StandoffValidator",
+            "._sizesrc.SizesrcValidator",
+            "._sizeref.SizerefValidator",
+            "._sizemode.SizemodeValidator",
+            "._sizemin.SizeminValidator",
+            "._size.SizeValidator",
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._maxdisplayed.MaxdisplayedValidator",
+            "._line.LineValidator",
+            "._gradient.GradientValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+            "._anglesrc.AnglesrcValidator",
+            "._angleref.AnglerefValidator",
+            "._angle.AngleValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolar/marker/colorbar/__init__.py b/plotly/validators/scatterpolar/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/scatterpolar/marker/colorbar/__init__.py
+++ b/plotly/validators/scatterpolar/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolar/marker/colorbar/tickfont/__init__.py b/plotly/validators/scatterpolar/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatterpolar/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/scatterpolar/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolar/marker/colorbar/title/__init__.py b/plotly/validators/scatterpolar/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/scatterpolar/marker/colorbar/title/__init__.py
+++ b/plotly/validators/scatterpolar/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/scatterpolar/marker/colorbar/title/font/__init__.py b/plotly/validators/scatterpolar/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatterpolar/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/scatterpolar/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolar/marker/gradient/__init__.py b/plotly/validators/scatterpolar/marker/gradient/__init__.py
index f5373e78223..624a280ea46 100644
--- a/plotly/validators/scatterpolar/marker/gradient/__init__.py
+++ b/plotly/validators/scatterpolar/marker/gradient/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._typesrc.TypesrcValidator",
-        "._type.TypeValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._typesrc import TypesrcValidator
+    from ._type import TypeValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._typesrc.TypesrcValidator",
+            "._type.TypeValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolar/marker/line/__init__.py b/plotly/validators/scatterpolar/marker/line/__init__.py
index 4ba3ea340b5..facbe33f884 100644
--- a/plotly/validators/scatterpolar/marker/line/__init__.py
+++ b/plotly/validators/scatterpolar/marker/line/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._reversescale.ReversescaleValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._reversescale import ReversescaleValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._reversescale.ReversescaleValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolar/selected/__init__.py b/plotly/validators/scatterpolar/selected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/scatterpolar/selected/__init__.py
+++ b/plotly/validators/scatterpolar/selected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scatterpolar/selected/marker/__init__.py b/plotly/validators/scatterpolar/selected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scatterpolar/selected/marker/__init__.py
+++ b/plotly/validators/scatterpolar/selected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolar/selected/textfont/__init__.py b/plotly/validators/scatterpolar/selected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/scatterpolar/selected/textfont/__init__.py
+++ b/plotly/validators/scatterpolar/selected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scatterpolar/stream/__init__.py b/plotly/validators/scatterpolar/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/scatterpolar/stream/__init__.py
+++ b/plotly/validators/scatterpolar/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/scatterpolar/textfont/__init__.py b/plotly/validators/scatterpolar/textfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scatterpolar/textfont/__init__.py
+++ b/plotly/validators/scatterpolar/textfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolar/unselected/__init__.py b/plotly/validators/scatterpolar/unselected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/scatterpolar/unselected/__init__.py
+++ b/plotly/validators/scatterpolar/unselected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scatterpolar/unselected/marker/__init__.py b/plotly/validators/scatterpolar/unselected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scatterpolar/unselected/marker/__init__.py
+++ b/plotly/validators/scatterpolar/unselected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolar/unselected/textfont/__init__.py b/plotly/validators/scatterpolar/unselected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/scatterpolar/unselected/textfont/__init__.py
+++ b/plotly/validators/scatterpolar/unselected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scatterpolargl/__init__.py b/plotly/validators/scatterpolargl/__init__.py
index 55efbc3b3bf..69a11c033b3 100644
--- a/plotly/validators/scatterpolargl/__init__.py
+++ b/plotly/validators/scatterpolargl/__init__.py
@@ -1,60 +1,115 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._thetaunit.ThetaunitValidator",
-        "._thetasrc.ThetasrcValidator",
-        "._theta0.Theta0Validator",
-        "._theta.ThetaValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textpositionsrc.TextpositionsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._subplot.SubplotValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._rsrc.RsrcValidator",
-        "._r0.R0Validator",
-        "._r.RValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._mode.ModeValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._fillcolor.FillcolorValidator",
-        "._fill.FillValidator",
-        "._dtheta.DthetaValidator",
-        "._dr.DrValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._connectgaps.ConnectgapsValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._thetaunit import ThetaunitValidator
+    from ._thetasrc import ThetasrcValidator
+    from ._theta0 import Theta0Validator
+    from ._theta import ThetaValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textpositionsrc import TextpositionsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._subplot import SubplotValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._rsrc import RsrcValidator
+    from ._r0 import R0Validator
+    from ._r import RValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._mode import ModeValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._fillcolor import FillcolorValidator
+    from ._fill import FillValidator
+    from ._dtheta import DthetaValidator
+    from ._dr import DrValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._connectgaps import ConnectgapsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._thetaunit.ThetaunitValidator",
+            "._thetasrc.ThetasrcValidator",
+            "._theta0.Theta0Validator",
+            "._theta.ThetaValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textpositionsrc.TextpositionsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._subplot.SubplotValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._rsrc.RsrcValidator",
+            "._r0.R0Validator",
+            "._r.RValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._mode.ModeValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._fillcolor.FillcolorValidator",
+            "._fill.FillValidator",
+            "._dtheta.DthetaValidator",
+            "._dr.DrValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._connectgaps.ConnectgapsValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolargl/hoverlabel/__init__.py b/plotly/validators/scatterpolargl/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/scatterpolargl/hoverlabel/__init__.py
+++ b/plotly/validators/scatterpolargl/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolargl/hoverlabel/font/__init__.py b/plotly/validators/scatterpolargl/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scatterpolargl/hoverlabel/font/__init__.py
+++ b/plotly/validators/scatterpolargl/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolargl/legendgrouptitle/__init__.py b/plotly/validators/scatterpolargl/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/scatterpolargl/legendgrouptitle/__init__.py
+++ b/plotly/validators/scatterpolargl/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/scatterpolargl/legendgrouptitle/font/__init__.py b/plotly/validators/scatterpolargl/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatterpolargl/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/scatterpolargl/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolargl/line/__init__.py b/plotly/validators/scatterpolargl/line/__init__.py
index c5140ef758d..cff41466517 100644
--- a/plotly/validators/scatterpolargl/line/__init__.py
+++ b/plotly/validators/scatterpolargl/line/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
+    )
diff --git a/plotly/validators/scatterpolargl/marker/__init__.py b/plotly/validators/scatterpolargl/marker/__init__.py
index ec56080f713..dc48879d6be 100644
--- a/plotly/validators/scatterpolargl/marker/__init__.py
+++ b/plotly/validators/scatterpolargl/marker/__init__.py
@@ -1,33 +1,61 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._symbolsrc.SymbolsrcValidator",
-        "._symbol.SymbolValidator",
-        "._sizesrc.SizesrcValidator",
-        "._sizeref.SizerefValidator",
-        "._sizemode.SizemodeValidator",
-        "._sizemin.SizeminValidator",
-        "._size.SizeValidator",
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._line.LineValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-        "._anglesrc.AnglesrcValidator",
-        "._angle.AngleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._symbolsrc import SymbolsrcValidator
+    from ._symbol import SymbolValidator
+    from ._sizesrc import SizesrcValidator
+    from ._sizeref import SizerefValidator
+    from ._sizemode import SizemodeValidator
+    from ._sizemin import SizeminValidator
+    from ._size import SizeValidator
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._line import LineValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+    from ._anglesrc import AnglesrcValidator
+    from ._angle import AngleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._symbolsrc.SymbolsrcValidator",
+            "._symbol.SymbolValidator",
+            "._sizesrc.SizesrcValidator",
+            "._sizeref.SizerefValidator",
+            "._sizemode.SizemodeValidator",
+            "._sizemin.SizeminValidator",
+            "._size.SizeValidator",
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._line.LineValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+            "._anglesrc.AnglesrcValidator",
+            "._angle.AngleValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolargl/marker/colorbar/__init__.py b/plotly/validators/scatterpolargl/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/scatterpolargl/marker/colorbar/__init__.py
+++ b/plotly/validators/scatterpolargl/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolargl/marker/colorbar/tickfont/__init__.py b/plotly/validators/scatterpolargl/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatterpolargl/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/scatterpolargl/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolargl/marker/colorbar/title/__init__.py b/plotly/validators/scatterpolargl/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/scatterpolargl/marker/colorbar/title/__init__.py
+++ b/plotly/validators/scatterpolargl/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/scatterpolargl/marker/colorbar/title/font/__init__.py b/plotly/validators/scatterpolargl/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatterpolargl/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/scatterpolargl/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolargl/marker/line/__init__.py b/plotly/validators/scatterpolargl/marker/line/__init__.py
index 4ba3ea340b5..facbe33f884 100644
--- a/plotly/validators/scatterpolargl/marker/line/__init__.py
+++ b/plotly/validators/scatterpolargl/marker/line/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._reversescale.ReversescaleValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._reversescale import ReversescaleValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._reversescale.ReversescaleValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolargl/selected/__init__.py b/plotly/validators/scatterpolargl/selected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/scatterpolargl/selected/__init__.py
+++ b/plotly/validators/scatterpolargl/selected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scatterpolargl/selected/marker/__init__.py b/plotly/validators/scatterpolargl/selected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scatterpolargl/selected/marker/__init__.py
+++ b/plotly/validators/scatterpolargl/selected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolargl/selected/textfont/__init__.py b/plotly/validators/scatterpolargl/selected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/scatterpolargl/selected/textfont/__init__.py
+++ b/plotly/validators/scatterpolargl/selected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scatterpolargl/stream/__init__.py b/plotly/validators/scatterpolargl/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/scatterpolargl/stream/__init__.py
+++ b/plotly/validators/scatterpolargl/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/scatterpolargl/textfont/__init__.py b/plotly/validators/scatterpolargl/textfont/__init__.py
index 35d589957bd..d87c37ff7aa 100644
--- a/plotly/validators/scatterpolargl/textfont/__init__.py
+++ b/plotly/validators/scatterpolargl/textfont/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolargl/unselected/__init__.py b/plotly/validators/scatterpolargl/unselected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/scatterpolargl/unselected/__init__.py
+++ b/plotly/validators/scatterpolargl/unselected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scatterpolargl/unselected/marker/__init__.py b/plotly/validators/scatterpolargl/unselected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scatterpolargl/unselected/marker/__init__.py
+++ b/plotly/validators/scatterpolargl/unselected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterpolargl/unselected/textfont/__init__.py b/plotly/validators/scatterpolargl/unselected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/scatterpolargl/unselected/textfont/__init__.py
+++ b/plotly/validators/scatterpolargl/unselected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scattersmith/__init__.py b/plotly/validators/scattersmith/__init__.py
index f9c038ac508..4dc55c20dd6 100644
--- a/plotly/validators/scattersmith/__init__.py
+++ b/plotly/validators/scattersmith/__init__.py
@@ -1,57 +1,109 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textpositionsrc.TextpositionsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._subplot.SubplotValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._realsrc.RealsrcValidator",
-        "._real.RealValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._mode.ModeValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._imagsrc.ImagsrcValidator",
-        "._imag.ImagValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoveron.HoveronValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._fillcolor.FillcolorValidator",
-        "._fill.FillValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._connectgaps.ConnectgapsValidator",
-        "._cliponaxis.CliponaxisValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textpositionsrc import TextpositionsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._subplot import SubplotValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._realsrc import RealsrcValidator
+    from ._real import RealValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._mode import ModeValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._imagsrc import ImagsrcValidator
+    from ._imag import ImagValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoveron import HoveronValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._fillcolor import FillcolorValidator
+    from ._fill import FillValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._connectgaps import ConnectgapsValidator
+    from ._cliponaxis import CliponaxisValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textpositionsrc.TextpositionsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._subplot.SubplotValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._realsrc.RealsrcValidator",
+            "._real.RealValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._mode.ModeValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._imagsrc.ImagsrcValidator",
+            "._imag.ImagValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoveron.HoveronValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._fillcolor.FillcolorValidator",
+            "._fill.FillValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._connectgaps.ConnectgapsValidator",
+            "._cliponaxis.CliponaxisValidator",
+        ],
+    )
diff --git a/plotly/validators/scattersmith/hoverlabel/__init__.py b/plotly/validators/scattersmith/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/scattersmith/hoverlabel/__init__.py
+++ b/plotly/validators/scattersmith/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/scattersmith/hoverlabel/font/__init__.py b/plotly/validators/scattersmith/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scattersmith/hoverlabel/font/__init__.py
+++ b/plotly/validators/scattersmith/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattersmith/legendgrouptitle/__init__.py b/plotly/validators/scattersmith/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/scattersmith/legendgrouptitle/__init__.py
+++ b/plotly/validators/scattersmith/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/scattersmith/legendgrouptitle/font/__init__.py b/plotly/validators/scattersmith/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattersmith/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/scattersmith/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattersmith/line/__init__.py b/plotly/validators/scattersmith/line/__init__.py
index d9c0ff9500d..7045562597a 100644
--- a/plotly/validators/scattersmith/line/__init__.py
+++ b/plotly/validators/scattersmith/line/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._smoothing.SmoothingValidator",
-        "._shape.ShapeValidator",
-        "._dash.DashValidator",
-        "._color.ColorValidator",
-        "._backoffsrc.BackoffsrcValidator",
-        "._backoff.BackoffValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._smoothing import SmoothingValidator
+    from ._shape import ShapeValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+    from ._backoffsrc import BackoffsrcValidator
+    from ._backoff import BackoffValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._smoothing.SmoothingValidator",
+            "._shape.ShapeValidator",
+            "._dash.DashValidator",
+            "._color.ColorValidator",
+            "._backoffsrc.BackoffsrcValidator",
+            "._backoff.BackoffValidator",
+        ],
+    )
diff --git a/plotly/validators/scattersmith/marker/__init__.py b/plotly/validators/scattersmith/marker/__init__.py
index fea9868a7bd..8434e73e3f5 100644
--- a/plotly/validators/scattersmith/marker/__init__.py
+++ b/plotly/validators/scattersmith/marker/__init__.py
@@ -1,38 +1,71 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._symbolsrc.SymbolsrcValidator",
-        "._symbol.SymbolValidator",
-        "._standoffsrc.StandoffsrcValidator",
-        "._standoff.StandoffValidator",
-        "._sizesrc.SizesrcValidator",
-        "._sizeref.SizerefValidator",
-        "._sizemode.SizemodeValidator",
-        "._sizemin.SizeminValidator",
-        "._size.SizeValidator",
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._maxdisplayed.MaxdisplayedValidator",
-        "._line.LineValidator",
-        "._gradient.GradientValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-        "._anglesrc.AnglesrcValidator",
-        "._angleref.AnglerefValidator",
-        "._angle.AngleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._symbolsrc import SymbolsrcValidator
+    from ._symbol import SymbolValidator
+    from ._standoffsrc import StandoffsrcValidator
+    from ._standoff import StandoffValidator
+    from ._sizesrc import SizesrcValidator
+    from ._sizeref import SizerefValidator
+    from ._sizemode import SizemodeValidator
+    from ._sizemin import SizeminValidator
+    from ._size import SizeValidator
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._maxdisplayed import MaxdisplayedValidator
+    from ._line import LineValidator
+    from ._gradient import GradientValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+    from ._anglesrc import AnglesrcValidator
+    from ._angleref import AnglerefValidator
+    from ._angle import AngleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._symbolsrc.SymbolsrcValidator",
+            "._symbol.SymbolValidator",
+            "._standoffsrc.StandoffsrcValidator",
+            "._standoff.StandoffValidator",
+            "._sizesrc.SizesrcValidator",
+            "._sizeref.SizerefValidator",
+            "._sizemode.SizemodeValidator",
+            "._sizemin.SizeminValidator",
+            "._size.SizeValidator",
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._maxdisplayed.MaxdisplayedValidator",
+            "._line.LineValidator",
+            "._gradient.GradientValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+            "._anglesrc.AnglesrcValidator",
+            "._angleref.AnglerefValidator",
+            "._angle.AngleValidator",
+        ],
+    )
diff --git a/plotly/validators/scattersmith/marker/colorbar/__init__.py b/plotly/validators/scattersmith/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/scattersmith/marker/colorbar/__init__.py
+++ b/plotly/validators/scattersmith/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattersmith/marker/colorbar/tickfont/__init__.py b/plotly/validators/scattersmith/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattersmith/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/scattersmith/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattersmith/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/scattersmith/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/scattersmith/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/scattersmith/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/scattersmith/marker/colorbar/title/__init__.py b/plotly/validators/scattersmith/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/scattersmith/marker/colorbar/title/__init__.py
+++ b/plotly/validators/scattersmith/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/scattersmith/marker/colorbar/title/font/__init__.py b/plotly/validators/scattersmith/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scattersmith/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/scattersmith/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattersmith/marker/gradient/__init__.py b/plotly/validators/scattersmith/marker/gradient/__init__.py
index f5373e78223..624a280ea46 100644
--- a/plotly/validators/scattersmith/marker/gradient/__init__.py
+++ b/plotly/validators/scattersmith/marker/gradient/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._typesrc.TypesrcValidator",
-        "._type.TypeValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._typesrc import TypesrcValidator
+    from ._type import TypeValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._typesrc.TypesrcValidator",
+            "._type.TypeValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattersmith/marker/line/__init__.py b/plotly/validators/scattersmith/marker/line/__init__.py
index 4ba3ea340b5..facbe33f884 100644
--- a/plotly/validators/scattersmith/marker/line/__init__.py
+++ b/plotly/validators/scattersmith/marker/line/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._reversescale.ReversescaleValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._reversescale import ReversescaleValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._reversescale.ReversescaleValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/scattersmith/selected/__init__.py b/plotly/validators/scattersmith/selected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/scattersmith/selected/__init__.py
+++ b/plotly/validators/scattersmith/selected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scattersmith/selected/marker/__init__.py b/plotly/validators/scattersmith/selected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scattersmith/selected/marker/__init__.py
+++ b/plotly/validators/scattersmith/selected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattersmith/selected/textfont/__init__.py b/plotly/validators/scattersmith/selected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/scattersmith/selected/textfont/__init__.py
+++ b/plotly/validators/scattersmith/selected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scattersmith/stream/__init__.py b/plotly/validators/scattersmith/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/scattersmith/stream/__init__.py
+++ b/plotly/validators/scattersmith/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/scattersmith/textfont/__init__.py b/plotly/validators/scattersmith/textfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scattersmith/textfont/__init__.py
+++ b/plotly/validators/scattersmith/textfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattersmith/unselected/__init__.py b/plotly/validators/scattersmith/unselected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/scattersmith/unselected/__init__.py
+++ b/plotly/validators/scattersmith/unselected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scattersmith/unselected/marker/__init__.py b/plotly/validators/scattersmith/unselected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scattersmith/unselected/marker/__init__.py
+++ b/plotly/validators/scattersmith/unselected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scattersmith/unselected/textfont/__init__.py b/plotly/validators/scattersmith/unselected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/scattersmith/unselected/textfont/__init__.py
+++ b/plotly/validators/scattersmith/unselected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scatterternary/__init__.py b/plotly/validators/scatterternary/__init__.py
index dbdfd03c850..e99da6064dc 100644
--- a/plotly/validators/scatterternary/__init__.py
+++ b/plotly/validators/scatterternary/__init__.py
@@ -1,60 +1,115 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textpositionsrc.TextpositionsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._sum.SumValidator",
-        "._subplot.SubplotValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._mode.ModeValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoveron.HoveronValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._fillcolor.FillcolorValidator",
-        "._fill.FillValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._csrc.CsrcValidator",
-        "._connectgaps.ConnectgapsValidator",
-        "._cliponaxis.CliponaxisValidator",
-        "._c.CValidator",
-        "._bsrc.BsrcValidator",
-        "._b.BValidator",
-        "._asrc.AsrcValidator",
-        "._a.AValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textpositionsrc import TextpositionsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._sum import SumValidator
+    from ._subplot import SubplotValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._mode import ModeValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoveron import HoveronValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._fillcolor import FillcolorValidator
+    from ._fill import FillValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._csrc import CsrcValidator
+    from ._connectgaps import ConnectgapsValidator
+    from ._cliponaxis import CliponaxisValidator
+    from ._c import CValidator
+    from ._bsrc import BsrcValidator
+    from ._b import BValidator
+    from ._asrc import AsrcValidator
+    from ._a import AValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textpositionsrc.TextpositionsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._sum.SumValidator",
+            "._subplot.SubplotValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._mode.ModeValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoveron.HoveronValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._fillcolor.FillcolorValidator",
+            "._fill.FillValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._csrc.CsrcValidator",
+            "._connectgaps.ConnectgapsValidator",
+            "._cliponaxis.CliponaxisValidator",
+            "._c.CValidator",
+            "._bsrc.BsrcValidator",
+            "._b.BValidator",
+            "._asrc.AsrcValidator",
+            "._a.AValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterternary/hoverlabel/__init__.py b/plotly/validators/scatterternary/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/scatterternary/hoverlabel/__init__.py
+++ b/plotly/validators/scatterternary/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterternary/hoverlabel/font/__init__.py b/plotly/validators/scatterternary/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scatterternary/hoverlabel/font/__init__.py
+++ b/plotly/validators/scatterternary/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterternary/legendgrouptitle/__init__.py b/plotly/validators/scatterternary/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/scatterternary/legendgrouptitle/__init__.py
+++ b/plotly/validators/scatterternary/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/scatterternary/legendgrouptitle/font/__init__.py b/plotly/validators/scatterternary/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatterternary/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/scatterternary/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterternary/line/__init__.py b/plotly/validators/scatterternary/line/__init__.py
index d9c0ff9500d..7045562597a 100644
--- a/plotly/validators/scatterternary/line/__init__.py
+++ b/plotly/validators/scatterternary/line/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._smoothing.SmoothingValidator",
-        "._shape.ShapeValidator",
-        "._dash.DashValidator",
-        "._color.ColorValidator",
-        "._backoffsrc.BackoffsrcValidator",
-        "._backoff.BackoffValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._smoothing import SmoothingValidator
+    from ._shape import ShapeValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+    from ._backoffsrc import BackoffsrcValidator
+    from ._backoff import BackoffValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._smoothing.SmoothingValidator",
+            "._shape.ShapeValidator",
+            "._dash.DashValidator",
+            "._color.ColorValidator",
+            "._backoffsrc.BackoffsrcValidator",
+            "._backoff.BackoffValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterternary/marker/__init__.py b/plotly/validators/scatterternary/marker/__init__.py
index fea9868a7bd..8434e73e3f5 100644
--- a/plotly/validators/scatterternary/marker/__init__.py
+++ b/plotly/validators/scatterternary/marker/__init__.py
@@ -1,38 +1,71 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._symbolsrc.SymbolsrcValidator",
-        "._symbol.SymbolValidator",
-        "._standoffsrc.StandoffsrcValidator",
-        "._standoff.StandoffValidator",
-        "._sizesrc.SizesrcValidator",
-        "._sizeref.SizerefValidator",
-        "._sizemode.SizemodeValidator",
-        "._sizemin.SizeminValidator",
-        "._size.SizeValidator",
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._maxdisplayed.MaxdisplayedValidator",
-        "._line.LineValidator",
-        "._gradient.GradientValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-        "._anglesrc.AnglesrcValidator",
-        "._angleref.AnglerefValidator",
-        "._angle.AngleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._symbolsrc import SymbolsrcValidator
+    from ._symbol import SymbolValidator
+    from ._standoffsrc import StandoffsrcValidator
+    from ._standoff import StandoffValidator
+    from ._sizesrc import SizesrcValidator
+    from ._sizeref import SizerefValidator
+    from ._sizemode import SizemodeValidator
+    from ._sizemin import SizeminValidator
+    from ._size import SizeValidator
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._maxdisplayed import MaxdisplayedValidator
+    from ._line import LineValidator
+    from ._gradient import GradientValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+    from ._anglesrc import AnglesrcValidator
+    from ._angleref import AnglerefValidator
+    from ._angle import AngleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._symbolsrc.SymbolsrcValidator",
+            "._symbol.SymbolValidator",
+            "._standoffsrc.StandoffsrcValidator",
+            "._standoff.StandoffValidator",
+            "._sizesrc.SizesrcValidator",
+            "._sizeref.SizerefValidator",
+            "._sizemode.SizemodeValidator",
+            "._sizemin.SizeminValidator",
+            "._size.SizeValidator",
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._maxdisplayed.MaxdisplayedValidator",
+            "._line.LineValidator",
+            "._gradient.GradientValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+            "._anglesrc.AnglesrcValidator",
+            "._angleref.AnglerefValidator",
+            "._angle.AngleValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterternary/marker/colorbar/__init__.py b/plotly/validators/scatterternary/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/scatterternary/marker/colorbar/__init__.py
+++ b/plotly/validators/scatterternary/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterternary/marker/colorbar/tickfont/__init__.py b/plotly/validators/scatterternary/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatterternary/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/scatterternary/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterternary/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/scatterternary/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/scatterternary/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/scatterternary/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterternary/marker/colorbar/title/__init__.py b/plotly/validators/scatterternary/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/scatterternary/marker/colorbar/title/__init__.py
+++ b/plotly/validators/scatterternary/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/scatterternary/marker/colorbar/title/font/__init__.py b/plotly/validators/scatterternary/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/scatterternary/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/scatterternary/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterternary/marker/gradient/__init__.py b/plotly/validators/scatterternary/marker/gradient/__init__.py
index f5373e78223..624a280ea46 100644
--- a/plotly/validators/scatterternary/marker/gradient/__init__.py
+++ b/plotly/validators/scatterternary/marker/gradient/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._typesrc.TypesrcValidator",
-        "._type.TypeValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._typesrc import TypesrcValidator
+    from ._type import TypeValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._typesrc.TypesrcValidator",
+            "._type.TypeValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterternary/marker/line/__init__.py b/plotly/validators/scatterternary/marker/line/__init__.py
index 4ba3ea340b5..facbe33f884 100644
--- a/plotly/validators/scatterternary/marker/line/__init__.py
+++ b/plotly/validators/scatterternary/marker/line/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._reversescale.ReversescaleValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._reversescale import ReversescaleValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._reversescale.ReversescaleValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterternary/selected/__init__.py b/plotly/validators/scatterternary/selected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/scatterternary/selected/__init__.py
+++ b/plotly/validators/scatterternary/selected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scatterternary/selected/marker/__init__.py b/plotly/validators/scatterternary/selected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scatterternary/selected/marker/__init__.py
+++ b/plotly/validators/scatterternary/selected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterternary/selected/textfont/__init__.py b/plotly/validators/scatterternary/selected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/scatterternary/selected/textfont/__init__.py
+++ b/plotly/validators/scatterternary/selected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/scatterternary/stream/__init__.py b/plotly/validators/scatterternary/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/scatterternary/stream/__init__.py
+++ b/plotly/validators/scatterternary/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/scatterternary/textfont/__init__.py b/plotly/validators/scatterternary/textfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/scatterternary/textfont/__init__.py
+++ b/plotly/validators/scatterternary/textfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterternary/unselected/__init__.py b/plotly/validators/scatterternary/unselected/__init__.py
index 9d2a313b832..3b0aeed383f 100644
--- a/plotly/validators/scatterternary/unselected/__init__.py
+++ b/plotly/validators/scatterternary/unselected/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._textfont import TextfontValidator
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._textfont.TextfontValidator", "._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/scatterternary/unselected/marker/__init__.py b/plotly/validators/scatterternary/unselected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/scatterternary/unselected/marker/__init__.py
+++ b/plotly/validators/scatterternary/unselected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/scatterternary/unselected/textfont/__init__.py b/plotly/validators/scatterternary/unselected/textfont/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/scatterternary/unselected/textfont/__init__.py
+++ b/plotly/validators/scatterternary/unselected/textfont/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/splom/__init__.py b/plotly/validators/splom/__init__.py
index 646d3f13c02..c928a1b08d9 100644
--- a/plotly/validators/splom/__init__.py
+++ b/plotly/validators/splom/__init__.py
@@ -1,49 +1,93 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yhoverformat.YhoverformatValidator",
-        "._yaxes.YaxesValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xaxes.XaxesValidator",
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._showupperhalf.ShowupperhalfValidator",
-        "._showlowerhalf.ShowlowerhalfValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._marker.MarkerValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._dimensiondefaults.DimensiondefaultsValidator",
-        "._dimensions.DimensionsValidator",
-        "._diagonal.DiagonalValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yhoverformat import YhoverformatValidator
+    from ._yaxes import YaxesValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xaxes import XaxesValidator
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._showupperhalf import ShowupperhalfValidator
+    from ._showlowerhalf import ShowlowerhalfValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._marker import MarkerValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._dimensiondefaults import DimensiondefaultsValidator
+    from ._dimensions import DimensionsValidator
+    from ._diagonal import DiagonalValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yhoverformat.YhoverformatValidator",
+            "._yaxes.YaxesValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xaxes.XaxesValidator",
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._showupperhalf.ShowupperhalfValidator",
+            "._showlowerhalf.ShowlowerhalfValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._marker.MarkerValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._dimensiondefaults.DimensiondefaultsValidator",
+            "._dimensions.DimensionsValidator",
+            "._diagonal.DiagonalValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+        ],
+    )
diff --git a/plotly/validators/splom/diagonal/__init__.py b/plotly/validators/splom/diagonal/__init__.py
index a4f17d4d692..5a516ae4827 100644
--- a/plotly/validators/splom/diagonal/__init__.py
+++ b/plotly/validators/splom/diagonal/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._visible.VisibleValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._visible.VisibleValidator"]
+    )
diff --git a/plotly/validators/splom/dimension/__init__.py b/plotly/validators/splom/dimension/__init__.py
index c6314c58eca..ca97d79c70a 100644
--- a/plotly/validators/splom/dimension/__init__.py
+++ b/plotly/validators/splom/dimension/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._valuessrc.ValuessrcValidator",
-        "._values.ValuesValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._label.LabelValidator",
-        "._axis.AxisValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._valuessrc import ValuessrcValidator
+    from ._values import ValuesValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._label import LabelValidator
+    from ._axis import AxisValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._valuessrc.ValuessrcValidator",
+            "._values.ValuesValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._label.LabelValidator",
+            "._axis.AxisValidator",
+        ],
+    )
diff --git a/plotly/validators/splom/dimension/axis/__init__.py b/plotly/validators/splom/dimension/axis/__init__.py
index e3f50a459fe..23af7f078b6 100644
--- a/plotly/validators/splom/dimension/axis/__init__.py
+++ b/plotly/validators/splom/dimension/axis/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._type.TypeValidator", "._matches.MatchesValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._type import TypeValidator
+    from ._matches import MatchesValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._type.TypeValidator", "._matches.MatchesValidator"]
+    )
diff --git a/plotly/validators/splom/hoverlabel/__init__.py b/plotly/validators/splom/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/splom/hoverlabel/__init__.py
+++ b/plotly/validators/splom/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/splom/hoverlabel/font/__init__.py b/plotly/validators/splom/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/splom/hoverlabel/font/__init__.py
+++ b/plotly/validators/splom/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/splom/legendgrouptitle/__init__.py b/plotly/validators/splom/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/splom/legendgrouptitle/__init__.py
+++ b/plotly/validators/splom/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/splom/legendgrouptitle/font/__init__.py b/plotly/validators/splom/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/splom/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/splom/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/splom/marker/__init__.py b/plotly/validators/splom/marker/__init__.py
index ec56080f713..dc48879d6be 100644
--- a/plotly/validators/splom/marker/__init__.py
+++ b/plotly/validators/splom/marker/__init__.py
@@ -1,33 +1,61 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._symbolsrc.SymbolsrcValidator",
-        "._symbol.SymbolValidator",
-        "._sizesrc.SizesrcValidator",
-        "._sizeref.SizerefValidator",
-        "._sizemode.SizemodeValidator",
-        "._sizemin.SizeminValidator",
-        "._size.SizeValidator",
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacitysrc.OpacitysrcValidator",
-        "._opacity.OpacityValidator",
-        "._line.LineValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-        "._anglesrc.AnglesrcValidator",
-        "._angle.AngleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._symbolsrc import SymbolsrcValidator
+    from ._symbol import SymbolValidator
+    from ._sizesrc import SizesrcValidator
+    from ._sizeref import SizerefValidator
+    from ._sizemode import SizemodeValidator
+    from ._sizemin import SizeminValidator
+    from ._size import SizeValidator
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacitysrc import OpacitysrcValidator
+    from ._opacity import OpacityValidator
+    from ._line import LineValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+    from ._anglesrc import AnglesrcValidator
+    from ._angle import AngleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._symbolsrc.SymbolsrcValidator",
+            "._symbol.SymbolValidator",
+            "._sizesrc.SizesrcValidator",
+            "._sizeref.SizerefValidator",
+            "._sizemode.SizemodeValidator",
+            "._sizemin.SizeminValidator",
+            "._size.SizeValidator",
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacitysrc.OpacitysrcValidator",
+            "._opacity.OpacityValidator",
+            "._line.LineValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+            "._anglesrc.AnglesrcValidator",
+            "._angle.AngleValidator",
+        ],
+    )
diff --git a/plotly/validators/splom/marker/colorbar/__init__.py b/plotly/validators/splom/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/splom/marker/colorbar/__init__.py
+++ b/plotly/validators/splom/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/splom/marker/colorbar/tickfont/__init__.py b/plotly/validators/splom/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/splom/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/splom/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/splom/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/splom/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/splom/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/splom/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/splom/marker/colorbar/title/__init__.py b/plotly/validators/splom/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/splom/marker/colorbar/title/__init__.py
+++ b/plotly/validators/splom/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/splom/marker/colorbar/title/font/__init__.py b/plotly/validators/splom/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/splom/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/splom/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/splom/marker/line/__init__.py b/plotly/validators/splom/marker/line/__init__.py
index 4ba3ea340b5..facbe33f884 100644
--- a/plotly/validators/splom/marker/line/__init__.py
+++ b/plotly/validators/splom/marker/line/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._reversescale.ReversescaleValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._color.ColorValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._reversescale import ReversescaleValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._color import ColorValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._reversescale.ReversescaleValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._color.ColorValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/splom/selected/__init__.py b/plotly/validators/splom/selected/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/splom/selected/__init__.py
+++ b/plotly/validators/splom/selected/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/splom/selected/marker/__init__.py b/plotly/validators/splom/selected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/splom/selected/marker/__init__.py
+++ b/plotly/validators/splom/selected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/splom/stream/__init__.py b/plotly/validators/splom/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/splom/stream/__init__.py
+++ b/plotly/validators/splom/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/splom/unselected/__init__.py b/plotly/validators/splom/unselected/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/splom/unselected/__init__.py
+++ b/plotly/validators/splom/unselected/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/splom/unselected/marker/__init__.py b/plotly/validators/splom/unselected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/splom/unselected/marker/__init__.py
+++ b/plotly/validators/splom/unselected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/streamtube/__init__.py b/plotly/validators/streamtube/__init__.py
index fe2655fb12f..7d348e38db1 100644
--- a/plotly/validators/streamtube/__init__.py
+++ b/plotly/validators/streamtube/__init__.py
@@ -1,68 +1,131 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zhoverformat.ZhoverformatValidator",
-        "._z.ZValidator",
-        "._ysrc.YsrcValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._x.XValidator",
-        "._wsrc.WsrcValidator",
-        "._whoverformat.WhoverformatValidator",
-        "._w.WValidator",
-        "._vsrc.VsrcValidator",
-        "._visible.VisibleValidator",
-        "._vhoverformat.VhoverformatValidator",
-        "._v.VValidator",
-        "._usrc.UsrcValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._uhoverformat.UhoverformatValidator",
-        "._u.UValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._starts.StartsValidator",
-        "._sizeref.SizerefValidator",
-        "._showscale.ShowscaleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._scene.SceneValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._maxdisplayed.MaxdisplayedValidator",
-        "._lightposition.LightpositionValidator",
-        "._lighting.LightingValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zhoverformat import ZhoverformatValidator
+    from ._z import ZValidator
+    from ._ysrc import YsrcValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._x import XValidator
+    from ._wsrc import WsrcValidator
+    from ._whoverformat import WhoverformatValidator
+    from ._w import WValidator
+    from ._vsrc import VsrcValidator
+    from ._visible import VisibleValidator
+    from ._vhoverformat import VhoverformatValidator
+    from ._v import VValidator
+    from ._usrc import UsrcValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._uhoverformat import UhoverformatValidator
+    from ._u import UValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._starts import StartsValidator
+    from ._sizeref import SizerefValidator
+    from ._showscale import ShowscaleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._scene import SceneValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._maxdisplayed import MaxdisplayedValidator
+    from ._lightposition import LightpositionValidator
+    from ._lighting import LightingValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zhoverformat.ZhoverformatValidator",
+            "._z.ZValidator",
+            "._ysrc.YsrcValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._x.XValidator",
+            "._wsrc.WsrcValidator",
+            "._whoverformat.WhoverformatValidator",
+            "._w.WValidator",
+            "._vsrc.VsrcValidator",
+            "._visible.VisibleValidator",
+            "._vhoverformat.VhoverformatValidator",
+            "._v.VValidator",
+            "._usrc.UsrcValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._uhoverformat.UhoverformatValidator",
+            "._u.UValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._starts.StartsValidator",
+            "._sizeref.SizerefValidator",
+            "._showscale.ShowscaleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._scene.SceneValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._maxdisplayed.MaxdisplayedValidator",
+            "._lightposition.LightpositionValidator",
+            "._lighting.LightingValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/streamtube/colorbar/__init__.py b/plotly/validators/streamtube/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/streamtube/colorbar/__init__.py
+++ b/plotly/validators/streamtube/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/streamtube/colorbar/tickfont/__init__.py b/plotly/validators/streamtube/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/streamtube/colorbar/tickfont/__init__.py
+++ b/plotly/validators/streamtube/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/streamtube/colorbar/tickformatstop/__init__.py b/plotly/validators/streamtube/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/streamtube/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/streamtube/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/streamtube/colorbar/title/__init__.py b/plotly/validators/streamtube/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/streamtube/colorbar/title/__init__.py
+++ b/plotly/validators/streamtube/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/streamtube/colorbar/title/font/__init__.py b/plotly/validators/streamtube/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/streamtube/colorbar/title/font/__init__.py
+++ b/plotly/validators/streamtube/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/streamtube/hoverlabel/__init__.py b/plotly/validators/streamtube/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/streamtube/hoverlabel/__init__.py
+++ b/plotly/validators/streamtube/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/streamtube/hoverlabel/font/__init__.py b/plotly/validators/streamtube/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/streamtube/hoverlabel/font/__init__.py
+++ b/plotly/validators/streamtube/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/streamtube/legendgrouptitle/__init__.py b/plotly/validators/streamtube/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/streamtube/legendgrouptitle/__init__.py
+++ b/plotly/validators/streamtube/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/streamtube/legendgrouptitle/font/__init__.py b/plotly/validators/streamtube/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/streamtube/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/streamtube/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/streamtube/lighting/__init__.py b/plotly/validators/streamtube/lighting/__init__.py
index 1f11e1b86fc..028351f35d6 100644
--- a/plotly/validators/streamtube/lighting/__init__.py
+++ b/plotly/validators/streamtube/lighting/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._vertexnormalsepsilon.VertexnormalsepsilonValidator",
-        "._specular.SpecularValidator",
-        "._roughness.RoughnessValidator",
-        "._fresnel.FresnelValidator",
-        "._facenormalsepsilon.FacenormalsepsilonValidator",
-        "._diffuse.DiffuseValidator",
-        "._ambient.AmbientValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._vertexnormalsepsilon import VertexnormalsepsilonValidator
+    from ._specular import SpecularValidator
+    from ._roughness import RoughnessValidator
+    from ._fresnel import FresnelValidator
+    from ._facenormalsepsilon import FacenormalsepsilonValidator
+    from ._diffuse import DiffuseValidator
+    from ._ambient import AmbientValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._vertexnormalsepsilon.VertexnormalsepsilonValidator",
+            "._specular.SpecularValidator",
+            "._roughness.RoughnessValidator",
+            "._fresnel.FresnelValidator",
+            "._facenormalsepsilon.FacenormalsepsilonValidator",
+            "._diffuse.DiffuseValidator",
+            "._ambient.AmbientValidator",
+        ],
+    )
diff --git a/plotly/validators/streamtube/lightposition/__init__.py b/plotly/validators/streamtube/lightposition/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/streamtube/lightposition/__init__.py
+++ b/plotly/validators/streamtube/lightposition/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/streamtube/starts/__init__.py b/plotly/validators/streamtube/starts/__init__.py
index e12e8cfa542..f8bd4cce320 100644
--- a/plotly/validators/streamtube/starts/__init__.py
+++ b/plotly/validators/streamtube/starts/__init__.py
@@ -1,15 +1,25 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._z.ZValidator",
-        "._ysrc.YsrcValidator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._x.XValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._z import ZValidator
+    from ._ysrc import YsrcValidator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._z.ZValidator",
+            "._ysrc.YsrcValidator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._x.XValidator",
+        ],
+    )
diff --git a/plotly/validators/streamtube/stream/__init__.py b/plotly/validators/streamtube/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/streamtube/stream/__init__.py
+++ b/plotly/validators/streamtube/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/sunburst/__init__.py b/plotly/validators/sunburst/__init__.py
index cabb216815d..d9043d98c91 100644
--- a/plotly/validators/sunburst/__init__.py
+++ b/plotly/validators/sunburst/__init__.py
@@ -1,57 +1,109 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._valuessrc.ValuessrcValidator",
-        "._values.ValuesValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textinfo.TextinfoValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._sort.SortValidator",
-        "._rotation.RotationValidator",
-        "._root.RootValidator",
-        "._parentssrc.ParentssrcValidator",
-        "._parents.ParentsValidator",
-        "._outsidetextfont.OutsidetextfontValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._maxdepth.MaxdepthValidator",
-        "._marker.MarkerValidator",
-        "._level.LevelValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legend.LegendValidator",
-        "._leaf.LeafValidator",
-        "._labelssrc.LabelssrcValidator",
-        "._labels.LabelsValidator",
-        "._insidetextorientation.InsidetextorientationValidator",
-        "._insidetextfont.InsidetextfontValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._domain.DomainValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._count.CountValidator",
-        "._branchvalues.BranchvaluesValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._valuessrc import ValuessrcValidator
+    from ._values import ValuesValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textinfo import TextinfoValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._sort import SortValidator
+    from ._rotation import RotationValidator
+    from ._root import RootValidator
+    from ._parentssrc import ParentssrcValidator
+    from ._parents import ParentsValidator
+    from ._outsidetextfont import OutsidetextfontValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._maxdepth import MaxdepthValidator
+    from ._marker import MarkerValidator
+    from ._level import LevelValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legend import LegendValidator
+    from ._leaf import LeafValidator
+    from ._labelssrc import LabelssrcValidator
+    from ._labels import LabelsValidator
+    from ._insidetextorientation import InsidetextorientationValidator
+    from ._insidetextfont import InsidetextfontValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._domain import DomainValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._count import CountValidator
+    from ._branchvalues import BranchvaluesValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._valuessrc.ValuessrcValidator",
+            "._values.ValuesValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textinfo.TextinfoValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._sort.SortValidator",
+            "._rotation.RotationValidator",
+            "._root.RootValidator",
+            "._parentssrc.ParentssrcValidator",
+            "._parents.ParentsValidator",
+            "._outsidetextfont.OutsidetextfontValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._maxdepth.MaxdepthValidator",
+            "._marker.MarkerValidator",
+            "._level.LevelValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legend.LegendValidator",
+            "._leaf.LeafValidator",
+            "._labelssrc.LabelssrcValidator",
+            "._labels.LabelsValidator",
+            "._insidetextorientation.InsidetextorientationValidator",
+            "._insidetextfont.InsidetextfontValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._domain.DomainValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._count.CountValidator",
+            "._branchvalues.BranchvaluesValidator",
+        ],
+    )
diff --git a/plotly/validators/sunburst/domain/__init__.py b/plotly/validators/sunburst/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/sunburst/domain/__init__.py
+++ b/plotly/validators/sunburst/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/sunburst/hoverlabel/__init__.py b/plotly/validators/sunburst/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/sunburst/hoverlabel/__init__.py
+++ b/plotly/validators/sunburst/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/sunburst/hoverlabel/font/__init__.py b/plotly/validators/sunburst/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/sunburst/hoverlabel/font/__init__.py
+++ b/plotly/validators/sunburst/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/sunburst/insidetextfont/__init__.py b/plotly/validators/sunburst/insidetextfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/sunburst/insidetextfont/__init__.py
+++ b/plotly/validators/sunburst/insidetextfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/sunburst/leaf/__init__.py b/plotly/validators/sunburst/leaf/__init__.py
index ea80a8a0f0d..049134a716d 100644
--- a/plotly/validators/sunburst/leaf/__init__.py
+++ b/plotly/validators/sunburst/leaf/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._opacity.OpacityValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._opacity import OpacityValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._opacity.OpacityValidator"]
+    )
diff --git a/plotly/validators/sunburst/legendgrouptitle/__init__.py b/plotly/validators/sunburst/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/sunburst/legendgrouptitle/__init__.py
+++ b/plotly/validators/sunburst/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/sunburst/legendgrouptitle/font/__init__.py b/plotly/validators/sunburst/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/sunburst/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/sunburst/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/sunburst/marker/__init__.py b/plotly/validators/sunburst/marker/__init__.py
index a7391021720..e04f18cc550 100644
--- a/plotly/validators/sunburst/marker/__init__.py
+++ b/plotly/validators/sunburst/marker/__init__.py
@@ -1,23 +1,41 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._pattern.PatternValidator",
-        "._line.LineValidator",
-        "._colorssrc.ColorssrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colors.ColorsValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._pattern import PatternValidator
+    from ._line import LineValidator
+    from ._colorssrc import ColorssrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colors import ColorsValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._pattern.PatternValidator",
+            "._line.LineValidator",
+            "._colorssrc.ColorssrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colors.ColorsValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/sunburst/marker/colorbar/__init__.py b/plotly/validators/sunburst/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/sunburst/marker/colorbar/__init__.py
+++ b/plotly/validators/sunburst/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/sunburst/marker/colorbar/tickfont/__init__.py b/plotly/validators/sunburst/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/sunburst/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/sunburst/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/sunburst/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/sunburst/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/sunburst/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/sunburst/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/sunburst/marker/colorbar/title/__init__.py b/plotly/validators/sunburst/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/sunburst/marker/colorbar/title/__init__.py
+++ b/plotly/validators/sunburst/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/sunburst/marker/colorbar/title/font/__init__.py b/plotly/validators/sunburst/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/sunburst/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/sunburst/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/sunburst/marker/line/__init__.py b/plotly/validators/sunburst/marker/line/__init__.py
index ca6d32f725b..a2b9e1ae50c 100644
--- a/plotly/validators/sunburst/marker/line/__init__.py
+++ b/plotly/validators/sunburst/marker/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/sunburst/marker/pattern/__init__.py b/plotly/validators/sunburst/marker/pattern/__init__.py
index e42ccc4d0fb..e190f962c46 100644
--- a/plotly/validators/sunburst/marker/pattern/__init__.py
+++ b/plotly/validators/sunburst/marker/pattern/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._soliditysrc.SoliditysrcValidator",
-        "._solidity.SolidityValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shapesrc.ShapesrcValidator",
-        "._shape.ShapeValidator",
-        "._fillmode.FillmodeValidator",
-        "._fgopacity.FgopacityValidator",
-        "._fgcolorsrc.FgcolorsrcValidator",
-        "._fgcolor.FgcolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._soliditysrc import SoliditysrcValidator
+    from ._solidity import SolidityValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shapesrc import ShapesrcValidator
+    from ._shape import ShapeValidator
+    from ._fillmode import FillmodeValidator
+    from ._fgopacity import FgopacityValidator
+    from ._fgcolorsrc import FgcolorsrcValidator
+    from ._fgcolor import FgcolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._soliditysrc.SoliditysrcValidator",
+            "._solidity.SolidityValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shapesrc.ShapesrcValidator",
+            "._shape.ShapeValidator",
+            "._fillmode.FillmodeValidator",
+            "._fgopacity.FgopacityValidator",
+            "._fgcolorsrc.FgcolorsrcValidator",
+            "._fgcolor.FgcolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/sunburst/outsidetextfont/__init__.py b/plotly/validators/sunburst/outsidetextfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/sunburst/outsidetextfont/__init__.py
+++ b/plotly/validators/sunburst/outsidetextfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/sunburst/root/__init__.py b/plotly/validators/sunburst/root/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/sunburst/root/__init__.py
+++ b/plotly/validators/sunburst/root/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/sunburst/stream/__init__.py b/plotly/validators/sunburst/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/sunburst/stream/__init__.py
+++ b/plotly/validators/sunburst/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/sunburst/textfont/__init__.py b/plotly/validators/sunburst/textfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/sunburst/textfont/__init__.py
+++ b/plotly/validators/sunburst/textfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/surface/__init__.py b/plotly/validators/surface/__init__.py
index e8de2a56525..40b7043b3fe 100644
--- a/plotly/validators/surface/__init__.py
+++ b/plotly/validators/surface/__init__.py
@@ -1,67 +1,129 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zhoverformat.ZhoverformatValidator",
-        "._zcalendar.ZcalendarValidator",
-        "._z.ZValidator",
-        "._ysrc.YsrcValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._ycalendar.YcalendarValidator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xcalendar.XcalendarValidator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._surfacecolorsrc.SurfacecolorsrcValidator",
-        "._surfacecolor.SurfacecolorValidator",
-        "._stream.StreamValidator",
-        "._showscale.ShowscaleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._scene.SceneValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacityscale.OpacityscaleValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._lightposition.LightpositionValidator",
-        "._lighting.LightingValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._hidesurface.HidesurfaceValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._contours.ContoursValidator",
-        "._connectgaps.ConnectgapsValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zhoverformat import ZhoverformatValidator
+    from ._zcalendar import ZcalendarValidator
+    from ._z import ZValidator
+    from ._ysrc import YsrcValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._ycalendar import YcalendarValidator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xcalendar import XcalendarValidator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._surfacecolorsrc import SurfacecolorsrcValidator
+    from ._surfacecolor import SurfacecolorValidator
+    from ._stream import StreamValidator
+    from ._showscale import ShowscaleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._scene import SceneValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacityscale import OpacityscaleValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._lightposition import LightpositionValidator
+    from ._lighting import LightingValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._hidesurface import HidesurfaceValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._contours import ContoursValidator
+    from ._connectgaps import ConnectgapsValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zhoverformat.ZhoverformatValidator",
+            "._zcalendar.ZcalendarValidator",
+            "._z.ZValidator",
+            "._ysrc.YsrcValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._ycalendar.YcalendarValidator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xcalendar.XcalendarValidator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._surfacecolorsrc.SurfacecolorsrcValidator",
+            "._surfacecolor.SurfacecolorValidator",
+            "._stream.StreamValidator",
+            "._showscale.ShowscaleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._scene.SceneValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacityscale.OpacityscaleValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._lightposition.LightpositionValidator",
+            "._lighting.LightingValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._hidesurface.HidesurfaceValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._contours.ContoursValidator",
+            "._connectgaps.ConnectgapsValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/surface/colorbar/__init__.py b/plotly/validators/surface/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/surface/colorbar/__init__.py
+++ b/plotly/validators/surface/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/surface/colorbar/tickfont/__init__.py b/plotly/validators/surface/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/surface/colorbar/tickfont/__init__.py
+++ b/plotly/validators/surface/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/surface/colorbar/tickformatstop/__init__.py b/plotly/validators/surface/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/surface/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/surface/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/surface/colorbar/title/__init__.py b/plotly/validators/surface/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/surface/colorbar/title/__init__.py
+++ b/plotly/validators/surface/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/surface/colorbar/title/font/__init__.py b/plotly/validators/surface/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/surface/colorbar/title/font/__init__.py
+++ b/plotly/validators/surface/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/surface/contours/__init__.py b/plotly/validators/surface/contours/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/surface/contours/__init__.py
+++ b/plotly/validators/surface/contours/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/surface/contours/x/__init__.py b/plotly/validators/surface/contours/x/__init__.py
index acb3f03b3ac..33ec40f7090 100644
--- a/plotly/validators/surface/contours/x/__init__.py
+++ b/plotly/validators/surface/contours/x/__init__.py
@@ -1,20 +1,35 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._usecolormap.UsecolormapValidator",
-        "._start.StartValidator",
-        "._size.SizeValidator",
-        "._show.ShowValidator",
-        "._project.ProjectValidator",
-        "._highlightwidth.HighlightwidthValidator",
-        "._highlightcolor.HighlightcolorValidator",
-        "._highlight.HighlightValidator",
-        "._end.EndValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._usecolormap import UsecolormapValidator
+    from ._start import StartValidator
+    from ._size import SizeValidator
+    from ._show import ShowValidator
+    from ._project import ProjectValidator
+    from ._highlightwidth import HighlightwidthValidator
+    from ._highlightcolor import HighlightcolorValidator
+    from ._highlight import HighlightValidator
+    from ._end import EndValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._usecolormap.UsecolormapValidator",
+            "._start.StartValidator",
+            "._size.SizeValidator",
+            "._show.ShowValidator",
+            "._project.ProjectValidator",
+            "._highlightwidth.HighlightwidthValidator",
+            "._highlightcolor.HighlightcolorValidator",
+            "._highlight.HighlightValidator",
+            "._end.EndValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/surface/contours/x/project/__init__.py b/plotly/validators/surface/contours/x/project/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/surface/contours/x/project/__init__.py
+++ b/plotly/validators/surface/contours/x/project/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/surface/contours/y/__init__.py b/plotly/validators/surface/contours/y/__init__.py
index acb3f03b3ac..33ec40f7090 100644
--- a/plotly/validators/surface/contours/y/__init__.py
+++ b/plotly/validators/surface/contours/y/__init__.py
@@ -1,20 +1,35 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._usecolormap.UsecolormapValidator",
-        "._start.StartValidator",
-        "._size.SizeValidator",
-        "._show.ShowValidator",
-        "._project.ProjectValidator",
-        "._highlightwidth.HighlightwidthValidator",
-        "._highlightcolor.HighlightcolorValidator",
-        "._highlight.HighlightValidator",
-        "._end.EndValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._usecolormap import UsecolormapValidator
+    from ._start import StartValidator
+    from ._size import SizeValidator
+    from ._show import ShowValidator
+    from ._project import ProjectValidator
+    from ._highlightwidth import HighlightwidthValidator
+    from ._highlightcolor import HighlightcolorValidator
+    from ._highlight import HighlightValidator
+    from ._end import EndValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._usecolormap.UsecolormapValidator",
+            "._start.StartValidator",
+            "._size.SizeValidator",
+            "._show.ShowValidator",
+            "._project.ProjectValidator",
+            "._highlightwidth.HighlightwidthValidator",
+            "._highlightcolor.HighlightcolorValidator",
+            "._highlight.HighlightValidator",
+            "._end.EndValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/surface/contours/y/project/__init__.py b/plotly/validators/surface/contours/y/project/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/surface/contours/y/project/__init__.py
+++ b/plotly/validators/surface/contours/y/project/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/surface/contours/z/__init__.py b/plotly/validators/surface/contours/z/__init__.py
index acb3f03b3ac..33ec40f7090 100644
--- a/plotly/validators/surface/contours/z/__init__.py
+++ b/plotly/validators/surface/contours/z/__init__.py
@@ -1,20 +1,35 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._usecolormap.UsecolormapValidator",
-        "._start.StartValidator",
-        "._size.SizeValidator",
-        "._show.ShowValidator",
-        "._project.ProjectValidator",
-        "._highlightwidth.HighlightwidthValidator",
-        "._highlightcolor.HighlightcolorValidator",
-        "._highlight.HighlightValidator",
-        "._end.EndValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._usecolormap import UsecolormapValidator
+    from ._start import StartValidator
+    from ._size import SizeValidator
+    from ._show import ShowValidator
+    from ._project import ProjectValidator
+    from ._highlightwidth import HighlightwidthValidator
+    from ._highlightcolor import HighlightcolorValidator
+    from ._highlight import HighlightValidator
+    from ._end import EndValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._usecolormap.UsecolormapValidator",
+            "._start.StartValidator",
+            "._size.SizeValidator",
+            "._show.ShowValidator",
+            "._project.ProjectValidator",
+            "._highlightwidth.HighlightwidthValidator",
+            "._highlightcolor.HighlightcolorValidator",
+            "._highlight.HighlightValidator",
+            "._end.EndValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/surface/contours/z/project/__init__.py b/plotly/validators/surface/contours/z/project/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/surface/contours/z/project/__init__.py
+++ b/plotly/validators/surface/contours/z/project/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/surface/hoverlabel/__init__.py b/plotly/validators/surface/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/surface/hoverlabel/__init__.py
+++ b/plotly/validators/surface/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/surface/hoverlabel/font/__init__.py b/plotly/validators/surface/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/surface/hoverlabel/font/__init__.py
+++ b/plotly/validators/surface/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/surface/legendgrouptitle/__init__.py b/plotly/validators/surface/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/surface/legendgrouptitle/__init__.py
+++ b/plotly/validators/surface/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/surface/legendgrouptitle/font/__init__.py b/plotly/validators/surface/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/surface/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/surface/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/surface/lighting/__init__.py b/plotly/validators/surface/lighting/__init__.py
index b45310f05d9..4b1f88d4953 100644
--- a/plotly/validators/surface/lighting/__init__.py
+++ b/plotly/validators/surface/lighting/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._specular.SpecularValidator",
-        "._roughness.RoughnessValidator",
-        "._fresnel.FresnelValidator",
-        "._diffuse.DiffuseValidator",
-        "._ambient.AmbientValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._specular import SpecularValidator
+    from ._roughness import RoughnessValidator
+    from ._fresnel import FresnelValidator
+    from ._diffuse import DiffuseValidator
+    from ._ambient import AmbientValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._specular.SpecularValidator",
+            "._roughness.RoughnessValidator",
+            "._fresnel.FresnelValidator",
+            "._diffuse.DiffuseValidator",
+            "._ambient.AmbientValidator",
+        ],
+    )
diff --git a/plotly/validators/surface/lightposition/__init__.py b/plotly/validators/surface/lightposition/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/surface/lightposition/__init__.py
+++ b/plotly/validators/surface/lightposition/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/surface/stream/__init__.py b/plotly/validators/surface/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/surface/stream/__init__.py
+++ b/plotly/validators/surface/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/table/__init__.py b/plotly/validators/table/__init__.py
index 587fb4fab64..78898057047 100644
--- a/plotly/validators/table/__init__.py
+++ b/plotly/validators/table/__init__.py
@@ -1,34 +1,63 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._stream.StreamValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legend.LegendValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._header.HeaderValidator",
-        "._domain.DomainValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._columnwidthsrc.ColumnwidthsrcValidator",
-        "._columnwidth.ColumnwidthValidator",
-        "._columnordersrc.ColumnordersrcValidator",
-        "._columnorder.ColumnorderValidator",
-        "._cells.CellsValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._stream import StreamValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legend import LegendValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._header import HeaderValidator
+    from ._domain import DomainValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._columnwidthsrc import ColumnwidthsrcValidator
+    from ._columnwidth import ColumnwidthValidator
+    from ._columnordersrc import ColumnordersrcValidator
+    from ._columnorder import ColumnorderValidator
+    from ._cells import CellsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._stream.StreamValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legend.LegendValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._header.HeaderValidator",
+            "._domain.DomainValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._columnwidthsrc.ColumnwidthsrcValidator",
+            "._columnwidth.ColumnwidthValidator",
+            "._columnordersrc.ColumnordersrcValidator",
+            "._columnorder.ColumnorderValidator",
+            "._cells.CellsValidator",
+        ],
+    )
diff --git a/plotly/validators/table/cells/__init__.py b/plotly/validators/table/cells/__init__.py
index 5c655b3ec76..ee416ebc746 100644
--- a/plotly/validators/table/cells/__init__.py
+++ b/plotly/validators/table/cells/__init__.py
@@ -1,23 +1,41 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._valuessrc.ValuessrcValidator",
-        "._values.ValuesValidator",
-        "._suffixsrc.SuffixsrcValidator",
-        "._suffix.SuffixValidator",
-        "._prefixsrc.PrefixsrcValidator",
-        "._prefix.PrefixValidator",
-        "._line.LineValidator",
-        "._height.HeightValidator",
-        "._formatsrc.FormatsrcValidator",
-        "._format.FormatValidator",
-        "._font.FontValidator",
-        "._fill.FillValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._valuessrc import ValuessrcValidator
+    from ._values import ValuesValidator
+    from ._suffixsrc import SuffixsrcValidator
+    from ._suffix import SuffixValidator
+    from ._prefixsrc import PrefixsrcValidator
+    from ._prefix import PrefixValidator
+    from ._line import LineValidator
+    from ._height import HeightValidator
+    from ._formatsrc import FormatsrcValidator
+    from ._format import FormatValidator
+    from ._font import FontValidator
+    from ._fill import FillValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._valuessrc.ValuessrcValidator",
+            "._values.ValuesValidator",
+            "._suffixsrc.SuffixsrcValidator",
+            "._suffix.SuffixValidator",
+            "._prefixsrc.PrefixsrcValidator",
+            "._prefix.PrefixValidator",
+            "._line.LineValidator",
+            "._height.HeightValidator",
+            "._formatsrc.FormatsrcValidator",
+            "._format.FormatValidator",
+            "._font.FontValidator",
+            "._fill.FillValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/table/cells/fill/__init__.py b/plotly/validators/table/cells/fill/__init__.py
index 8cd95cefa3a..4ca11d98821 100644
--- a/plotly/validators/table/cells/fill/__init__.py
+++ b/plotly/validators/table/cells/fill/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._colorsrc.ColorsrcValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._colorsrc.ColorsrcValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/table/cells/font/__init__.py b/plotly/validators/table/cells/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/table/cells/font/__init__.py
+++ b/plotly/validators/table/cells/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/table/cells/line/__init__.py b/plotly/validators/table/cells/line/__init__.py
index ca6d32f725b..a2b9e1ae50c 100644
--- a/plotly/validators/table/cells/line/__init__.py
+++ b/plotly/validators/table/cells/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/table/domain/__init__.py b/plotly/validators/table/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/table/domain/__init__.py
+++ b/plotly/validators/table/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/table/header/__init__.py b/plotly/validators/table/header/__init__.py
index 5c655b3ec76..ee416ebc746 100644
--- a/plotly/validators/table/header/__init__.py
+++ b/plotly/validators/table/header/__init__.py
@@ -1,23 +1,41 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._valuessrc.ValuessrcValidator",
-        "._values.ValuesValidator",
-        "._suffixsrc.SuffixsrcValidator",
-        "._suffix.SuffixValidator",
-        "._prefixsrc.PrefixsrcValidator",
-        "._prefix.PrefixValidator",
-        "._line.LineValidator",
-        "._height.HeightValidator",
-        "._formatsrc.FormatsrcValidator",
-        "._format.FormatValidator",
-        "._font.FontValidator",
-        "._fill.FillValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._valuessrc import ValuessrcValidator
+    from ._values import ValuesValidator
+    from ._suffixsrc import SuffixsrcValidator
+    from ._suffix import SuffixValidator
+    from ._prefixsrc import PrefixsrcValidator
+    from ._prefix import PrefixValidator
+    from ._line import LineValidator
+    from ._height import HeightValidator
+    from ._formatsrc import FormatsrcValidator
+    from ._format import FormatValidator
+    from ._font import FontValidator
+    from ._fill import FillValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._valuessrc.ValuessrcValidator",
+            "._values.ValuesValidator",
+            "._suffixsrc.SuffixsrcValidator",
+            "._suffix.SuffixValidator",
+            "._prefixsrc.PrefixsrcValidator",
+            "._prefix.PrefixValidator",
+            "._line.LineValidator",
+            "._height.HeightValidator",
+            "._formatsrc.FormatsrcValidator",
+            "._format.FormatValidator",
+            "._font.FontValidator",
+            "._fill.FillValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/table/header/fill/__init__.py b/plotly/validators/table/header/fill/__init__.py
index 8cd95cefa3a..4ca11d98821 100644
--- a/plotly/validators/table/header/fill/__init__.py
+++ b/plotly/validators/table/header/fill/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._colorsrc.ColorsrcValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._colorsrc.ColorsrcValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/table/header/font/__init__.py b/plotly/validators/table/header/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/table/header/font/__init__.py
+++ b/plotly/validators/table/header/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/table/header/line/__init__.py b/plotly/validators/table/header/line/__init__.py
index ca6d32f725b..a2b9e1ae50c 100644
--- a/plotly/validators/table/header/line/__init__.py
+++ b/plotly/validators/table/header/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/table/hoverlabel/__init__.py b/plotly/validators/table/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/table/hoverlabel/__init__.py
+++ b/plotly/validators/table/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/table/hoverlabel/font/__init__.py b/plotly/validators/table/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/table/hoverlabel/font/__init__.py
+++ b/plotly/validators/table/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/table/legendgrouptitle/__init__.py b/plotly/validators/table/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/table/legendgrouptitle/__init__.py
+++ b/plotly/validators/table/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/table/legendgrouptitle/font/__init__.py b/plotly/validators/table/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/table/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/table/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/table/stream/__init__.py b/plotly/validators/table/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/table/stream/__init__.py
+++ b/plotly/validators/table/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/treemap/__init__.py b/plotly/validators/treemap/__init__.py
index 15fa2ddae15..2a7bd82d123 100644
--- a/plotly/validators/treemap/__init__.py
+++ b/plotly/validators/treemap/__init__.py
@@ -1,57 +1,109 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._valuessrc.ValuessrcValidator",
-        "._values.ValuesValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._tiling.TilingValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textinfo.TextinfoValidator",
-        "._textfont.TextfontValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._sort.SortValidator",
-        "._root.RootValidator",
-        "._pathbar.PathbarValidator",
-        "._parentssrc.ParentssrcValidator",
-        "._parents.ParentsValidator",
-        "._outsidetextfont.OutsidetextfontValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._maxdepth.MaxdepthValidator",
-        "._marker.MarkerValidator",
-        "._level.LevelValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legend.LegendValidator",
-        "._labelssrc.LabelssrcValidator",
-        "._labels.LabelsValidator",
-        "._insidetextfont.InsidetextfontValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._domain.DomainValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._count.CountValidator",
-        "._branchvalues.BranchvaluesValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._valuessrc import ValuessrcValidator
+    from ._values import ValuesValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._tiling import TilingValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textinfo import TextinfoValidator
+    from ._textfont import TextfontValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._sort import SortValidator
+    from ._root import RootValidator
+    from ._pathbar import PathbarValidator
+    from ._parentssrc import ParentssrcValidator
+    from ._parents import ParentsValidator
+    from ._outsidetextfont import OutsidetextfontValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._maxdepth import MaxdepthValidator
+    from ._marker import MarkerValidator
+    from ._level import LevelValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legend import LegendValidator
+    from ._labelssrc import LabelssrcValidator
+    from ._labels import LabelsValidator
+    from ._insidetextfont import InsidetextfontValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._domain import DomainValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._count import CountValidator
+    from ._branchvalues import BranchvaluesValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._valuessrc.ValuessrcValidator",
+            "._values.ValuesValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._tiling.TilingValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textinfo.TextinfoValidator",
+            "._textfont.TextfontValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._sort.SortValidator",
+            "._root.RootValidator",
+            "._pathbar.PathbarValidator",
+            "._parentssrc.ParentssrcValidator",
+            "._parents.ParentsValidator",
+            "._outsidetextfont.OutsidetextfontValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._maxdepth.MaxdepthValidator",
+            "._marker.MarkerValidator",
+            "._level.LevelValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legend.LegendValidator",
+            "._labelssrc.LabelssrcValidator",
+            "._labels.LabelsValidator",
+            "._insidetextfont.InsidetextfontValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._domain.DomainValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._count.CountValidator",
+            "._branchvalues.BranchvaluesValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/domain/__init__.py b/plotly/validators/treemap/domain/__init__.py
index 42827f1d1e2..67de5030d0a 100644
--- a/plotly/validators/treemap/domain/__init__.py
+++ b/plotly/validators/treemap/domain/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._y.YValidator",
-        "._x.XValidator",
-        "._row.RowValidator",
-        "._column.ColumnValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._y import YValidator
+    from ._x import XValidator
+    from ._row import RowValidator
+    from ._column import ColumnValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._y.YValidator",
+            "._x.XValidator",
+            "._row.RowValidator",
+            "._column.ColumnValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/hoverlabel/__init__.py b/plotly/validators/treemap/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/treemap/hoverlabel/__init__.py
+++ b/plotly/validators/treemap/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/hoverlabel/font/__init__.py b/plotly/validators/treemap/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/treemap/hoverlabel/font/__init__.py
+++ b/plotly/validators/treemap/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/insidetextfont/__init__.py b/plotly/validators/treemap/insidetextfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/treemap/insidetextfont/__init__.py
+++ b/plotly/validators/treemap/insidetextfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/legendgrouptitle/__init__.py b/plotly/validators/treemap/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/treemap/legendgrouptitle/__init__.py
+++ b/plotly/validators/treemap/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/treemap/legendgrouptitle/font/__init__.py b/plotly/validators/treemap/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/treemap/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/treemap/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/marker/__init__.py b/plotly/validators/treemap/marker/__init__.py
index 425c1416cf5..a0aa062ffcf 100644
--- a/plotly/validators/treemap/marker/__init__.py
+++ b/plotly/validators/treemap/marker/__init__.py
@@ -1,26 +1,47 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._showscale.ShowscaleValidator",
-        "._reversescale.ReversescaleValidator",
-        "._pattern.PatternValidator",
-        "._pad.PadValidator",
-        "._line.LineValidator",
-        "._depthfade.DepthfadeValidator",
-        "._cornerradius.CornerradiusValidator",
-        "._colorssrc.ColorssrcValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colors.ColorsValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._showscale import ShowscaleValidator
+    from ._reversescale import ReversescaleValidator
+    from ._pattern import PatternValidator
+    from ._pad import PadValidator
+    from ._line import LineValidator
+    from ._depthfade import DepthfadeValidator
+    from ._cornerradius import CornerradiusValidator
+    from ._colorssrc import ColorssrcValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colors import ColorsValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._showscale.ShowscaleValidator",
+            "._reversescale.ReversescaleValidator",
+            "._pattern.PatternValidator",
+            "._pad.PadValidator",
+            "._line.LineValidator",
+            "._depthfade.DepthfadeValidator",
+            "._cornerradius.CornerradiusValidator",
+            "._colorssrc.ColorssrcValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colors.ColorsValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/marker/colorbar/__init__.py b/plotly/validators/treemap/marker/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/treemap/marker/colorbar/__init__.py
+++ b/plotly/validators/treemap/marker/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/marker/colorbar/tickfont/__init__.py b/plotly/validators/treemap/marker/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/treemap/marker/colorbar/tickfont/__init__.py
+++ b/plotly/validators/treemap/marker/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/marker/colorbar/tickformatstop/__init__.py b/plotly/validators/treemap/marker/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/treemap/marker/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/treemap/marker/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/marker/colorbar/title/__init__.py b/plotly/validators/treemap/marker/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/treemap/marker/colorbar/title/__init__.py
+++ b/plotly/validators/treemap/marker/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/treemap/marker/colorbar/title/font/__init__.py b/plotly/validators/treemap/marker/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/treemap/marker/colorbar/title/font/__init__.py
+++ b/plotly/validators/treemap/marker/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/marker/line/__init__.py b/plotly/validators/treemap/marker/line/__init__.py
index ca6d32f725b..a2b9e1ae50c 100644
--- a/plotly/validators/treemap/marker/line/__init__.py
+++ b/plotly/validators/treemap/marker/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/marker/pad/__init__.py b/plotly/validators/treemap/marker/pad/__init__.py
index 4189bfbe1fd..04e64dbc5ee 100644
--- a/plotly/validators/treemap/marker/pad/__init__.py
+++ b/plotly/validators/treemap/marker/pad/__init__.py
@@ -1,8 +1,16 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._t.TValidator", "._r.RValidator", "._l.LValidator", "._b.BValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._t import TValidator
+    from ._r import RValidator
+    from ._l import LValidator
+    from ._b import BValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._t.TValidator", "._r.RValidator", "._l.LValidator", "._b.BValidator"],
+    )
diff --git a/plotly/validators/treemap/marker/pattern/__init__.py b/plotly/validators/treemap/marker/pattern/__init__.py
index e42ccc4d0fb..e190f962c46 100644
--- a/plotly/validators/treemap/marker/pattern/__init__.py
+++ b/plotly/validators/treemap/marker/pattern/__init__.py
@@ -1,21 +1,37 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._soliditysrc.SoliditysrcValidator",
-        "._solidity.SolidityValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shapesrc.ShapesrcValidator",
-        "._shape.ShapeValidator",
-        "._fillmode.FillmodeValidator",
-        "._fgopacity.FgopacityValidator",
-        "._fgcolorsrc.FgcolorsrcValidator",
-        "._fgcolor.FgcolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._soliditysrc import SoliditysrcValidator
+    from ._solidity import SolidityValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shapesrc import ShapesrcValidator
+    from ._shape import ShapeValidator
+    from ._fillmode import FillmodeValidator
+    from ._fgopacity import FgopacityValidator
+    from ._fgcolorsrc import FgcolorsrcValidator
+    from ._fgcolor import FgcolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._soliditysrc.SoliditysrcValidator",
+            "._solidity.SolidityValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shapesrc.ShapesrcValidator",
+            "._shape.ShapeValidator",
+            "._fillmode.FillmodeValidator",
+            "._fgopacity.FgopacityValidator",
+            "._fgcolorsrc.FgcolorsrcValidator",
+            "._fgcolor.FgcolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/outsidetextfont/__init__.py b/plotly/validators/treemap/outsidetextfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/treemap/outsidetextfont/__init__.py
+++ b/plotly/validators/treemap/outsidetextfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/pathbar/__init__.py b/plotly/validators/treemap/pathbar/__init__.py
index 7b4da4ccadf..fce05faf911 100644
--- a/plotly/validators/treemap/pathbar/__init__.py
+++ b/plotly/validators/treemap/pathbar/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._visible.VisibleValidator",
-        "._thickness.ThicknessValidator",
-        "._textfont.TextfontValidator",
-        "._side.SideValidator",
-        "._edgeshape.EdgeshapeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._thickness import ThicknessValidator
+    from ._textfont import TextfontValidator
+    from ._side import SideValidator
+    from ._edgeshape import EdgeshapeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._visible.VisibleValidator",
+            "._thickness.ThicknessValidator",
+            "._textfont.TextfontValidator",
+            "._side.SideValidator",
+            "._edgeshape.EdgeshapeValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/pathbar/textfont/__init__.py b/plotly/validators/treemap/pathbar/textfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/treemap/pathbar/textfont/__init__.py
+++ b/plotly/validators/treemap/pathbar/textfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/root/__init__.py b/plotly/validators/treemap/root/__init__.py
index 85a4cc95736..a9f087e5af1 100644
--- a/plotly/validators/treemap/root/__init__.py
+++ b/plotly/validators/treemap/root/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._color.ColorValidator"]
+    )
diff --git a/plotly/validators/treemap/stream/__init__.py b/plotly/validators/treemap/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/treemap/stream/__init__.py
+++ b/plotly/validators/treemap/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/treemap/textfont/__init__.py b/plotly/validators/treemap/textfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/treemap/textfont/__init__.py
+++ b/plotly/validators/treemap/textfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/treemap/tiling/__init__.py b/plotly/validators/treemap/tiling/__init__.py
index 25a61cc598f..c7b32e85038 100644
--- a/plotly/validators/treemap/tiling/__init__.py
+++ b/plotly/validators/treemap/tiling/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._squarifyratio.SquarifyratioValidator",
-        "._pad.PadValidator",
-        "._packing.PackingValidator",
-        "._flip.FlipValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._squarifyratio import SquarifyratioValidator
+    from ._pad import PadValidator
+    from ._packing import PackingValidator
+    from ._flip import FlipValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._squarifyratio.SquarifyratioValidator",
+            "._pad.PadValidator",
+            "._packing.PackingValidator",
+            "._flip.FlipValidator",
+        ],
+    )
diff --git a/plotly/validators/violin/__init__.py b/plotly/validators/violin/__init__.py
index 4ae7416c75d..485ccd3476e 100644
--- a/plotly/validators/violin/__init__.py
+++ b/plotly/validators/violin/__init__.py
@@ -1,70 +1,135 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zorder.ZorderValidator",
-        "._ysrc.YsrcValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._yaxis.YaxisValidator",
-        "._y0.Y0Validator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xaxis.XaxisValidator",
-        "._x0.X0Validator",
-        "._x.XValidator",
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._unselected.UnselectedValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._spanmode.SpanmodeValidator",
-        "._span.SpanValidator",
-        "._side.SideValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._selected.SelectedValidator",
-        "._scalemode.ScalemodeValidator",
-        "._scalegroup.ScalegroupValidator",
-        "._quartilemethod.QuartilemethodValidator",
-        "._points.PointsValidator",
-        "._pointpos.PointposValidator",
-        "._orientation.OrientationValidator",
-        "._opacity.OpacityValidator",
-        "._offsetgroup.OffsetgroupValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._meanline.MeanlineValidator",
-        "._marker.MarkerValidator",
-        "._line.LineValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._jitter.JitterValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoveron.HoveronValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._fillcolor.FillcolorValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._box.BoxValidator",
-        "._bandwidth.BandwidthValidator",
-        "._alignmentgroup.AlignmentgroupValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zorder import ZorderValidator
+    from ._ysrc import YsrcValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._yaxis import YaxisValidator
+    from ._y0 import Y0Validator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xaxis import XaxisValidator
+    from ._x0 import X0Validator
+    from ._x import XValidator
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._unselected import UnselectedValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._spanmode import SpanmodeValidator
+    from ._span import SpanValidator
+    from ._side import SideValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._selected import SelectedValidator
+    from ._scalemode import ScalemodeValidator
+    from ._scalegroup import ScalegroupValidator
+    from ._quartilemethod import QuartilemethodValidator
+    from ._points import PointsValidator
+    from ._pointpos import PointposValidator
+    from ._orientation import OrientationValidator
+    from ._opacity import OpacityValidator
+    from ._offsetgroup import OffsetgroupValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._meanline import MeanlineValidator
+    from ._marker import MarkerValidator
+    from ._line import LineValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._jitter import JitterValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoveron import HoveronValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._fillcolor import FillcolorValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._box import BoxValidator
+    from ._bandwidth import BandwidthValidator
+    from ._alignmentgroup import AlignmentgroupValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zorder.ZorderValidator",
+            "._ysrc.YsrcValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._yaxis.YaxisValidator",
+            "._y0.Y0Validator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xaxis.XaxisValidator",
+            "._x0.X0Validator",
+            "._x.XValidator",
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._unselected.UnselectedValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._spanmode.SpanmodeValidator",
+            "._span.SpanValidator",
+            "._side.SideValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._selected.SelectedValidator",
+            "._scalemode.ScalemodeValidator",
+            "._scalegroup.ScalegroupValidator",
+            "._quartilemethod.QuartilemethodValidator",
+            "._points.PointsValidator",
+            "._pointpos.PointposValidator",
+            "._orientation.OrientationValidator",
+            "._opacity.OpacityValidator",
+            "._offsetgroup.OffsetgroupValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._meanline.MeanlineValidator",
+            "._marker.MarkerValidator",
+            "._line.LineValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._jitter.JitterValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoveron.HoveronValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._fillcolor.FillcolorValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._box.BoxValidator",
+            "._bandwidth.BandwidthValidator",
+            "._alignmentgroup.AlignmentgroupValidator",
+        ],
+    )
diff --git a/plotly/validators/violin/box/__init__.py b/plotly/validators/violin/box/__init__.py
index 1075b67a070..e10d0b18d36 100644
--- a/plotly/validators/violin/box/__init__.py
+++ b/plotly/validators/violin/box/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._line.LineValidator",
-        "._fillcolor.FillcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._line import LineValidator
+    from ._fillcolor import FillcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._line.LineValidator",
+            "._fillcolor.FillcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/violin/box/line/__init__.py b/plotly/validators/violin/box/line/__init__.py
index d49328faace..63a516578b5 100644
--- a/plotly/validators/violin/box/line/__init__.py
+++ b/plotly/validators/violin/box/line/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/violin/hoverlabel/__init__.py b/plotly/validators/violin/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/violin/hoverlabel/__init__.py
+++ b/plotly/validators/violin/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/violin/hoverlabel/font/__init__.py b/plotly/validators/violin/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/violin/hoverlabel/font/__init__.py
+++ b/plotly/validators/violin/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/violin/legendgrouptitle/__init__.py b/plotly/validators/violin/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/violin/legendgrouptitle/__init__.py
+++ b/plotly/validators/violin/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/violin/legendgrouptitle/font/__init__.py b/plotly/validators/violin/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/violin/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/violin/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/violin/line/__init__.py b/plotly/validators/violin/line/__init__.py
index d49328faace..63a516578b5 100644
--- a/plotly/validators/violin/line/__init__.py
+++ b/plotly/validators/violin/line/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/violin/marker/__init__.py b/plotly/validators/violin/marker/__init__.py
index e15653f2f3d..59cc1848f17 100644
--- a/plotly/validators/violin/marker/__init__.py
+++ b/plotly/validators/violin/marker/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._symbol.SymbolValidator",
-        "._size.SizeValidator",
-        "._outliercolor.OutliercolorValidator",
-        "._opacity.OpacityValidator",
-        "._line.LineValidator",
-        "._color.ColorValidator",
-        "._angle.AngleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._symbol import SymbolValidator
+    from ._size import SizeValidator
+    from ._outliercolor import OutliercolorValidator
+    from ._opacity import OpacityValidator
+    from ._line import LineValidator
+    from ._color import ColorValidator
+    from ._angle import AngleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._symbol.SymbolValidator",
+            "._size.SizeValidator",
+            "._outliercolor.OutliercolorValidator",
+            "._opacity.OpacityValidator",
+            "._line.LineValidator",
+            "._color.ColorValidator",
+            "._angle.AngleValidator",
+        ],
+    )
diff --git a/plotly/validators/violin/marker/line/__init__.py b/plotly/validators/violin/marker/line/__init__.py
index e296cd48503..7778bf581ee 100644
--- a/plotly/validators/violin/marker/line/__init__.py
+++ b/plotly/validators/violin/marker/line/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._width.WidthValidator",
-        "._outlierwidth.OutlierwidthValidator",
-        "._outliercolor.OutliercolorValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._outlierwidth import OutlierwidthValidator
+    from ._outliercolor import OutliercolorValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._outlierwidth.OutlierwidthValidator",
+            "._outliercolor.OutliercolorValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/violin/meanline/__init__.py b/plotly/validators/violin/meanline/__init__.py
index 2e1ba96792a..57028e9aac7 100644
--- a/plotly/validators/violin/meanline/__init__.py
+++ b/plotly/validators/violin/meanline/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._width.WidthValidator", "._visible.VisibleValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/violin/selected/__init__.py b/plotly/validators/violin/selected/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/violin/selected/__init__.py
+++ b/plotly/validators/violin/selected/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/violin/selected/marker/__init__.py b/plotly/validators/violin/selected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/violin/selected/marker/__init__.py
+++ b/plotly/validators/violin/selected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/violin/stream/__init__.py b/plotly/validators/violin/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/violin/stream/__init__.py
+++ b/plotly/validators/violin/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/violin/unselected/__init__.py b/plotly/validators/violin/unselected/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/violin/unselected/__init__.py
+++ b/plotly/validators/violin/unselected/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/violin/unselected/marker/__init__.py b/plotly/validators/violin/unselected/marker/__init__.py
index c9c7226fe44..8c321a38bc5 100644
--- a/plotly/validators/violin/unselected/marker/__init__.py
+++ b/plotly/validators/violin/unselected/marker/__init__.py
@@ -1,8 +1,19 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._size.SizeValidator", "._opacity.OpacityValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._size import SizeValidator
+    from ._opacity import OpacityValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._size.SizeValidator",
+            "._opacity.OpacityValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/volume/__init__.py b/plotly/validators/volume/__init__.py
index dd485aa43a2..bad97b9a272 100644
--- a/plotly/validators/volume/__init__.py
+++ b/plotly/validators/volume/__init__.py
@@ -1,70 +1,135 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zsrc.ZsrcValidator",
-        "._zhoverformat.ZhoverformatValidator",
-        "._z.ZValidator",
-        "._ysrc.YsrcValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._x.XValidator",
-        "._visible.VisibleValidator",
-        "._valuesrc.ValuesrcValidator",
-        "._valuehoverformat.ValuehoverformatValidator",
-        "._value.ValueValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._textsrc.TextsrcValidator",
-        "._text.TextValidator",
-        "._surface.SurfaceValidator",
-        "._stream.StreamValidator",
-        "._spaceframe.SpaceframeValidator",
-        "._slices.SlicesValidator",
-        "._showscale.ShowscaleValidator",
-        "._showlegend.ShowlegendValidator",
-        "._scene.SceneValidator",
-        "._reversescale.ReversescaleValidator",
-        "._opacityscale.OpacityscaleValidator",
-        "._opacity.OpacityValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._lightposition.LightpositionValidator",
-        "._lighting.LightingValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._isomin.IsominValidator",
-        "._isomax.IsomaxValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._flatshading.FlatshadingValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._contour.ContourValidator",
-        "._colorscale.ColorscaleValidator",
-        "._colorbar.ColorbarValidator",
-        "._coloraxis.ColoraxisValidator",
-        "._cmin.CminValidator",
-        "._cmid.CmidValidator",
-        "._cmax.CmaxValidator",
-        "._cauto.CautoValidator",
-        "._caps.CapsValidator",
-        "._autocolorscale.AutocolorscaleValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zsrc import ZsrcValidator
+    from ._zhoverformat import ZhoverformatValidator
+    from ._z import ZValidator
+    from ._ysrc import YsrcValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._x import XValidator
+    from ._visible import VisibleValidator
+    from ._valuesrc import ValuesrcValidator
+    from ._valuehoverformat import ValuehoverformatValidator
+    from ._value import ValueValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._textsrc import TextsrcValidator
+    from ._text import TextValidator
+    from ._surface import SurfaceValidator
+    from ._stream import StreamValidator
+    from ._spaceframe import SpaceframeValidator
+    from ._slices import SlicesValidator
+    from ._showscale import ShowscaleValidator
+    from ._showlegend import ShowlegendValidator
+    from ._scene import SceneValidator
+    from ._reversescale import ReversescaleValidator
+    from ._opacityscale import OpacityscaleValidator
+    from ._opacity import OpacityValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._lightposition import LightpositionValidator
+    from ._lighting import LightingValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._isomin import IsominValidator
+    from ._isomax import IsomaxValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._flatshading import FlatshadingValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._contour import ContourValidator
+    from ._colorscale import ColorscaleValidator
+    from ._colorbar import ColorbarValidator
+    from ._coloraxis import ColoraxisValidator
+    from ._cmin import CminValidator
+    from ._cmid import CmidValidator
+    from ._cmax import CmaxValidator
+    from ._cauto import CautoValidator
+    from ._caps import CapsValidator
+    from ._autocolorscale import AutocolorscaleValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zsrc.ZsrcValidator",
+            "._zhoverformat.ZhoverformatValidator",
+            "._z.ZValidator",
+            "._ysrc.YsrcValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._x.XValidator",
+            "._visible.VisibleValidator",
+            "._valuesrc.ValuesrcValidator",
+            "._valuehoverformat.ValuehoverformatValidator",
+            "._value.ValueValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._textsrc.TextsrcValidator",
+            "._text.TextValidator",
+            "._surface.SurfaceValidator",
+            "._stream.StreamValidator",
+            "._spaceframe.SpaceframeValidator",
+            "._slices.SlicesValidator",
+            "._showscale.ShowscaleValidator",
+            "._showlegend.ShowlegendValidator",
+            "._scene.SceneValidator",
+            "._reversescale.ReversescaleValidator",
+            "._opacityscale.OpacityscaleValidator",
+            "._opacity.OpacityValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._lightposition.LightpositionValidator",
+            "._lighting.LightingValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._isomin.IsominValidator",
+            "._isomax.IsomaxValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._flatshading.FlatshadingValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._contour.ContourValidator",
+            "._colorscale.ColorscaleValidator",
+            "._colorbar.ColorbarValidator",
+            "._coloraxis.ColoraxisValidator",
+            "._cmin.CminValidator",
+            "._cmid.CmidValidator",
+            "._cmax.CmaxValidator",
+            "._cauto.CautoValidator",
+            "._caps.CapsValidator",
+            "._autocolorscale.AutocolorscaleValidator",
+        ],
+    )
diff --git a/plotly/validators/volume/caps/__init__.py b/plotly/validators/volume/caps/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/volume/caps/__init__.py
+++ b/plotly/validators/volume/caps/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/volume/caps/x/__init__.py b/plotly/validators/volume/caps/x/__init__.py
index db8b1b549ef..63a14620d21 100644
--- a/plotly/validators/volume/caps/x/__init__.py
+++ b/plotly/validators/volume/caps/x/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._show.ShowValidator", "._fill.FillValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._fill import FillValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._show.ShowValidator", "._fill.FillValidator"]
+    )
diff --git a/plotly/validators/volume/caps/y/__init__.py b/plotly/validators/volume/caps/y/__init__.py
index db8b1b549ef..63a14620d21 100644
--- a/plotly/validators/volume/caps/y/__init__.py
+++ b/plotly/validators/volume/caps/y/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._show.ShowValidator", "._fill.FillValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._fill import FillValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._show.ShowValidator", "._fill.FillValidator"]
+    )
diff --git a/plotly/validators/volume/caps/z/__init__.py b/plotly/validators/volume/caps/z/__init__.py
index db8b1b549ef..63a14620d21 100644
--- a/plotly/validators/volume/caps/z/__init__.py
+++ b/plotly/validators/volume/caps/z/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._show.ShowValidator", "._fill.FillValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._fill import FillValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._show.ShowValidator", "._fill.FillValidator"]
+    )
diff --git a/plotly/validators/volume/colorbar/__init__.py b/plotly/validators/volume/colorbar/__init__.py
index abd0778e606..84963a2c1b3 100644
--- a/plotly/validators/volume/colorbar/__init__.py
+++ b/plotly/validators/volume/colorbar/__init__.py
@@ -1,58 +1,111 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._yref.YrefValidator",
-        "._ypad.YpadValidator",
-        "._yanchor.YanchorValidator",
-        "._y.YValidator",
-        "._xref.XrefValidator",
-        "._xpad.XpadValidator",
-        "._xanchor.XanchorValidator",
-        "._x.XValidator",
-        "._title.TitleValidator",
-        "._tickwidth.TickwidthValidator",
-        "._tickvalssrc.TickvalssrcValidator",
-        "._tickvals.TickvalsValidator",
-        "._ticktextsrc.TicktextsrcValidator",
-        "._ticktext.TicktextValidator",
-        "._ticksuffix.TicksuffixValidator",
-        "._ticks.TicksValidator",
-        "._tickprefix.TickprefixValidator",
-        "._tickmode.TickmodeValidator",
-        "._ticklen.TicklenValidator",
-        "._ticklabelstep.TicklabelstepValidator",
-        "._ticklabelposition.TicklabelpositionValidator",
-        "._ticklabeloverflow.TicklabeloverflowValidator",
-        "._tickformatstopdefaults.TickformatstopdefaultsValidator",
-        "._tickformatstops.TickformatstopsValidator",
-        "._tickformat.TickformatValidator",
-        "._tickfont.TickfontValidator",
-        "._tickcolor.TickcolorValidator",
-        "._tickangle.TickangleValidator",
-        "._tick0.Tick0Validator",
-        "._thicknessmode.ThicknessmodeValidator",
-        "._thickness.ThicknessValidator",
-        "._showticksuffix.ShowticksuffixValidator",
-        "._showtickprefix.ShowtickprefixValidator",
-        "._showticklabels.ShowticklabelsValidator",
-        "._showexponent.ShowexponentValidator",
-        "._separatethousands.SeparatethousandsValidator",
-        "._outlinewidth.OutlinewidthValidator",
-        "._outlinecolor.OutlinecolorValidator",
-        "._orientation.OrientationValidator",
-        "._nticks.NticksValidator",
-        "._minexponent.MinexponentValidator",
-        "._lenmode.LenmodeValidator",
-        "._len.LenValidator",
-        "._labelalias.LabelaliasValidator",
-        "._exponentformat.ExponentformatValidator",
-        "._dtick.DtickValidator",
-        "._borderwidth.BorderwidthValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolor.BgcolorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._yref import YrefValidator
+    from ._ypad import YpadValidator
+    from ._yanchor import YanchorValidator
+    from ._y import YValidator
+    from ._xref import XrefValidator
+    from ._xpad import XpadValidator
+    from ._xanchor import XanchorValidator
+    from ._x import XValidator
+    from ._title import TitleValidator
+    from ._tickwidth import TickwidthValidator
+    from ._tickvalssrc import TickvalssrcValidator
+    from ._tickvals import TickvalsValidator
+    from ._ticktextsrc import TicktextsrcValidator
+    from ._ticktext import TicktextValidator
+    from ._ticksuffix import TicksuffixValidator
+    from ._ticks import TicksValidator
+    from ._tickprefix import TickprefixValidator
+    from ._tickmode import TickmodeValidator
+    from ._ticklen import TicklenValidator
+    from ._ticklabelstep import TicklabelstepValidator
+    from ._ticklabelposition import TicklabelpositionValidator
+    from ._ticklabeloverflow import TicklabeloverflowValidator
+    from ._tickformatstopdefaults import TickformatstopdefaultsValidator
+    from ._tickformatstops import TickformatstopsValidator
+    from ._tickformat import TickformatValidator
+    from ._tickfont import TickfontValidator
+    from ._tickcolor import TickcolorValidator
+    from ._tickangle import TickangleValidator
+    from ._tick0 import Tick0Validator
+    from ._thicknessmode import ThicknessmodeValidator
+    from ._thickness import ThicknessValidator
+    from ._showticksuffix import ShowticksuffixValidator
+    from ._showtickprefix import ShowtickprefixValidator
+    from ._showticklabels import ShowticklabelsValidator
+    from ._showexponent import ShowexponentValidator
+    from ._separatethousands import SeparatethousandsValidator
+    from ._outlinewidth import OutlinewidthValidator
+    from ._outlinecolor import OutlinecolorValidator
+    from ._orientation import OrientationValidator
+    from ._nticks import NticksValidator
+    from ._minexponent import MinexponentValidator
+    from ._lenmode import LenmodeValidator
+    from ._len import LenValidator
+    from ._labelalias import LabelaliasValidator
+    from ._exponentformat import ExponentformatValidator
+    from ._dtick import DtickValidator
+    from ._borderwidth import BorderwidthValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolor import BgcolorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._yref.YrefValidator",
+            "._ypad.YpadValidator",
+            "._yanchor.YanchorValidator",
+            "._y.YValidator",
+            "._xref.XrefValidator",
+            "._xpad.XpadValidator",
+            "._xanchor.XanchorValidator",
+            "._x.XValidator",
+            "._title.TitleValidator",
+            "._tickwidth.TickwidthValidator",
+            "._tickvalssrc.TickvalssrcValidator",
+            "._tickvals.TickvalsValidator",
+            "._ticktextsrc.TicktextsrcValidator",
+            "._ticktext.TicktextValidator",
+            "._ticksuffix.TicksuffixValidator",
+            "._ticks.TicksValidator",
+            "._tickprefix.TickprefixValidator",
+            "._tickmode.TickmodeValidator",
+            "._ticklen.TicklenValidator",
+            "._ticklabelstep.TicklabelstepValidator",
+            "._ticklabelposition.TicklabelpositionValidator",
+            "._ticklabeloverflow.TicklabeloverflowValidator",
+            "._tickformatstopdefaults.TickformatstopdefaultsValidator",
+            "._tickformatstops.TickformatstopsValidator",
+            "._tickformat.TickformatValidator",
+            "._tickfont.TickfontValidator",
+            "._tickcolor.TickcolorValidator",
+            "._tickangle.TickangleValidator",
+            "._tick0.Tick0Validator",
+            "._thicknessmode.ThicknessmodeValidator",
+            "._thickness.ThicknessValidator",
+            "._showticksuffix.ShowticksuffixValidator",
+            "._showtickprefix.ShowtickprefixValidator",
+            "._showticklabels.ShowticklabelsValidator",
+            "._showexponent.ShowexponentValidator",
+            "._separatethousands.SeparatethousandsValidator",
+            "._outlinewidth.OutlinewidthValidator",
+            "._outlinecolor.OutlinecolorValidator",
+            "._orientation.OrientationValidator",
+            "._nticks.NticksValidator",
+            "._minexponent.MinexponentValidator",
+            "._lenmode.LenmodeValidator",
+            "._len.LenValidator",
+            "._labelalias.LabelaliasValidator",
+            "._exponentformat.ExponentformatValidator",
+            "._dtick.DtickValidator",
+            "._borderwidth.BorderwidthValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolor.BgcolorValidator",
+        ],
+    )
diff --git a/plotly/validators/volume/colorbar/tickfont/__init__.py b/plotly/validators/volume/colorbar/tickfont/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/volume/colorbar/tickfont/__init__.py
+++ b/plotly/validators/volume/colorbar/tickfont/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/volume/colorbar/tickformatstop/__init__.py b/plotly/validators/volume/colorbar/tickformatstop/__init__.py
index 59ff89e603f..559090a1dec 100644
--- a/plotly/validators/volume/colorbar/tickformatstop/__init__.py
+++ b/plotly/validators/volume/colorbar/tickformatstop/__init__.py
@@ -1,14 +1,23 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._value.ValueValidator",
-        "._templateitemname.TemplateitemnameValidator",
-        "._name.NameValidator",
-        "._enabled.EnabledValidator",
-        "._dtickrange.DtickrangeValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._value import ValueValidator
+    from ._templateitemname import TemplateitemnameValidator
+    from ._name import NameValidator
+    from ._enabled import EnabledValidator
+    from ._dtickrange import DtickrangeValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._value.ValueValidator",
+            "._templateitemname.TemplateitemnameValidator",
+            "._name.NameValidator",
+            "._enabled.EnabledValidator",
+            "._dtickrange.DtickrangeValidator",
+        ],
+    )
diff --git a/plotly/validators/volume/colorbar/title/__init__.py b/plotly/validators/volume/colorbar/title/__init__.py
index d5af3ccb3ad..1aae6a91aa5 100644
--- a/plotly/validators/volume/colorbar/title/__init__.py
+++ b/plotly/validators/volume/colorbar/title/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._side import SideValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._text.TextValidator", "._side.SideValidator", "._font.FontValidator"],
+    )
diff --git a/plotly/validators/volume/colorbar/title/font/__init__.py b/plotly/validators/volume/colorbar/title/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/volume/colorbar/title/font/__init__.py
+++ b/plotly/validators/volume/colorbar/title/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/volume/contour/__init__.py b/plotly/validators/volume/contour/__init__.py
index 1a1cc3031d5..8d51b1d4c02 100644
--- a/plotly/validators/volume/contour/__init__.py
+++ b/plotly/validators/volume/contour/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._width.WidthValidator", "._show.ShowValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._show import ShowValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._width.WidthValidator", "._show.ShowValidator", "._color.ColorValidator"],
+    )
diff --git a/plotly/validators/volume/hoverlabel/__init__.py b/plotly/validators/volume/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/volume/hoverlabel/__init__.py
+++ b/plotly/validators/volume/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/volume/hoverlabel/font/__init__.py b/plotly/validators/volume/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/volume/hoverlabel/font/__init__.py
+++ b/plotly/validators/volume/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/volume/legendgrouptitle/__init__.py b/plotly/validators/volume/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/volume/legendgrouptitle/__init__.py
+++ b/plotly/validators/volume/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/volume/legendgrouptitle/font/__init__.py b/plotly/validators/volume/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/volume/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/volume/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/volume/lighting/__init__.py b/plotly/validators/volume/lighting/__init__.py
index 1f11e1b86fc..028351f35d6 100644
--- a/plotly/validators/volume/lighting/__init__.py
+++ b/plotly/validators/volume/lighting/__init__.py
@@ -1,16 +1,27 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._vertexnormalsepsilon.VertexnormalsepsilonValidator",
-        "._specular.SpecularValidator",
-        "._roughness.RoughnessValidator",
-        "._fresnel.FresnelValidator",
-        "._facenormalsepsilon.FacenormalsepsilonValidator",
-        "._diffuse.DiffuseValidator",
-        "._ambient.AmbientValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._vertexnormalsepsilon import VertexnormalsepsilonValidator
+    from ._specular import SpecularValidator
+    from ._roughness import RoughnessValidator
+    from ._fresnel import FresnelValidator
+    from ._facenormalsepsilon import FacenormalsepsilonValidator
+    from ._diffuse import DiffuseValidator
+    from ._ambient import AmbientValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._vertexnormalsepsilon.VertexnormalsepsilonValidator",
+            "._specular.SpecularValidator",
+            "._roughness.RoughnessValidator",
+            "._fresnel.FresnelValidator",
+            "._facenormalsepsilon.FacenormalsepsilonValidator",
+            "._diffuse.DiffuseValidator",
+            "._ambient.AmbientValidator",
+        ],
+    )
diff --git a/plotly/validators/volume/lightposition/__init__.py b/plotly/validators/volume/lightposition/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/volume/lightposition/__init__.py
+++ b/plotly/validators/volume/lightposition/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/volume/slices/__init__.py b/plotly/validators/volume/slices/__init__.py
index 8c47d2db5f4..52779f59bc4 100644
--- a/plotly/validators/volume/slices/__init__.py
+++ b/plotly/validators/volume/slices/__init__.py
@@ -1,6 +1,13 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._z import ZValidator
+    from ._y import YValidator
+    from ._x import XValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._z.ZValidator", "._y.YValidator", "._x.XValidator"]
+    )
diff --git a/plotly/validators/volume/slices/x/__init__.py b/plotly/validators/volume/slices/x/__init__.py
index 69805fd6116..9085068ffff 100644
--- a/plotly/validators/volume/slices/x/__init__.py
+++ b/plotly/validators/volume/slices/x/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._show.ShowValidator",
-        "._locationssrc.LocationssrcValidator",
-        "._locations.LocationsValidator",
-        "._fill.FillValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._locationssrc import LocationssrcValidator
+    from ._locations import LocationsValidator
+    from ._fill import FillValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._show.ShowValidator",
+            "._locationssrc.LocationssrcValidator",
+            "._locations.LocationsValidator",
+            "._fill.FillValidator",
+        ],
+    )
diff --git a/plotly/validators/volume/slices/y/__init__.py b/plotly/validators/volume/slices/y/__init__.py
index 69805fd6116..9085068ffff 100644
--- a/plotly/validators/volume/slices/y/__init__.py
+++ b/plotly/validators/volume/slices/y/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._show.ShowValidator",
-        "._locationssrc.LocationssrcValidator",
-        "._locations.LocationsValidator",
-        "._fill.FillValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._locationssrc import LocationssrcValidator
+    from ._locations import LocationsValidator
+    from ._fill import FillValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._show.ShowValidator",
+            "._locationssrc.LocationssrcValidator",
+            "._locations.LocationsValidator",
+            "._fill.FillValidator",
+        ],
+    )
diff --git a/plotly/validators/volume/slices/z/__init__.py b/plotly/validators/volume/slices/z/__init__.py
index 69805fd6116..9085068ffff 100644
--- a/plotly/validators/volume/slices/z/__init__.py
+++ b/plotly/validators/volume/slices/z/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._show.ShowValidator",
-        "._locationssrc.LocationssrcValidator",
-        "._locations.LocationsValidator",
-        "._fill.FillValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._locationssrc import LocationssrcValidator
+    from ._locations import LocationsValidator
+    from ._fill import FillValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._show.ShowValidator",
+            "._locationssrc.LocationssrcValidator",
+            "._locations.LocationsValidator",
+            "._fill.FillValidator",
+        ],
+    )
diff --git a/plotly/validators/volume/spaceframe/__init__.py b/plotly/validators/volume/spaceframe/__init__.py
index db8b1b549ef..63a14620d21 100644
--- a/plotly/validators/volume/spaceframe/__init__.py
+++ b/plotly/validators/volume/spaceframe/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._show.ShowValidator", "._fill.FillValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._fill import FillValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._show.ShowValidator", "._fill.FillValidator"]
+    )
diff --git a/plotly/validators/volume/stream/__init__.py b/plotly/validators/volume/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/volume/stream/__init__.py
+++ b/plotly/validators/volume/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/volume/surface/__init__.py b/plotly/validators/volume/surface/__init__.py
index e200f4835e8..79e3ea4c55c 100644
--- a/plotly/validators/volume/surface/__init__.py
+++ b/plotly/validators/volume/surface/__init__.py
@@ -1,13 +1,21 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._show.ShowValidator",
-        "._pattern.PatternValidator",
-        "._fill.FillValidator",
-        "._count.CountValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._show import ShowValidator
+    from ._pattern import PatternValidator
+    from ._fill import FillValidator
+    from ._count import CountValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._show.ShowValidator",
+            "._pattern.PatternValidator",
+            "._fill.FillValidator",
+            "._count.CountValidator",
+        ],
+    )
diff --git a/plotly/validators/waterfall/__init__.py b/plotly/validators/waterfall/__init__.py
index 3049f7babca..74a33830936 100644
--- a/plotly/validators/waterfall/__init__.py
+++ b/plotly/validators/waterfall/__init__.py
@@ -1,82 +1,159 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._zorder.ZorderValidator",
-        "._ysrc.YsrcValidator",
-        "._yperiodalignment.YperiodalignmentValidator",
-        "._yperiod0.Yperiod0Validator",
-        "._yperiod.YperiodValidator",
-        "._yhoverformat.YhoverformatValidator",
-        "._yaxis.YaxisValidator",
-        "._y0.Y0Validator",
-        "._y.YValidator",
-        "._xsrc.XsrcValidator",
-        "._xperiodalignment.XperiodalignmentValidator",
-        "._xperiod0.Xperiod0Validator",
-        "._xperiod.XperiodValidator",
-        "._xhoverformat.XhoverformatValidator",
-        "._xaxis.XaxisValidator",
-        "._x0.X0Validator",
-        "._x.XValidator",
-        "._widthsrc.WidthsrcValidator",
-        "._width.WidthValidator",
-        "._visible.VisibleValidator",
-        "._uirevision.UirevisionValidator",
-        "._uid.UidValidator",
-        "._totals.TotalsValidator",
-        "._texttemplatesrc.TexttemplatesrcValidator",
-        "._texttemplate.TexttemplateValidator",
-        "._textsrc.TextsrcValidator",
-        "._textpositionsrc.TextpositionsrcValidator",
-        "._textposition.TextpositionValidator",
-        "._textinfo.TextinfoValidator",
-        "._textfont.TextfontValidator",
-        "._textangle.TextangleValidator",
-        "._text.TextValidator",
-        "._stream.StreamValidator",
-        "._showlegend.ShowlegendValidator",
-        "._selectedpoints.SelectedpointsValidator",
-        "._outsidetextfont.OutsidetextfontValidator",
-        "._orientation.OrientationValidator",
-        "._opacity.OpacityValidator",
-        "._offsetsrc.OffsetsrcValidator",
-        "._offsetgroup.OffsetgroupValidator",
-        "._offset.OffsetValidator",
-        "._name.NameValidator",
-        "._metasrc.MetasrcValidator",
-        "._meta.MetaValidator",
-        "._measuresrc.MeasuresrcValidator",
-        "._measure.MeasureValidator",
-        "._legendwidth.LegendwidthValidator",
-        "._legendrank.LegendrankValidator",
-        "._legendgrouptitle.LegendgrouptitleValidator",
-        "._legendgroup.LegendgroupValidator",
-        "._legend.LegendValidator",
-        "._insidetextfont.InsidetextfontValidator",
-        "._insidetextanchor.InsidetextanchorValidator",
-        "._increasing.IncreasingValidator",
-        "._idssrc.IdssrcValidator",
-        "._ids.IdsValidator",
-        "._hovertextsrc.HovertextsrcValidator",
-        "._hovertext.HovertextValidator",
-        "._hovertemplatesrc.HovertemplatesrcValidator",
-        "._hovertemplate.HovertemplateValidator",
-        "._hoverlabel.HoverlabelValidator",
-        "._hoverinfosrc.HoverinfosrcValidator",
-        "._hoverinfo.HoverinfoValidator",
-        "._dy.DyValidator",
-        "._dx.DxValidator",
-        "._decreasing.DecreasingValidator",
-        "._customdatasrc.CustomdatasrcValidator",
-        "._customdata.CustomdataValidator",
-        "._constraintext.ConstraintextValidator",
-        "._connector.ConnectorValidator",
-        "._cliponaxis.CliponaxisValidator",
-        "._base.BaseValidator",
-        "._alignmentgroup.AlignmentgroupValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._zorder import ZorderValidator
+    from ._ysrc import YsrcValidator
+    from ._yperiodalignment import YperiodalignmentValidator
+    from ._yperiod0 import Yperiod0Validator
+    from ._yperiod import YperiodValidator
+    from ._yhoverformat import YhoverformatValidator
+    from ._yaxis import YaxisValidator
+    from ._y0 import Y0Validator
+    from ._y import YValidator
+    from ._xsrc import XsrcValidator
+    from ._xperiodalignment import XperiodalignmentValidator
+    from ._xperiod0 import Xperiod0Validator
+    from ._xperiod import XperiodValidator
+    from ._xhoverformat import XhoverformatValidator
+    from ._xaxis import XaxisValidator
+    from ._x0 import X0Validator
+    from ._x import XValidator
+    from ._widthsrc import WidthsrcValidator
+    from ._width import WidthValidator
+    from ._visible import VisibleValidator
+    from ._uirevision import UirevisionValidator
+    from ._uid import UidValidator
+    from ._totals import TotalsValidator
+    from ._texttemplatesrc import TexttemplatesrcValidator
+    from ._texttemplate import TexttemplateValidator
+    from ._textsrc import TextsrcValidator
+    from ._textpositionsrc import TextpositionsrcValidator
+    from ._textposition import TextpositionValidator
+    from ._textinfo import TextinfoValidator
+    from ._textfont import TextfontValidator
+    from ._textangle import TextangleValidator
+    from ._text import TextValidator
+    from ._stream import StreamValidator
+    from ._showlegend import ShowlegendValidator
+    from ._selectedpoints import SelectedpointsValidator
+    from ._outsidetextfont import OutsidetextfontValidator
+    from ._orientation import OrientationValidator
+    from ._opacity import OpacityValidator
+    from ._offsetsrc import OffsetsrcValidator
+    from ._offsetgroup import OffsetgroupValidator
+    from ._offset import OffsetValidator
+    from ._name import NameValidator
+    from ._metasrc import MetasrcValidator
+    from ._meta import MetaValidator
+    from ._measuresrc import MeasuresrcValidator
+    from ._measure import MeasureValidator
+    from ._legendwidth import LegendwidthValidator
+    from ._legendrank import LegendrankValidator
+    from ._legendgrouptitle import LegendgrouptitleValidator
+    from ._legendgroup import LegendgroupValidator
+    from ._legend import LegendValidator
+    from ._insidetextfont import InsidetextfontValidator
+    from ._insidetextanchor import InsidetextanchorValidator
+    from ._increasing import IncreasingValidator
+    from ._idssrc import IdssrcValidator
+    from ._ids import IdsValidator
+    from ._hovertextsrc import HovertextsrcValidator
+    from ._hovertext import HovertextValidator
+    from ._hovertemplatesrc import HovertemplatesrcValidator
+    from ._hovertemplate import HovertemplateValidator
+    from ._hoverlabel import HoverlabelValidator
+    from ._hoverinfosrc import HoverinfosrcValidator
+    from ._hoverinfo import HoverinfoValidator
+    from ._dy import DyValidator
+    from ._dx import DxValidator
+    from ._decreasing import DecreasingValidator
+    from ._customdatasrc import CustomdatasrcValidator
+    from ._customdata import CustomdataValidator
+    from ._constraintext import ConstraintextValidator
+    from ._connector import ConnectorValidator
+    from ._cliponaxis import CliponaxisValidator
+    from ._base import BaseValidator
+    from ._alignmentgroup import AlignmentgroupValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._zorder.ZorderValidator",
+            "._ysrc.YsrcValidator",
+            "._yperiodalignment.YperiodalignmentValidator",
+            "._yperiod0.Yperiod0Validator",
+            "._yperiod.YperiodValidator",
+            "._yhoverformat.YhoverformatValidator",
+            "._yaxis.YaxisValidator",
+            "._y0.Y0Validator",
+            "._y.YValidator",
+            "._xsrc.XsrcValidator",
+            "._xperiodalignment.XperiodalignmentValidator",
+            "._xperiod0.Xperiod0Validator",
+            "._xperiod.XperiodValidator",
+            "._xhoverformat.XhoverformatValidator",
+            "._xaxis.XaxisValidator",
+            "._x0.X0Validator",
+            "._x.XValidator",
+            "._widthsrc.WidthsrcValidator",
+            "._width.WidthValidator",
+            "._visible.VisibleValidator",
+            "._uirevision.UirevisionValidator",
+            "._uid.UidValidator",
+            "._totals.TotalsValidator",
+            "._texttemplatesrc.TexttemplatesrcValidator",
+            "._texttemplate.TexttemplateValidator",
+            "._textsrc.TextsrcValidator",
+            "._textpositionsrc.TextpositionsrcValidator",
+            "._textposition.TextpositionValidator",
+            "._textinfo.TextinfoValidator",
+            "._textfont.TextfontValidator",
+            "._textangle.TextangleValidator",
+            "._text.TextValidator",
+            "._stream.StreamValidator",
+            "._showlegend.ShowlegendValidator",
+            "._selectedpoints.SelectedpointsValidator",
+            "._outsidetextfont.OutsidetextfontValidator",
+            "._orientation.OrientationValidator",
+            "._opacity.OpacityValidator",
+            "._offsetsrc.OffsetsrcValidator",
+            "._offsetgroup.OffsetgroupValidator",
+            "._offset.OffsetValidator",
+            "._name.NameValidator",
+            "._metasrc.MetasrcValidator",
+            "._meta.MetaValidator",
+            "._measuresrc.MeasuresrcValidator",
+            "._measure.MeasureValidator",
+            "._legendwidth.LegendwidthValidator",
+            "._legendrank.LegendrankValidator",
+            "._legendgrouptitle.LegendgrouptitleValidator",
+            "._legendgroup.LegendgroupValidator",
+            "._legend.LegendValidator",
+            "._insidetextfont.InsidetextfontValidator",
+            "._insidetextanchor.InsidetextanchorValidator",
+            "._increasing.IncreasingValidator",
+            "._idssrc.IdssrcValidator",
+            "._ids.IdsValidator",
+            "._hovertextsrc.HovertextsrcValidator",
+            "._hovertext.HovertextValidator",
+            "._hovertemplatesrc.HovertemplatesrcValidator",
+            "._hovertemplate.HovertemplateValidator",
+            "._hoverlabel.HoverlabelValidator",
+            "._hoverinfosrc.HoverinfosrcValidator",
+            "._hoverinfo.HoverinfoValidator",
+            "._dy.DyValidator",
+            "._dx.DxValidator",
+            "._decreasing.DecreasingValidator",
+            "._customdatasrc.CustomdatasrcValidator",
+            "._customdata.CustomdataValidator",
+            "._constraintext.ConstraintextValidator",
+            "._connector.ConnectorValidator",
+            "._cliponaxis.CliponaxisValidator",
+            "._base.BaseValidator",
+            "._alignmentgroup.AlignmentgroupValidator",
+        ],
+    )
diff --git a/plotly/validators/waterfall/connector/__init__.py b/plotly/validators/waterfall/connector/__init__.py
index bd950c4fbda..128cd52908a 100644
--- a/plotly/validators/waterfall/connector/__init__.py
+++ b/plotly/validators/waterfall/connector/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._visible.VisibleValidator", "._mode.ModeValidator", "._line.LineValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._visible import VisibleValidator
+    from ._mode import ModeValidator
+    from ._line import LineValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._visible.VisibleValidator", "._mode.ModeValidator", "._line.LineValidator"],
+    )
diff --git a/plotly/validators/waterfall/connector/line/__init__.py b/plotly/validators/waterfall/connector/line/__init__.py
index c5140ef758d..cff41466517 100644
--- a/plotly/validators/waterfall/connector/line/__init__.py
+++ b/plotly/validators/waterfall/connector/line/__init__.py
@@ -1,8 +1,15 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._dash import DashValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        ["._width.WidthValidator", "._dash.DashValidator", "._color.ColorValidator"],
+    )
diff --git a/plotly/validators/waterfall/decreasing/__init__.py b/plotly/validators/waterfall/decreasing/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/waterfall/decreasing/__init__.py
+++ b/plotly/validators/waterfall/decreasing/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/waterfall/decreasing/marker/__init__.py b/plotly/validators/waterfall/decreasing/marker/__init__.py
index 1a3eaa8b6be..9819cbc3592 100644
--- a/plotly/validators/waterfall/decreasing/marker/__init__.py
+++ b/plotly/validators/waterfall/decreasing/marker/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._line.LineValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import LineValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._line.LineValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/waterfall/decreasing/marker/line/__init__.py b/plotly/validators/waterfall/decreasing/marker/line/__init__.py
index d49328faace..63a516578b5 100644
--- a/plotly/validators/waterfall/decreasing/marker/line/__init__.py
+++ b/plotly/validators/waterfall/decreasing/marker/line/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/waterfall/hoverlabel/__init__.py b/plotly/validators/waterfall/hoverlabel/__init__.py
index bd6ede58821..c6ee8b59679 100644
--- a/plotly/validators/waterfall/hoverlabel/__init__.py
+++ b/plotly/validators/waterfall/hoverlabel/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._namelengthsrc.NamelengthsrcValidator",
-        "._namelength.NamelengthValidator",
-        "._font.FontValidator",
-        "._bordercolorsrc.BordercolorsrcValidator",
-        "._bordercolor.BordercolorValidator",
-        "._bgcolorsrc.BgcolorsrcValidator",
-        "._bgcolor.BgcolorValidator",
-        "._alignsrc.AlignsrcValidator",
-        "._align.AlignValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._namelengthsrc import NamelengthsrcValidator
+    from ._namelength import NamelengthValidator
+    from ._font import FontValidator
+    from ._bordercolorsrc import BordercolorsrcValidator
+    from ._bordercolor import BordercolorValidator
+    from ._bgcolorsrc import BgcolorsrcValidator
+    from ._bgcolor import BgcolorValidator
+    from ._alignsrc import AlignsrcValidator
+    from ._align import AlignValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._namelengthsrc.NamelengthsrcValidator",
+            "._namelength.NamelengthValidator",
+            "._font.FontValidator",
+            "._bordercolorsrc.BordercolorsrcValidator",
+            "._bordercolor.BordercolorValidator",
+            "._bgcolorsrc.BgcolorsrcValidator",
+            "._bgcolor.BgcolorValidator",
+            "._alignsrc.AlignsrcValidator",
+            "._align.AlignValidator",
+        ],
+    )
diff --git a/plotly/validators/waterfall/hoverlabel/font/__init__.py b/plotly/validators/waterfall/hoverlabel/font/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/waterfall/hoverlabel/font/__init__.py
+++ b/plotly/validators/waterfall/hoverlabel/font/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/waterfall/increasing/__init__.py b/plotly/validators/waterfall/increasing/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/waterfall/increasing/__init__.py
+++ b/plotly/validators/waterfall/increasing/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/waterfall/increasing/marker/__init__.py b/plotly/validators/waterfall/increasing/marker/__init__.py
index 1a3eaa8b6be..9819cbc3592 100644
--- a/plotly/validators/waterfall/increasing/marker/__init__.py
+++ b/plotly/validators/waterfall/increasing/marker/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._line.LineValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import LineValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._line.LineValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/waterfall/increasing/marker/line/__init__.py b/plotly/validators/waterfall/increasing/marker/line/__init__.py
index d49328faace..63a516578b5 100644
--- a/plotly/validators/waterfall/increasing/marker/line/__init__.py
+++ b/plotly/validators/waterfall/increasing/marker/line/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/waterfall/insidetextfont/__init__.py b/plotly/validators/waterfall/insidetextfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/waterfall/insidetextfont/__init__.py
+++ b/plotly/validators/waterfall/insidetextfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/waterfall/legendgrouptitle/__init__.py b/plotly/validators/waterfall/legendgrouptitle/__init__.py
index 64dac54dfaf..ad27d3ad3e2 100644
--- a/plotly/validators/waterfall/legendgrouptitle/__init__.py
+++ b/plotly/validators/waterfall/legendgrouptitle/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._text.TextValidator", "._font.FontValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._text import TextValidator
+    from ._font import FontValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._text.TextValidator", "._font.FontValidator"]
+    )
diff --git a/plotly/validators/waterfall/legendgrouptitle/font/__init__.py b/plotly/validators/waterfall/legendgrouptitle/font/__init__.py
index b29a76f8003..983f9a04e58 100644
--- a/plotly/validators/waterfall/legendgrouptitle/font/__init__.py
+++ b/plotly/validators/waterfall/legendgrouptitle/font/__init__.py
@@ -1,18 +1,31 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weight.WeightValidator",
-        "._variant.VariantValidator",
-        "._textcase.TextcaseValidator",
-        "._style.StyleValidator",
-        "._size.SizeValidator",
-        "._shadow.ShadowValidator",
-        "._lineposition.LinepositionValidator",
-        "._family.FamilyValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weight import WeightValidator
+    from ._variant import VariantValidator
+    from ._textcase import TextcaseValidator
+    from ._style import StyleValidator
+    from ._size import SizeValidator
+    from ._shadow import ShadowValidator
+    from ._lineposition import LinepositionValidator
+    from ._family import FamilyValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weight.WeightValidator",
+            "._variant.VariantValidator",
+            "._textcase.TextcaseValidator",
+            "._style.StyleValidator",
+            "._size.SizeValidator",
+            "._shadow.ShadowValidator",
+            "._lineposition.LinepositionValidator",
+            "._family.FamilyValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/waterfall/outsidetextfont/__init__.py b/plotly/validators/waterfall/outsidetextfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/waterfall/outsidetextfont/__init__.py
+++ b/plotly/validators/waterfall/outsidetextfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/waterfall/stream/__init__.py b/plotly/validators/waterfall/stream/__init__.py
index 47382823127..a6c0eed7630 100644
--- a/plotly/validators/waterfall/stream/__init__.py
+++ b/plotly/validators/waterfall/stream/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._token import TokenValidator
+    from ._maxpoints import MaxpointsValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"]
+    )
diff --git a/plotly/validators/waterfall/textfont/__init__.py b/plotly/validators/waterfall/textfont/__init__.py
index 3dc491e0895..487c2f8676e 100644
--- a/plotly/validators/waterfall/textfont/__init__.py
+++ b/plotly/validators/waterfall/textfont/__init__.py
@@ -1,27 +1,49 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__,
-    [],
-    [
-        "._weightsrc.WeightsrcValidator",
-        "._weight.WeightValidator",
-        "._variantsrc.VariantsrcValidator",
-        "._variant.VariantValidator",
-        "._textcasesrc.TextcasesrcValidator",
-        "._textcase.TextcaseValidator",
-        "._stylesrc.StylesrcValidator",
-        "._style.StyleValidator",
-        "._sizesrc.SizesrcValidator",
-        "._size.SizeValidator",
-        "._shadowsrc.ShadowsrcValidator",
-        "._shadow.ShadowValidator",
-        "._linepositionsrc.LinepositionsrcValidator",
-        "._lineposition.LinepositionValidator",
-        "._familysrc.FamilysrcValidator",
-        "._family.FamilyValidator",
-        "._colorsrc.ColorsrcValidator",
-        "._color.ColorValidator",
-    ],
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._weightsrc import WeightsrcValidator
+    from ._weight import WeightValidator
+    from ._variantsrc import VariantsrcValidator
+    from ._variant import VariantValidator
+    from ._textcasesrc import TextcasesrcValidator
+    from ._textcase import TextcaseValidator
+    from ._stylesrc import StylesrcValidator
+    from ._style import StyleValidator
+    from ._sizesrc import SizesrcValidator
+    from ._size import SizeValidator
+    from ._shadowsrc import ShadowsrcValidator
+    from ._shadow import ShadowValidator
+    from ._linepositionsrc import LinepositionsrcValidator
+    from ._lineposition import LinepositionValidator
+    from ._familysrc import FamilysrcValidator
+    from ._family import FamilyValidator
+    from ._colorsrc import ColorsrcValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__,
+        [],
+        [
+            "._weightsrc.WeightsrcValidator",
+            "._weight.WeightValidator",
+            "._variantsrc.VariantsrcValidator",
+            "._variant.VariantValidator",
+            "._textcasesrc.TextcasesrcValidator",
+            "._textcase.TextcaseValidator",
+            "._stylesrc.StylesrcValidator",
+            "._style.StyleValidator",
+            "._sizesrc.SizesrcValidator",
+            "._size.SizeValidator",
+            "._shadowsrc.ShadowsrcValidator",
+            "._shadow.ShadowValidator",
+            "._linepositionsrc.LinepositionsrcValidator",
+            "._lineposition.LinepositionValidator",
+            "._familysrc.FamilysrcValidator",
+            "._family.FamilyValidator",
+            "._colorsrc.ColorsrcValidator",
+            "._color.ColorValidator",
+        ],
+    )
diff --git a/plotly/validators/waterfall/totals/__init__.py b/plotly/validators/waterfall/totals/__init__.py
index 20900abc1a7..e9bdb89f26d 100644
--- a/plotly/validators/waterfall/totals/__init__.py
+++ b/plotly/validators/waterfall/totals/__init__.py
@@ -1,6 +1,11 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._marker.MarkerValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._marker import MarkerValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._marker.MarkerValidator"]
+    )
diff --git a/plotly/validators/waterfall/totals/marker/__init__.py b/plotly/validators/waterfall/totals/marker/__init__.py
index 1a3eaa8b6be..9819cbc3592 100644
--- a/plotly/validators/waterfall/totals/marker/__init__.py
+++ b/plotly/validators/waterfall/totals/marker/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._line.LineValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._line import LineValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._line.LineValidator", "._color.ColorValidator"]
+    )
diff --git a/plotly/validators/waterfall/totals/marker/line/__init__.py b/plotly/validators/waterfall/totals/marker/line/__init__.py
index d49328faace..63a516578b5 100644
--- a/plotly/validators/waterfall/totals/marker/line/__init__.py
+++ b/plotly/validators/waterfall/totals/marker/line/__init__.py
@@ -1,6 +1,12 @@
 import sys
-from _plotly_utils.importers import relative_import
+from typing import TYPE_CHECKING
 
-__all__, __getattr__, __dir__ = relative_import(
-    __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
-)
+if sys.version_info < (3, 7) or TYPE_CHECKING:
+    from ._width import WidthValidator
+    from ._color import ColorValidator
+else:
+    from _plotly_utils.importers import relative_import
+
+    __all__, __getattr__, __dir__ = relative_import(
+        __name__, [], ["._width.WidthValidator", "._color.ColorValidator"]
+    )
diff --git a/pyproject.toml b/pyproject.toml
index 8d8e813caab..5b7193f2168 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -36,7 +36,7 @@ classifiers = [
     "Topic :: Scientific/Engineering :: Visualization",
     "License :: OSI Approved :: MIT License"
 ]
-requires-python = ">=3.8"
+requires-python = ">=3.9"
 license = {file="LICENSE.txt"}
 version = "6.1.1"
 dependencies = [
diff --git a/requires-optional.txt b/requires-optional.txt
index a772dedd876..7ca25df732d 100644
--- a/requires-optional.txt
+++ b/requires-optional.txt
@@ -29,7 +29,7 @@ pytz
 
 ## code formatting ##
 pre-commit
-black==22.3.0
+black==25.1.0
 
 ## codegen dependencies ##
 inflect
diff --git a/uv.lock b/uv.lock
new file mode 100644
index 00000000000..ebd49ead085
--- /dev/null
+++ b/uv.lock
@@ -0,0 +1,518 @@
+version = 1
+revision = 1
+requires-python = ">=3.9"
+resolution-markers = [
+    "python_full_version >= '3.10'",
+    "python_full_version < '3.10'",
+]
+
+[[package]]
+name = "black"
+version = "25.1.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+    { name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
+    { name = "click", version = "8.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+    { name = "mypy-extensions" },
+    { name = "packaging" },
+    { name = "pathspec" },
+    { name = "platformdirs" },
+    { name = "tomli", marker = "python_full_version < '3.11'" },
+    { name = "typing-extensions", marker = "python_full_version < '3.11'" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef/black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666", size = 649449 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/4d/3b/4ba3f93ac8d90410423fdd31d7541ada9bcee1df32fb90d26de41ed40e1d/black-25.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:759e7ec1e050a15f89b770cefbf91ebee8917aac5c20483bc2d80a6c3a04df32", size = 1629419 },
+    { url = "https://files.pythonhosted.org/packages/b4/02/0bde0485146a8a5e694daed47561785e8b77a0466ccc1f3e485d5ef2925e/black-25.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e519ecf93120f34243e6b0054db49c00a35f84f195d5bce7e9f5cfc578fc2da", size = 1461080 },
+    { url = "https://files.pythonhosted.org/packages/52/0e/abdf75183c830eaca7589144ff96d49bce73d7ec6ad12ef62185cc0f79a2/black-25.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:055e59b198df7ac0b7efca5ad7ff2516bca343276c466be72eb04a3bcc1f82d7", size = 1766886 },
+    { url = "https://files.pythonhosted.org/packages/dc/a6/97d8bb65b1d8a41f8a6736222ba0a334db7b7b77b8023ab4568288f23973/black-25.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:db8ea9917d6f8fc62abd90d944920d95e73c83a5ee3383493e35d271aca872e9", size = 1419404 },
+    { url = "https://files.pythonhosted.org/packages/7e/4f/87f596aca05c3ce5b94b8663dbfe242a12843caaa82dd3f85f1ffdc3f177/black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0", size = 1614372 },
+    { url = "https://files.pythonhosted.org/packages/e7/d0/2c34c36190b741c59c901e56ab7f6e54dad8df05a6272a9747ecef7c6036/black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299", size = 1442865 },
+    { url = "https://files.pythonhosted.org/packages/21/d4/7518c72262468430ead45cf22bd86c883a6448b9eb43672765d69a8f1248/black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096", size = 1749699 },
+    { url = "https://files.pythonhosted.org/packages/58/db/4f5beb989b547f79096e035c4981ceb36ac2b552d0ac5f2620e941501c99/black-25.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2", size = 1428028 },
+    { url = "https://files.pythonhosted.org/packages/83/71/3fe4741df7adf015ad8dfa082dd36c94ca86bb21f25608eb247b4afb15b2/black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b", size = 1650988 },
+    { url = "https://files.pythonhosted.org/packages/13/f3/89aac8a83d73937ccd39bbe8fc6ac8860c11cfa0af5b1c96d081facac844/black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc", size = 1453985 },
+    { url = "https://files.pythonhosted.org/packages/6f/22/b99efca33f1f3a1d2552c714b1e1b5ae92efac6c43e790ad539a163d1754/black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f", size = 1783816 },
+    { url = "https://files.pythonhosted.org/packages/18/7e/a27c3ad3822b6f2e0e00d63d58ff6299a99a5b3aee69fa77cd4b0076b261/black-25.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba", size = 1440860 },
+    { url = "https://files.pythonhosted.org/packages/98/87/0edf98916640efa5d0696e1abb0a8357b52e69e82322628f25bf14d263d1/black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f", size = 1650673 },
+    { url = "https://files.pythonhosted.org/packages/52/e5/f7bf17207cf87fa6e9b676576749c6b6ed0d70f179a3d812c997870291c3/black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3", size = 1453190 },
+    { url = "https://files.pythonhosted.org/packages/e3/ee/adda3d46d4a9120772fae6de454c8495603c37c4c3b9c60f25b1ab6401fe/black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171", size = 1782926 },
+    { url = "https://files.pythonhosted.org/packages/cc/64/94eb5f45dcb997d2082f097a3944cfc7fe87e071907f677e80788a2d7b7a/black-25.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18", size = 1442613 },
+    { url = "https://files.pythonhosted.org/packages/d3/b6/ae7507470a4830dbbfe875c701e84a4a5fb9183d1497834871a715716a92/black-25.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1ee0a0c330f7b5130ce0caed9936a904793576ef4d2b98c40835d6a65afa6a0", size = 1628593 },
+    { url = "https://files.pythonhosted.org/packages/24/c1/ae36fa59a59f9363017ed397750a0cd79a470490860bc7713967d89cdd31/black-25.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3df5f1bf91d36002b0a75389ca8663510cf0531cca8aa5c1ef695b46d98655f", size = 1460000 },
+    { url = "https://files.pythonhosted.org/packages/ac/b6/98f832e7a6c49aa3a464760c67c7856363aa644f2f3c74cf7d624168607e/black-25.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9e6827d563a2c820772b32ce8a42828dc6790f095f441beef18f96aa6f8294e", size = 1765963 },
+    { url = "https://files.pythonhosted.org/packages/ce/e9/2cb0a017eb7024f70e0d2e9bdb8c5a5b078c5740c7f8816065d06f04c557/black-25.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:bacabb307dca5ebaf9c118d2d2f6903da0d62c9faa82bd21a33eecc319559355", size = 1419419 },
+    { url = "https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717", size = 207646 },
+]
+
+[[package]]
+name = "choreographer"
+version = "1.0.7"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+    { name = "logistro" },
+    { name = "simplejson" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/49/99/9258997caddcbde122181fea930f42c9e2093c442d764d0a36eb393b679e/choreographer-1.0.7.tar.gz", hash = "sha256:674c0ee40d1d2248ca626e001a57f88ee8205971ec51761a323fbceb23d6b7ac", size = 40256 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/dc/7f/0d3d45b078ce826044b402560710c9ea78a5feaf4e6dfd41b8ac7a24049c/choreographer-1.0.7-py3-none-any.whl", hash = "sha256:fba5548a850d49befb066a03c747f96a04613edbfa386fbbe08b0e4793c5ece6", size = 51143 },
+]
+
+[[package]]
+name = "click"
+version = "8.1.8"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+    "python_full_version < '3.10'",
+]
+dependencies = [
+    { name = "colorama", marker = "python_full_version < '3.10' and sys_platform == 'win32'" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188 },
+]
+
+[[package]]
+name = "click"
+version = "8.2.1"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+    "python_full_version >= '3.10'",
+]
+dependencies = [
+    { name = "colorama", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b", size = 102215 },
+]
+
+[[package]]
+name = "colorama"
+version = "0.4.6"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
+]
+
+[[package]]
+name = "kaleido"
+version = "1.0.0rc13"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+    { name = "choreographer" },
+    { name = "logistro" },
+    { name = "orjson" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/af/8b/1c76fb839274b506b9d35bd00f46e49d3c32ca3179579452ca016f67f955/kaleido-1.0.0rc13.tar.gz", hash = "sha256:81ee99cc6c7c243b5832a2555bf75b8118173b7bcb9f94fb762c7b9b8a7eac60", size = 49819 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/90/9d/415b612800d72d4c5ddd0c98f8016063ed969ae43236ae50e2e2b09483fd/kaleido-1.0.0rc13-py3-none-any.whl", hash = "sha256:aa4a7adc4f9ac252695bfb0d107029c351a59543f6ace86331648b1ce616201d", size = 51945 },
+]
+
+[[package]]
+name = "logistro"
+version = "1.1.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/27/c1/aa8bc9e07e4b4bd9a3bc05804c483ba3f334c94dcd54995da856103a204d/logistro-1.1.0.tar.gz", hash = "sha256:ad51f0efa2bc705bea7c266e8a759cf539457cf7108202a5eec77bdf6300d774", size = 8269 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl", hash = "sha256:4f88541fe7f3c545561b754d86121abd9c6d4d8b312381046a78dcd794fddc7c", size = 7894 },
+]
+
+[[package]]
+name = "mypy-extensions"
+version = "1.1.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963 },
+]
+
+[[package]]
+name = "narwhals"
+version = "1.40.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/f0/57/283881d06788c2fddd05eb7f0d6c82c5116d2827e83b845c796c74417c56/narwhals-1.40.0.tar.gz", hash = "sha256:17064abffd264ea1cfe6aefc8a0080f3a4ffb3659a98bcad5456ca80b88f2a0a", size = 487625 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/2c/e6/4d16dfa26f40230593c216bf695da01682fdbdf6af4e79abef572ab26bce/narwhals-1.40.0-py3-none-any.whl", hash = "sha256:1e6c731811d01c61147c52433b4d4edfb6511aaf2c859aa01c2e8ca6ff4d27e5", size = 357340 },
+]
+
+[[package]]
+name = "numpy"
+version = "2.0.2"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+    "python_full_version < '3.10'",
+]
+sdist = { url = "https://files.pythonhosted.org/packages/a9/75/10dd1f8116a8b796cb2c737b674e02d02e80454bda953fa7e65d8c12b016/numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78", size = 18902015 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/21/91/3495b3237510f79f5d81f2508f9f13fea78ebfdf07538fc7444badda173d/numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece", size = 21165245 },
+    { url = "https://files.pythonhosted.org/packages/05/33/26178c7d437a87082d11019292dce6d3fe6f0e9026b7b2309cbf3e489b1d/numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04", size = 13738540 },
+    { url = "https://files.pythonhosted.org/packages/ec/31/cc46e13bf07644efc7a4bf68df2df5fb2a1a88d0cd0da9ddc84dc0033e51/numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66", size = 5300623 },
+    { url = "https://files.pythonhosted.org/packages/6e/16/7bfcebf27bb4f9d7ec67332ffebee4d1bf085c84246552d52dbb548600e7/numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b", size = 6901774 },
+    { url = "https://files.pythonhosted.org/packages/f9/a3/561c531c0e8bf082c5bef509d00d56f82e0ea7e1e3e3a7fc8fa78742a6e5/numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd", size = 13907081 },
+    { url = "https://files.pythonhosted.org/packages/fa/66/f7177ab331876200ac7563a580140643d1179c8b4b6a6b0fc9838de2a9b8/numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318", size = 19523451 },
+    { url = "https://files.pythonhosted.org/packages/25/7f/0b209498009ad6453e4efc2c65bcdf0ae08a182b2b7877d7ab38a92dc542/numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8", size = 19927572 },
+    { url = "https://files.pythonhosted.org/packages/3e/df/2619393b1e1b565cd2d4c4403bdd979621e2c4dea1f8532754b2598ed63b/numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326", size = 14400722 },
+    { url = "https://files.pythonhosted.org/packages/22/ad/77e921b9f256d5da36424ffb711ae79ca3f451ff8489eeca544d0701d74a/numpy-2.0.2-cp310-cp310-win32.whl", hash = "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97", size = 6472170 },
+    { url = "https://files.pythonhosted.org/packages/10/05/3442317535028bc29cf0c0dd4c191a4481e8376e9f0db6bcf29703cadae6/numpy-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131", size = 15905558 },
+    { url = "https://files.pythonhosted.org/packages/8b/cf/034500fb83041aa0286e0fb16e7c76e5c8b67c0711bb6e9e9737a717d5fe/numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448", size = 21169137 },
+    { url = "https://files.pythonhosted.org/packages/4a/d9/32de45561811a4b87fbdee23b5797394e3d1504b4a7cf40c10199848893e/numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195", size = 13703552 },
+    { url = "https://files.pythonhosted.org/packages/c1/ca/2f384720020c7b244d22508cb7ab23d95f179fcfff33c31a6eeba8d6c512/numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57", size = 5298957 },
+    { url = "https://files.pythonhosted.org/packages/0e/78/a3e4f9fb6aa4e6fdca0c5428e8ba039408514388cf62d89651aade838269/numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a", size = 6905573 },
+    { url = "https://files.pythonhosted.org/packages/a0/72/cfc3a1beb2caf4efc9d0b38a15fe34025230da27e1c08cc2eb9bfb1c7231/numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669", size = 13914330 },
+    { url = "https://files.pythonhosted.org/packages/ba/a8/c17acf65a931ce551fee11b72e8de63bf7e8a6f0e21add4c937c83563538/numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951", size = 19534895 },
+    { url = "https://files.pythonhosted.org/packages/ba/86/8767f3d54f6ae0165749f84648da9dcc8cd78ab65d415494962c86fac80f/numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9", size = 19937253 },
+    { url = "https://files.pythonhosted.org/packages/df/87/f76450e6e1c14e5bb1eae6836478b1028e096fd02e85c1c37674606ab752/numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15", size = 14414074 },
+    { url = "https://files.pythonhosted.org/packages/5c/ca/0f0f328e1e59f73754f06e1adfb909de43726d4f24c6a3f8805f34f2b0fa/numpy-2.0.2-cp311-cp311-win32.whl", hash = "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4", size = 6470640 },
+    { url = "https://files.pythonhosted.org/packages/eb/57/3a3f14d3a759dcf9bf6e9eda905794726b758819df4663f217d658a58695/numpy-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc", size = 15910230 },
+    { url = "https://files.pythonhosted.org/packages/45/40/2e117be60ec50d98fa08c2f8c48e09b3edea93cfcabd5a9ff6925d54b1c2/numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b", size = 20895803 },
+    { url = "https://files.pythonhosted.org/packages/46/92/1b8b8dee833f53cef3e0a3f69b2374467789e0bb7399689582314df02651/numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e", size = 13471835 },
+    { url = "https://files.pythonhosted.org/packages/7f/19/e2793bde475f1edaea6945be141aef6c8b4c669b90c90a300a8954d08f0a/numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c", size = 5038499 },
+    { url = "https://files.pythonhosted.org/packages/e3/ff/ddf6dac2ff0dd50a7327bcdba45cb0264d0e96bb44d33324853f781a8f3c/numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c", size = 6633497 },
+    { url = "https://files.pythonhosted.org/packages/72/21/67f36eac8e2d2cd652a2e69595a54128297cdcb1ff3931cfc87838874bd4/numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692", size = 13621158 },
+    { url = "https://files.pythonhosted.org/packages/39/68/e9f1126d757653496dbc096cb429014347a36b228f5a991dae2c6b6cfd40/numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a", size = 19236173 },
+    { url = "https://files.pythonhosted.org/packages/d1/e9/1f5333281e4ebf483ba1c888b1d61ba7e78d7e910fdd8e6499667041cc35/numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c", size = 19634174 },
+    { url = "https://files.pythonhosted.org/packages/71/af/a469674070c8d8408384e3012e064299f7a2de540738a8e414dcfd639996/numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded", size = 14099701 },
+    { url = "https://files.pythonhosted.org/packages/d0/3d/08ea9f239d0e0e939b6ca52ad403c84a2bce1bde301a8eb4888c1c1543f1/numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5", size = 6174313 },
+    { url = "https://files.pythonhosted.org/packages/b2/b5/4ac39baebf1fdb2e72585c8352c56d063b6126be9fc95bd2bb5ef5770c20/numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a", size = 15606179 },
+    { url = "https://files.pythonhosted.org/packages/43/c1/41c8f6df3162b0c6ffd4437d729115704bd43363de0090c7f913cfbc2d89/numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c", size = 21169942 },
+    { url = "https://files.pythonhosted.org/packages/39/bc/fd298f308dcd232b56a4031fd6ddf11c43f9917fbc937e53762f7b5a3bb1/numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd", size = 13711512 },
+    { url = "https://files.pythonhosted.org/packages/96/ff/06d1aa3eeb1c614eda245c1ba4fb88c483bee6520d361641331872ac4b82/numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b", size = 5306976 },
+    { url = "https://files.pythonhosted.org/packages/2d/98/121996dcfb10a6087a05e54453e28e58694a7db62c5a5a29cee14c6e047b/numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729", size = 6906494 },
+    { url = "https://files.pythonhosted.org/packages/15/31/9dffc70da6b9bbf7968f6551967fc21156207366272c2a40b4ed6008dc9b/numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1", size = 13912596 },
+    { url = "https://files.pythonhosted.org/packages/b9/14/78635daab4b07c0930c919d451b8bf8c164774e6a3413aed04a6d95758ce/numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd", size = 19526099 },
+    { url = "https://files.pythonhosted.org/packages/26/4c/0eeca4614003077f68bfe7aac8b7496f04221865b3a5e7cb230c9d055afd/numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d", size = 19932823 },
+    { url = "https://files.pythonhosted.org/packages/f1/46/ea25b98b13dccaebddf1a803f8c748680d972e00507cd9bc6dcdb5aa2ac1/numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d", size = 14404424 },
+    { url = "https://files.pythonhosted.org/packages/c8/a6/177dd88d95ecf07e722d21008b1b40e681a929eb9e329684d449c36586b2/numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa", size = 6476809 },
+    { url = "https://files.pythonhosted.org/packages/ea/2b/7fc9f4e7ae5b507c1a3a21f0f15ed03e794c1242ea8a242ac158beb56034/numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73", size = 15911314 },
+    { url = "https://files.pythonhosted.org/packages/8f/3b/df5a870ac6a3be3a86856ce195ef42eec7ae50d2a202be1f5a4b3b340e14/numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8", size = 21025288 },
+    { url = "https://files.pythonhosted.org/packages/2c/97/51af92f18d6f6f2d9ad8b482a99fb74e142d71372da5d834b3a2747a446e/numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4", size = 6762793 },
+    { url = "https://files.pythonhosted.org/packages/12/46/de1fbd0c1b5ccaa7f9a005b66761533e2f6a3e560096682683a223631fe9/numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c", size = 19334885 },
+    { url = "https://files.pythonhosted.org/packages/cc/dc/d330a6faefd92b446ec0f0dfea4c3207bb1fef3c4771d19cf4543efd2c78/numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385", size = 15828784 },
+]
+
+[[package]]
+name = "numpy"
+version = "2.2.6"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+    "python_full_version >= '3.10'",
+]
+sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245 },
+    { url = "https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90", size = 14360048 },
+    { url = "https://files.pythonhosted.org/packages/fd/77/dc2fcfc66943c6410e2bf598062f5959372735ffda175b39906d54f02349/numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163", size = 5340542 },
+    { url = "https://files.pythonhosted.org/packages/7a/4f/1cb5fdc353a5f5cc7feb692db9b8ec2c3d6405453f982435efc52561df58/numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf", size = 6878301 },
+    { url = "https://files.pythonhosted.org/packages/eb/17/96a3acd228cec142fcb8723bd3cc39c2a474f7dcf0a5d16731980bcafa95/numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83", size = 14297320 },
+    { url = "https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915", size = 16801050 },
+    { url = "https://files.pythonhosted.org/packages/07/b6/89d837eddef52b3d0cec5c6ba0456c1bf1b9ef6a6672fc2b7873c3ec4e2e/numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680", size = 15807034 },
+    { url = "https://files.pythonhosted.org/packages/01/c8/dc6ae86e3c61cfec1f178e5c9f7858584049b6093f843bca541f94120920/numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289", size = 18614185 },
+    { url = "https://files.pythonhosted.org/packages/5b/c5/0064b1b7e7c89137b471ccec1fd2282fceaae0ab3a9550f2568782d80357/numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d", size = 6527149 },
+    { url = "https://files.pythonhosted.org/packages/a3/dd/4b822569d6b96c39d1215dbae0582fd99954dcbcf0c1a13c61783feaca3f/numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3", size = 12904620 },
+    { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963 },
+    { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743 },
+    { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616 },
+    { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579 },
+    { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005 },
+    { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570 },
+    { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548 },
+    { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521 },
+    { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866 },
+    { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455 },
+    { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348 },
+    { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362 },
+    { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103 },
+    { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382 },
+    { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462 },
+    { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618 },
+    { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511 },
+    { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783 },
+    { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506 },
+    { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190 },
+    { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828 },
+    { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006 },
+    { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765 },
+    { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736 },
+    { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719 },
+    { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072 },
+    { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213 },
+    { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632 },
+    { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532 },
+    { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885 },
+    { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467 },
+    { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144 },
+    { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217 },
+    { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014 },
+    { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935 },
+    { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122 },
+    { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143 },
+    { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260 },
+    { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225 },
+    { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374 },
+    { url = "https://files.pythonhosted.org/packages/9e/3b/d94a75f4dbf1ef5d321523ecac21ef23a3cd2ac8b78ae2aac40873590229/numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d", size = 21040391 },
+    { url = "https://files.pythonhosted.org/packages/17/f4/09b2fa1b58f0fb4f7c7963a1649c64c4d315752240377ed74d9cd878f7b5/numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db", size = 6786754 },
+    { url = "https://files.pythonhosted.org/packages/af/30/feba75f143bdc868a1cc3f44ccfa6c4b9ec522b36458e738cd00f67b573f/numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543", size = 16643476 },
+    { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666 },
+]
+
+[[package]]
+name = "orjson"
+version = "3.10.18"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/81/0b/fea456a3ffe74e70ba30e01ec183a9b26bec4d497f61dcfce1b601059c60/orjson-3.10.18.tar.gz", hash = "sha256:e8da3947d92123eda795b68228cafe2724815621fe35e8e320a9e9593a4bcd53", size = 5422810 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/27/16/2ceb9fb7bc2b11b1e4a3ea27794256e93dee2309ebe297fd131a778cd150/orjson-3.10.18-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a45e5d68066b408e4bc383b6e4ef05e717c65219a9e1390abc6155a520cac402", size = 248927 },
+    { url = "https://files.pythonhosted.org/packages/3d/e1/d3c0a2bba5b9906badd121da449295062b289236c39c3a7801f92c4682b0/orjson-3.10.18-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be3b9b143e8b9db05368b13b04c84d37544ec85bb97237b3a923f076265ec89c", size = 136995 },
+    { url = "https://files.pythonhosted.org/packages/d7/51/698dd65e94f153ee5ecb2586c89702c9e9d12f165a63e74eb9ea1299f4e1/orjson-3.10.18-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9b0aa09745e2c9b3bf779b096fa71d1cc2d801a604ef6dd79c8b1bfef52b2f92", size = 132893 },
+    { url = "https://files.pythonhosted.org/packages/b3/e5/155ce5a2c43a85e790fcf8b985400138ce5369f24ee6770378ee6b691036/orjson-3.10.18-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:53a245c104d2792e65c8d225158f2b8262749ffe64bc7755b00024757d957a13", size = 137017 },
+    { url = "https://files.pythonhosted.org/packages/46/bb/6141ec3beac3125c0b07375aee01b5124989907d61c72c7636136e4bd03e/orjson-3.10.18-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9495ab2611b7f8a0a8a505bcb0f0cbdb5469caafe17b0e404c3c746f9900469", size = 138290 },
+    { url = "https://files.pythonhosted.org/packages/77/36/6961eca0b66b7809d33c4ca58c6bd4c23a1b914fb23aba2fa2883f791434/orjson-3.10.18-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:73be1cbcebadeabdbc468f82b087df435843c809cd079a565fb16f0f3b23238f", size = 142828 },
+    { url = "https://files.pythonhosted.org/packages/8b/2f/0c646d5fd689d3be94f4d83fa9435a6c4322c9b8533edbb3cd4bc8c5f69a/orjson-3.10.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe8936ee2679e38903df158037a2f1c108129dee218975122e37847fb1d4ac68", size = 132806 },
+    { url = "https://files.pythonhosted.org/packages/ea/af/65907b40c74ef4c3674ef2bcfa311c695eb934710459841b3c2da212215c/orjson-3.10.18-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7115fcbc8525c74e4c2b608129bef740198e9a120ae46184dac7683191042056", size = 135005 },
+    { url = "https://files.pythonhosted.org/packages/c7/d1/68bd20ac6a32cd1f1b10d23e7cc58ee1e730e80624e3031d77067d7150fc/orjson-3.10.18-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:771474ad34c66bc4d1c01f645f150048030694ea5b2709b87d3bda273ffe505d", size = 413418 },
+    { url = "https://files.pythonhosted.org/packages/31/31/c701ec0bcc3e80e5cb6e319c628ef7b768aaa24b0f3b4c599df2eaacfa24/orjson-3.10.18-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:7c14047dbbea52886dd87169f21939af5d55143dad22d10db6a7514f058156a8", size = 153288 },
+    { url = "https://files.pythonhosted.org/packages/d9/31/5e1aa99a10893a43cfc58009f9da840990cc8a9ebb75aa452210ba18587e/orjson-3.10.18-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:641481b73baec8db14fdf58f8967e52dc8bda1f2aba3aa5f5c1b07ed6df50b7f", size = 137181 },
+    { url = "https://files.pythonhosted.org/packages/bf/8c/daba0ac1b8690011d9242a0f37235f7d17df6d0ad941021048523b76674e/orjson-3.10.18-cp310-cp310-win32.whl", hash = "sha256:607eb3ae0909d47280c1fc657c4284c34b785bae371d007595633f4b1a2bbe06", size = 142694 },
+    { url = "https://files.pythonhosted.org/packages/16/62/8b687724143286b63e1d0fab3ad4214d54566d80b0ba9d67c26aaf28a2f8/orjson-3.10.18-cp310-cp310-win_amd64.whl", hash = "sha256:8770432524ce0eca50b7efc2a9a5f486ee0113a5fbb4231526d414e6254eba92", size = 134600 },
+    { url = "https://files.pythonhosted.org/packages/97/c7/c54a948ce9a4278794f669a353551ce7db4ffb656c69a6e1f2264d563e50/orjson-3.10.18-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:e0a183ac3b8e40471e8d843105da6fbe7c070faab023be3b08188ee3f85719b8", size = 248929 },
+    { url = "https://files.pythonhosted.org/packages/9e/60/a9c674ef1dd8ab22b5b10f9300e7e70444d4e3cda4b8258d6c2488c32143/orjson-3.10.18-cp311-cp311-macosx_15_0_arm64.whl", hash = "sha256:5ef7c164d9174362f85238d0cd4afdeeb89d9e523e4651add6a5d458d6f7d42d", size = 133364 },
+    { url = "https://files.pythonhosted.org/packages/c1/4e/f7d1bdd983082216e414e6d7ef897b0c2957f99c545826c06f371d52337e/orjson-3.10.18-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afd14c5d99cdc7bf93f22b12ec3b294931518aa019e2a147e8aa2f31fd3240f7", size = 136995 },
+    { url = "https://files.pythonhosted.org/packages/17/89/46b9181ba0ea251c9243b0c8ce29ff7c9796fa943806a9c8b02592fce8ea/orjson-3.10.18-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7b672502323b6cd133c4af6b79e3bea36bad2d16bca6c1f645903fce83909a7a", size = 132894 },
+    { url = "https://files.pythonhosted.org/packages/ca/dd/7bce6fcc5b8c21aef59ba3c67f2166f0a1a9b0317dcca4a9d5bd7934ecfd/orjson-3.10.18-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:51f8c63be6e070ec894c629186b1c0fe798662b8687f3d9fdfa5e401c6bd7679", size = 137016 },
+    { url = "https://files.pythonhosted.org/packages/1c/4a/b8aea1c83af805dcd31c1f03c95aabb3e19a016b2a4645dd822c5686e94d/orjson-3.10.18-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f9478ade5313d724e0495d167083c6f3be0dd2f1c9c8a38db9a9e912cdaf947", size = 138290 },
+    { url = "https://files.pythonhosted.org/packages/36/d6/7eb05c85d987b688707f45dcf83c91abc2251e0dd9fb4f7be96514f838b1/orjson-3.10.18-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:187aefa562300a9d382b4b4eb9694806e5848b0cedf52037bb5c228c61bb66d4", size = 142829 },
+    { url = "https://files.pythonhosted.org/packages/d2/78/ddd3ee7873f2b5f90f016bc04062713d567435c53ecc8783aab3a4d34915/orjson-3.10.18-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9da552683bc9da222379c7a01779bddd0ad39dd699dd6300abaf43eadee38334", size = 132805 },
+    { url = "https://files.pythonhosted.org/packages/8c/09/c8e047f73d2c5d21ead9c180203e111cddeffc0848d5f0f974e346e21c8e/orjson-3.10.18-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e450885f7b47a0231979d9c49b567ed1c4e9f69240804621be87c40bc9d3cf17", size = 135008 },
+    { url = "https://files.pythonhosted.org/packages/0c/4b/dccbf5055ef8fb6eda542ab271955fc1f9bf0b941a058490293f8811122b/orjson-3.10.18-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5e3c9cc2ba324187cd06287ca24f65528f16dfc80add48dc99fa6c836bb3137e", size = 413419 },
+    { url = "https://files.pythonhosted.org/packages/8a/f3/1eac0c5e2d6d6790bd2025ebfbefcbd37f0d097103d76f9b3f9302af5a17/orjson-3.10.18-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:50ce016233ac4bfd843ac5471e232b865271d7d9d44cf9d33773bcd883ce442b", size = 153292 },
+    { url = "https://files.pythonhosted.org/packages/1f/b4/ef0abf64c8f1fabf98791819ab502c2c8c1dc48b786646533a93637d8999/orjson-3.10.18-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b3ceff74a8f7ffde0b2785ca749fc4e80e4315c0fd887561144059fb1c138aa7", size = 137182 },
+    { url = "https://files.pythonhosted.org/packages/a9/a3/6ea878e7b4a0dc5c888d0370d7752dcb23f402747d10e2257478d69b5e63/orjson-3.10.18-cp311-cp311-win32.whl", hash = "sha256:fdba703c722bd868c04702cac4cb8c6b8ff137af2623bc0ddb3b3e6a2c8996c1", size = 142695 },
+    { url = "https://files.pythonhosted.org/packages/79/2a/4048700a3233d562f0e90d5572a849baa18ae4e5ce4c3ba6247e4ece57b0/orjson-3.10.18-cp311-cp311-win_amd64.whl", hash = "sha256:c28082933c71ff4bc6ccc82a454a2bffcef6e1d7379756ca567c772e4fb3278a", size = 134603 },
+    { url = "https://files.pythonhosted.org/packages/03/45/10d934535a4993d27e1c84f1810e79ccf8b1b7418cef12151a22fe9bb1e1/orjson-3.10.18-cp311-cp311-win_arm64.whl", hash = "sha256:a6c7c391beaedd3fa63206e5c2b7b554196f14debf1ec9deb54b5d279b1b46f5", size = 131400 },
+    { url = "https://files.pythonhosted.org/packages/21/1a/67236da0916c1a192d5f4ccbe10ec495367a726996ceb7614eaa687112f2/orjson-3.10.18-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:50c15557afb7f6d63bc6d6348e0337a880a04eaa9cd7c9d569bcb4e760a24753", size = 249184 },
+    { url = "https://files.pythonhosted.org/packages/b3/bc/c7f1db3b1d094dc0c6c83ed16b161a16c214aaa77f311118a93f647b32dc/orjson-3.10.18-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:356b076f1662c9813d5fa56db7d63ccceef4c271b1fb3dd522aca291375fcf17", size = 133279 },
+    { url = "https://files.pythonhosted.org/packages/af/84/664657cd14cc11f0d81e80e64766c7ba5c9b7fc1ec304117878cc1b4659c/orjson-3.10.18-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:559eb40a70a7494cd5beab2d73657262a74a2c59aff2068fdba8f0424ec5b39d", size = 136799 },
+    { url = "https://files.pythonhosted.org/packages/9a/bb/f50039c5bb05a7ab024ed43ba25d0319e8722a0ac3babb0807e543349978/orjson-3.10.18-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f3c29eb9a81e2fbc6fd7ddcfba3e101ba92eaff455b8d602bf7511088bbc0eae", size = 132791 },
+    { url = "https://files.pythonhosted.org/packages/93/8c/ee74709fc072c3ee219784173ddfe46f699598a1723d9d49cbc78d66df65/orjson-3.10.18-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6612787e5b0756a171c7d81ba245ef63a3533a637c335aa7fcb8e665f4a0966f", size = 137059 },
+    { url = "https://files.pythonhosted.org/packages/6a/37/e6d3109ee004296c80426b5a62b47bcadd96a3deab7443e56507823588c5/orjson-3.10.18-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ac6bd7be0dcab5b702c9d43d25e70eb456dfd2e119d512447468f6405b4a69c", size = 138359 },
+    { url = "https://files.pythonhosted.org/packages/4f/5d/387dafae0e4691857c62bd02839a3bf3fa648eebd26185adfac58d09f207/orjson-3.10.18-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9f72f100cee8dde70100406d5c1abba515a7df926d4ed81e20a9730c062fe9ad", size = 142853 },
+    { url = "https://files.pythonhosted.org/packages/27/6f/875e8e282105350b9a5341c0222a13419758545ae32ad6e0fcf5f64d76aa/orjson-3.10.18-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9dca85398d6d093dd41dc0983cbf54ab8e6afd1c547b6b8a311643917fbf4e0c", size = 133131 },
+    { url = "https://files.pythonhosted.org/packages/48/b2/73a1f0b4790dcb1e5a45f058f4f5dcadc8a85d90137b50d6bbc6afd0ae50/orjson-3.10.18-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:22748de2a07fcc8781a70edb887abf801bb6142e6236123ff93d12d92db3d406", size = 134834 },
+    { url = "https://files.pythonhosted.org/packages/56/f5/7ed133a5525add9c14dbdf17d011dd82206ca6840811d32ac52a35935d19/orjson-3.10.18-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:3a83c9954a4107b9acd10291b7f12a6b29e35e8d43a414799906ea10e75438e6", size = 413368 },
+    { url = "https://files.pythonhosted.org/packages/11/7c/439654221ed9c3324bbac7bdf94cf06a971206b7b62327f11a52544e4982/orjson-3.10.18-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:303565c67a6c7b1f194c94632a4a39918e067bd6176a48bec697393865ce4f06", size = 153359 },
+    { url = "https://files.pythonhosted.org/packages/48/e7/d58074fa0cc9dd29a8fa2a6c8d5deebdfd82c6cfef72b0e4277c4017563a/orjson-3.10.18-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:86314fdb5053a2f5a5d881f03fca0219bfdf832912aa88d18676a5175c6916b5", size = 137466 },
+    { url = "https://files.pythonhosted.org/packages/57/4d/fe17581cf81fb70dfcef44e966aa4003360e4194d15a3f38cbffe873333a/orjson-3.10.18-cp312-cp312-win32.whl", hash = "sha256:187ec33bbec58c76dbd4066340067d9ece6e10067bb0cc074a21ae3300caa84e", size = 142683 },
+    { url = "https://files.pythonhosted.org/packages/e6/22/469f62d25ab5f0f3aee256ea732e72dc3aab6d73bac777bd6277955bceef/orjson-3.10.18-cp312-cp312-win_amd64.whl", hash = "sha256:f9f94cf6d3f9cd720d641f8399e390e7411487e493962213390d1ae45c7814fc", size = 134754 },
+    { url = "https://files.pythonhosted.org/packages/10/b0/1040c447fac5b91bc1e9c004b69ee50abb0c1ffd0d24406e1350c58a7fcb/orjson-3.10.18-cp312-cp312-win_arm64.whl", hash = "sha256:3d600be83fe4514944500fa8c2a0a77099025ec6482e8087d7659e891f23058a", size = 131218 },
+    { url = "https://files.pythonhosted.org/packages/04/f0/8aedb6574b68096f3be8f74c0b56d36fd94bcf47e6c7ed47a7bd1474aaa8/orjson-3.10.18-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:69c34b9441b863175cc6a01f2935de994025e773f814412030f269da4f7be147", size = 249087 },
+    { url = "https://files.pythonhosted.org/packages/bc/f7/7118f965541aeac6844fcb18d6988e111ac0d349c9b80cda53583e758908/orjson-3.10.18-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:1ebeda919725f9dbdb269f59bc94f861afbe2a27dce5608cdba2d92772364d1c", size = 133273 },
+    { url = "https://files.pythonhosted.org/packages/fb/d9/839637cc06eaf528dd8127b36004247bf56e064501f68df9ee6fd56a88ee/orjson-3.10.18-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5adf5f4eed520a4959d29ea80192fa626ab9a20b2ea13f8f6dc58644f6927103", size = 136779 },
+    { url = "https://files.pythonhosted.org/packages/2b/6d/f226ecfef31a1f0e7d6bf9a31a0bbaf384c7cbe3fce49cc9c2acc51f902a/orjson-3.10.18-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7592bb48a214e18cd670974f289520f12b7aed1fa0b2e2616b8ed9e069e08595", size = 132811 },
+    { url = "https://files.pythonhosted.org/packages/73/2d/371513d04143c85b681cf8f3bce743656eb5b640cb1f461dad750ac4b4d4/orjson-3.10.18-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f872bef9f042734110642b7a11937440797ace8c87527de25e0c53558b579ccc", size = 137018 },
+    { url = "https://files.pythonhosted.org/packages/69/cb/a4d37a30507b7a59bdc484e4a3253c8141bf756d4e13fcc1da760a0b00cb/orjson-3.10.18-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0315317601149c244cb3ecef246ef5861a64824ccbcb8018d32c66a60a84ffbc", size = 138368 },
+    { url = "https://files.pythonhosted.org/packages/1e/ae/cd10883c48d912d216d541eb3db8b2433415fde67f620afe6f311f5cd2ca/orjson-3.10.18-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0da26957e77e9e55a6c2ce2e7182a36a6f6b180ab7189315cb0995ec362e049", size = 142840 },
+    { url = "https://files.pythonhosted.org/packages/6d/4c/2bda09855c6b5f2c055034c9eda1529967b042ff8d81a05005115c4e6772/orjson-3.10.18-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb70d489bc79b7519e5803e2cc4c72343c9dc1154258adf2f8925d0b60da7c58", size = 133135 },
+    { url = "https://files.pythonhosted.org/packages/13/4a/35971fd809a8896731930a80dfff0b8ff48eeb5d8b57bb4d0d525160017f/orjson-3.10.18-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e9e86a6af31b92299b00736c89caf63816f70a4001e750bda179e15564d7a034", size = 134810 },
+    { url = "https://files.pythonhosted.org/packages/99/70/0fa9e6310cda98365629182486ff37a1c6578e34c33992df271a476ea1cd/orjson-3.10.18-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:c382a5c0b5931a5fc5405053d36c1ce3fd561694738626c77ae0b1dfc0242ca1", size = 413491 },
+    { url = "https://files.pythonhosted.org/packages/32/cb/990a0e88498babddb74fb97855ae4fbd22a82960e9b06eab5775cac435da/orjson-3.10.18-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:8e4b2ae732431127171b875cb2668f883e1234711d3c147ffd69fe5be51a8012", size = 153277 },
+    { url = "https://files.pythonhosted.org/packages/92/44/473248c3305bf782a384ed50dd8bc2d3cde1543d107138fd99b707480ca1/orjson-3.10.18-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2d808e34ddb24fc29a4d4041dcfafbae13e129c93509b847b14432717d94b44f", size = 137367 },
+    { url = "https://files.pythonhosted.org/packages/ad/fd/7f1d3edd4ffcd944a6a40e9f88af2197b619c931ac4d3cfba4798d4d3815/orjson-3.10.18-cp313-cp313-win32.whl", hash = "sha256:ad8eacbb5d904d5591f27dee4031e2c1db43d559edb8f91778efd642d70e6bea", size = 142687 },
+    { url = "https://files.pythonhosted.org/packages/4b/03/c75c6ad46be41c16f4cfe0352a2d1450546f3c09ad2c9d341110cd87b025/orjson-3.10.18-cp313-cp313-win_amd64.whl", hash = "sha256:aed411bcb68bf62e85588f2a7e03a6082cc42e5a2796e06e72a962d7c6310b52", size = 134794 },
+    { url = "https://files.pythonhosted.org/packages/c2/28/f53038a5a72cc4fd0b56c1eafb4ef64aec9685460d5ac34de98ca78b6e29/orjson-3.10.18-cp313-cp313-win_arm64.whl", hash = "sha256:f54c1385a0e6aba2f15a40d703b858bedad36ded0491e55d35d905b2c34a4cc3", size = 131186 },
+    { url = "https://files.pythonhosted.org/packages/df/db/69488acaa2316788b7e171f024912c6fe8193aa2e24e9cfc7bc41c3669ba/orjson-3.10.18-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c95fae14225edfd699454e84f61c3dd938df6629a00c6ce15e704f57b58433bb", size = 249301 },
+    { url = "https://files.pythonhosted.org/packages/23/21/d816c44ec5d1482c654e1d23517d935bb2716e1453ff9380e861dc6efdd3/orjson-3.10.18-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5232d85f177f98e0cefabb48b5e7f60cff6f3f0365f9c60631fecd73849b2a82", size = 136786 },
+    { url = "https://files.pythonhosted.org/packages/a5/9f/f68d8a9985b717e39ba7bf95b57ba173fcd86aeca843229ec60d38f1faa7/orjson-3.10.18-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2783e121cafedf0d85c148c248a20470018b4ffd34494a68e125e7d5857655d1", size = 132711 },
+    { url = "https://files.pythonhosted.org/packages/b5/63/447f5955439bf7b99bdd67c38a3f689d140d998ac58e3b7d57340520343c/orjson-3.10.18-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e54ee3722caf3db09c91f442441e78f916046aa58d16b93af8a91500b7bbf273", size = 136841 },
+    { url = "https://files.pythonhosted.org/packages/68/9e/4855972f2be74097242e4681ab6766d36638a079e09d66f3d6a5d1188ce7/orjson-3.10.18-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2daf7e5379b61380808c24f6fc182b7719301739e4271c3ec88f2984a2d61f89", size = 138082 },
+    { url = "https://files.pythonhosted.org/packages/08/0f/e68431e53a39698d2355faf1f018c60a3019b4b54b4ea6be9dc6b8208a3d/orjson-3.10.18-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7f39b371af3add20b25338f4b29a8d6e79a8c7ed0e9dd49e008228a065d07781", size = 142618 },
+    { url = "https://files.pythonhosted.org/packages/32/da/bdcfff239ddba1b6ef465efe49d7e43cc8c30041522feba9fd4241d47c32/orjson-3.10.18-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b819ed34c01d88c6bec290e6842966f8e9ff84b7694632e88341363440d4cc0", size = 132627 },
+    { url = "https://files.pythonhosted.org/packages/0c/28/bc634da09bbe972328f615b0961f1e7d91acb3cc68bddbca9e8dd64e8e24/orjson-3.10.18-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2f6c57debaef0b1aa13092822cbd3698a1fb0209a9ea013a969f4efa36bdea57", size = 134832 },
+    { url = "https://files.pythonhosted.org/packages/1d/d2/e8ac0c2d0ec782ed8925b4eb33f040cee1f1fbd1d8b268aeb84b94153e49/orjson-3.10.18-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:755b6d61ffdb1ffa1e768330190132e21343757c9aa2308c67257cc81a1a6f5a", size = 413161 },
+    { url = "https://files.pythonhosted.org/packages/28/f0/397e98c352a27594566e865999dc6b88d6f37d5bbb87b23c982af24114c4/orjson-3.10.18-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ce8d0a875a85b4c8579eab5ac535fb4b2a50937267482be402627ca7e7570ee3", size = 153012 },
+    { url = "https://files.pythonhosted.org/packages/93/bf/2c7334caeb48bdaa4cae0bde17ea417297ee136598653b1da7ae1f98c785/orjson-3.10.18-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:57b5d0673cbd26781bebc2bf86f99dd19bd5a9cb55f71cc4f66419f6b50f3d77", size = 136999 },
+    { url = "https://files.pythonhosted.org/packages/35/72/4827b1c0c31621c2aa1e661a899cdd2cfac0565c6cd7131890daa4ef7535/orjson-3.10.18-cp39-cp39-win32.whl", hash = "sha256:951775d8b49d1d16ca8818b1f20c4965cae9157e7b562a2ae34d3967b8f21c8e", size = 142560 },
+    { url = "https://files.pythonhosted.org/packages/72/91/ef8e76868e7eed478887c82f60607a8abf58dadd24e95817229a4b2e2639/orjson-3.10.18-cp39-cp39-win_amd64.whl", hash = "sha256:fdd9d68f83f0bc4406610b1ac68bdcded8c5ee58605cc69e643a06f4d075f429", size = 134455 },
+]
+
+[[package]]
+name = "packaging"
+version = "25.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469 },
+]
+
+[[package]]
+name = "pathspec"
+version = "0.12.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191 },
+]
+
+[[package]]
+name = "platformdirs"
+version = "4.3.8"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/fe/8b/3c73abc9c759ecd3f1f7ceff6685840859e8070c4d947c93fae71f6a0bf2/platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc", size = 21362 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4", size = 18567 },
+]
+
+[[package]]
+name = "plotly"
+version = "6.1.1"
+source = { editable = "." }
+dependencies = [
+    { name = "narwhals" },
+    { name = "packaging" },
+]
+
+[package.optional-dependencies]
+dev = [
+    { name = "black" },
+]
+express = [
+    { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
+    { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
+]
+kaleido = [
+    { name = "kaleido" },
+]
+
+[package.metadata]
+requires-dist = [
+    { name = "black", marker = "extra == 'dev'", specifier = "==25.1.0" },
+    { name = "kaleido", marker = "extra == 'kaleido'", specifier = "==1.0.0rc13" },
+    { name = "narwhals", specifier = ">=1.15.1" },
+    { name = "numpy", marker = "extra == 'express'" },
+    { name = "packaging" },
+]
+provides-extras = ["express", "kaleido", "dev"]
+
+[[package]]
+name = "simplejson"
+version = "3.20.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/af/92/51b417685abd96b31308b61b9acce7ec50d8e1de8fbc39a7fd4962c60689/simplejson-3.20.1.tar.gz", hash = "sha256:e64139b4ec4f1f24c142ff7dcafe55a22b811a74d86d66560c8815687143037d", size = 85591 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/25/c4/627214fb418cd4a17fb0230ff0b6c3bb4a85cbb48dd69c85dcc3b85df828/simplejson-3.20.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e580aa65d5f6c3bf41b9b4afe74be5d5ddba9576701c107c772d936ea2b5043a", size = 93790 },
+    { url = "https://files.pythonhosted.org/packages/15/ca/56a6a2a33cbcf330c4d71af3f827c47e4e0ba791e78f2642f3d1ab02ff31/simplejson-3.20.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4a586ce4f78cec11f22fe55c5bee0f067e803aab9bad3441afe2181693b5ebb5", size = 75707 },
+    { url = "https://files.pythonhosted.org/packages/a9/c8/3d92b67e03a3b6207d97202669f9454ed700b35ade9bd4428265a078fb6c/simplejson-3.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74a1608f9e6e8c27a4008d70a54270868306d80ed48c9df7872f9f4b8ac87808", size = 75700 },
+    { url = "https://files.pythonhosted.org/packages/74/30/20001219d6fdca4aaa3974c96dfb6955a766b4e2cc950505a5b51fd050b0/simplejson-3.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03db8cb64154189a92a7786209f24e391644f3a3fa335658be2df2af1960b8d8", size = 138672 },
+    { url = "https://files.pythonhosted.org/packages/21/47/50157810876c2a7ebbd6e6346ec25eda841fe061fecaa02538a7742a3d2a/simplejson-3.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eea7e2b7d858f6fdfbf0fe3cb846d6bd8a45446865bc09960e51f3d473c2271b", size = 146616 },
+    { url = "https://files.pythonhosted.org/packages/95/60/8c97cdc93096437b0aca2745aca63c880fe2315fd7f6a6ce6edbb344a2ae/simplejson-3.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e66712b17d8425bb7ff8968d4c7c7fd5a2dd7bd63728b28356223c000dd2f91f", size = 134344 },
+    { url = "https://files.pythonhosted.org/packages/bb/9e/da184f0e9bb3a5d7ffcde713bd41b4fe46cca56b6f24d9bd155fac56805a/simplejson-3.20.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2cc4f6486f9f515b62f5831ff1888886619b84fc837de68f26d919ba7bbdcbc", size = 138017 },
+    { url = "https://files.pythonhosted.org/packages/31/db/00d1a8d9b036db98f678c8a3c69ed17d2894d1768d7a00576e787ad3e546/simplejson-3.20.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a3c2df555ee4016148fa192e2b9cd9e60bc1d40769366134882685e90aee2a1e", size = 140118 },
+    { url = "https://files.pythonhosted.org/packages/52/21/57fc47eab8c1c73390b933a5ba9271f08e3e1ec83162c580357f28f5b97c/simplejson-3.20.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:78520f04b7548a5e476b5396c0847e066f1e0a4c0c5e920da1ad65e95f410b11", size = 140314 },
+    { url = "https://files.pythonhosted.org/packages/ad/cc/7cfd78d1e0fa5e57350b98cfe77353b6dfa13dce21afa4060e1019223852/simplejson-3.20.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f4bd49ecde87b0fe9f55cc971449a32832bca9910821f7072bbfae1155eaa007", size = 148544 },
+    { url = "https://files.pythonhosted.org/packages/63/26/1c894a1c2bd95dc8be0cf5a2fa73b0d173105b6ca18c90cb981ff10443d0/simplejson-3.20.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7eaae2b88eb5da53caaffdfa50e2e12022553949b88c0df4f9a9663609373f72", size = 141172 },
+    { url = "https://files.pythonhosted.org/packages/93/27/0717dccc10cd9988dbf1314def52ab32678a95a95328bb37cafacf499400/simplejson-3.20.1-cp310-cp310-win32.whl", hash = "sha256:e836fb88902799eac8debc2b642300748f4860a197fa3d9ea502112b6bb8e142", size = 74181 },
+    { url = "https://files.pythonhosted.org/packages/5f/af/593f896573f306519332d4287b1ab8b7b888c239bbd5159f7054d7055c2d/simplejson-3.20.1-cp310-cp310-win_amd64.whl", hash = "sha256:b122a19b552b212fc3b5b96fc5ce92333d4a9ac0a800803e1f17ebb16dac4be5", size = 75738 },
+    { url = "https://files.pythonhosted.org/packages/76/59/74bc90d1c051bc2432c96b34bd4e8036875ab58b4fcbe4d6a5a76985f853/simplejson-3.20.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:325b8c107253d3217e89d7b50c71015b5b31e2433e6c5bf38967b2f80630a8ca", size = 92132 },
+    { url = "https://files.pythonhosted.org/packages/71/c7/1970916e0c51794fff89f76da2f632aaf0b259b87753c88a8c409623d3e1/simplejson-3.20.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:88a7baa8211089b9e58d78fbc1b0b322103f3f3d459ff16f03a36cece0d0fcf0", size = 74956 },
+    { url = "https://files.pythonhosted.org/packages/c8/0d/98cc5909180463f1d75fac7180de62d4cdb4e82c4fef276b9e591979372c/simplejson-3.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:299b1007b8101d50d95bc0db1bf5c38dc372e85b504cf77f596462083ee77e3f", size = 74772 },
+    { url = "https://files.pythonhosted.org/packages/e1/94/a30a5211a90d67725a3e8fcc1c788189f2ae2ed2b96b63ed15d0b7f5d6bb/simplejson-3.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03ec618ed65caab48e81e3ed29586236a8e57daef792f1f3bb59504a7e98cd10", size = 143575 },
+    { url = "https://files.pythonhosted.org/packages/ee/08/cdb6821f1058eb5db46d252de69ff7e6c53f05f1bae6368fe20d5b51d37e/simplejson-3.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd2cdead1d3197f0ff43373cf4730213420523ba48697743e135e26f3d179f38", size = 153241 },
+    { url = "https://files.pythonhosted.org/packages/4c/2d/ca3caeea0bdc5efc5503d5f57a2dfb56804898fb196dfada121323ee0ccb/simplejson-3.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3466d2839fdc83e1af42e07b90bc8ff361c4e8796cd66722a40ba14e458faddd", size = 141500 },
+    { url = "https://files.pythonhosted.org/packages/e1/33/d3e0779d5c58245e7370c98eb969275af6b7a4a5aec3b97cbf85f09ad328/simplejson-3.20.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d492ed8e92f3a9f9be829205f44b1d0a89af6582f0cf43e0d129fa477b93fe0c", size = 144757 },
+    { url = "https://files.pythonhosted.org/packages/54/53/2d93128bb55861b2fa36c5944f38da51a0bc6d83e513afc6f7838440dd15/simplejson-3.20.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f924b485537b640dc69434565463fd6fc0c68c65a8c6e01a823dd26c9983cf79", size = 144409 },
+    { url = "https://files.pythonhosted.org/packages/99/4c/dac310a98f897ad3435b4bdc836d92e78f09e38c5dbf28211ed21dc59fa2/simplejson-3.20.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9e8eacf6a3491bf76ea91a8d46726368a6be0eb94993f60b8583550baae9439e", size = 146082 },
+    { url = "https://files.pythonhosted.org/packages/ee/22/d7ba958cfed39827335b82656b1c46f89678faecda9a7677b47e87b48ee6/simplejson-3.20.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d34d04bf90b4cea7c22d8b19091633908f14a096caa301b24c2f3d85b5068fb8", size = 154339 },
+    { url = "https://files.pythonhosted.org/packages/b8/c8/b072b741129406a7086a0799c6f5d13096231bf35fdd87a0cffa789687fc/simplejson-3.20.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:69dd28d4ce38390ea4aaf212902712c0fd1093dc4c1ff67e09687c3c3e15a749", size = 147915 },
+    { url = "https://files.pythonhosted.org/packages/6c/46/8347e61e9cf3db5342a42f7fd30a81b4f5cf85977f916852d7674a540907/simplejson-3.20.1-cp311-cp311-win32.whl", hash = "sha256:dfe7a9da5fd2a3499436cd350f31539e0a6ded5da6b5b3d422df016444d65e43", size = 73972 },
+    { url = "https://files.pythonhosted.org/packages/01/85/b52f24859237b4e9d523d5655796d911ba3d46e242eb1959c45b6af5aedd/simplejson-3.20.1-cp311-cp311-win_amd64.whl", hash = "sha256:896a6c04d7861d507d800da7642479c3547060bf97419d9ef73d98ced8258766", size = 75595 },
+    { url = "https://files.pythonhosted.org/packages/8d/eb/34c16a1ac9ba265d024dc977ad84e1659d931c0a700967c3e59a98ed7514/simplejson-3.20.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f31c4a3a7ab18467ee73a27f3e59158255d1520f3aad74315edde7a940f1be23", size = 93100 },
+    { url = "https://files.pythonhosted.org/packages/41/fc/2c2c007d135894971e6814e7c0806936e5bade28f8db4dd7e2a58b50debd/simplejson-3.20.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:884e6183d16b725e113b83a6fc0230152ab6627d4d36cb05c89c2c5bccfa7bc6", size = 75464 },
+    { url = "https://files.pythonhosted.org/packages/0f/05/2b5ecb33b776c34bb5cace5de5d7669f9b60e3ca13c113037b2ca86edfbd/simplejson-3.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03d7a426e416fe0d3337115f04164cd9427eb4256e843a6b8751cacf70abc832", size = 75112 },
+    { url = "https://files.pythonhosted.org/packages/fe/36/1f3609a2792f06cd4b71030485f78e91eb09cfd57bebf3116bf2980a8bac/simplejson-3.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:000602141d0bddfcff60ea6a6e97d5e10c9db6b17fd2d6c66199fa481b6214bb", size = 150182 },
+    { url = "https://files.pythonhosted.org/packages/2f/b0/053fbda38b8b602a77a4f7829def1b4f316cd8deb5440a6d3ee90790d2a4/simplejson-3.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:af8377a8af78226e82e3a4349efdde59ffa421ae88be67e18cef915e4023a595", size = 158363 },
+    { url = "https://files.pythonhosted.org/packages/d1/4b/2eb84ae867539a80822e92f9be4a7200dffba609275faf99b24141839110/simplejson-3.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:15c7de4c88ab2fbcb8781a3b982ef883696736134e20b1210bca43fb42ff1acf", size = 148415 },
+    { url = "https://files.pythonhosted.org/packages/e0/bd/400b0bd372a5666addf2540c7358bfc3841b9ce5cdbc5cc4ad2f61627ad8/simplejson-3.20.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:455a882ff3f97d810709f7b620007d4e0aca8da71d06fc5c18ba11daf1c4df49", size = 152213 },
+    { url = "https://files.pythonhosted.org/packages/50/12/143f447bf6a827ee9472693768dc1a5eb96154f8feb140a88ce6973a3cfa/simplejson-3.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:fc0f523ce923e7f38eb67804bc80e0a028c76d7868500aa3f59225574b5d0453", size = 150048 },
+    { url = "https://files.pythonhosted.org/packages/5e/ea/dd9b3e8e8ed710a66f24a22c16a907c9b539b6f5f45fd8586bd5c231444e/simplejson-3.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76461ec929282dde4a08061071a47281ad939d0202dc4e63cdd135844e162fbc", size = 151668 },
+    { url = "https://files.pythonhosted.org/packages/99/af/ee52a8045426a0c5b89d755a5a70cc821815ef3c333b56fbcad33c4435c0/simplejson-3.20.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ab19c2da8c043607bde4d4ef3a6b633e668a7d2e3d56f40a476a74c5ea71949f", size = 158840 },
+    { url = "https://files.pythonhosted.org/packages/68/db/ab32869acea6b5de7d75fa0dac07a112ded795d41eaa7e66c7813b17be95/simplejson-3.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b2578bedaedf6294415197b267d4ef678fea336dd78ee2a6d2f4b028e9d07be3", size = 154212 },
+    { url = "https://files.pythonhosted.org/packages/fa/7a/e3132d454977d75a3bf9a6d541d730f76462ebf42a96fea2621498166f41/simplejson-3.20.1-cp312-cp312-win32.whl", hash = "sha256:339f407373325a36b7fd744b688ba5bae0666b5d340ec6d98aebc3014bf3d8ea", size = 74101 },
+    { url = "https://files.pythonhosted.org/packages/bc/5d/4e243e937fa3560107c69f6f7c2eed8589163f5ed14324e864871daa2dd9/simplejson-3.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:627d4486a1ea7edf1f66bb044ace1ce6b4c1698acd1b05353c97ba4864ea2e17", size = 75736 },
+    { url = "https://files.pythonhosted.org/packages/c4/03/0f453a27877cb5a5fff16a975925f4119102cc8552f52536b9a98ef0431e/simplejson-3.20.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:71e849e7ceb2178344998cbe5ade101f1b329460243c79c27fbfc51c0447a7c3", size = 93109 },
+    { url = "https://files.pythonhosted.org/packages/74/1f/a729f4026850cabeaff23e134646c3f455e86925d2533463420635ae54de/simplejson-3.20.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b63fdbab29dc3868d6f009a59797cefaba315fd43cd32ddd998ee1da28e50e29", size = 75475 },
+    { url = "https://files.pythonhosted.org/packages/e2/14/50a2713fee8ff1f8d655b1a14f4a0f1c0c7246768a1b3b3d12964a4ed5aa/simplejson-3.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1190f9a3ce644fd50ec277ac4a98c0517f532cfebdcc4bd975c0979a9f05e1fb", size = 75112 },
+    { url = "https://files.pythonhosted.org/packages/45/86/ea9835abb646755140e2d482edc9bc1e91997ed19a59fd77ae4c6a0facea/simplejson-3.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1336ba7bcb722ad487cd265701ff0583c0bb6de638364ca947bb84ecc0015d1", size = 150245 },
+    { url = "https://files.pythonhosted.org/packages/12/b4/53084809faede45da829fe571c65fbda8479d2a5b9c633f46b74124d56f5/simplejson-3.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e975aac6a5acd8b510eba58d5591e10a03e3d16c1cf8a8624ca177491f7230f0", size = 158465 },
+    { url = "https://files.pythonhosted.org/packages/a9/7d/d56579468d1660b3841e1f21c14490d103e33cf911886b22652d6e9683ec/simplejson-3.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a6dd11ee282937ad749da6f3b8d87952ad585b26e5edfa10da3ae2536c73078", size = 148514 },
+    { url = "https://files.pythonhosted.org/packages/19/e3/874b1cca3d3897b486d3afdccc475eb3a09815bf1015b01cf7fcb52a55f0/simplejson-3.20.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab980fcc446ab87ea0879edad41a5c28f2d86020014eb035cf5161e8de4474c6", size = 152262 },
+    { url = "https://files.pythonhosted.org/packages/32/84/f0fdb3625292d945c2bd13a814584603aebdb38cfbe5fe9be6b46fe598c4/simplejson-3.20.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f5aee2a4cb6b146bd17333ac623610f069f34e8f31d2f4f0c1a2186e50c594f0", size = 150164 },
+    { url = "https://files.pythonhosted.org/packages/95/51/6d625247224f01eaaeabace9aec75ac5603a42f8ebcce02c486fbda8b428/simplejson-3.20.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:652d8eecbb9a3b6461b21ec7cf11fd0acbab144e45e600c817ecf18e4580b99e", size = 151795 },
+    { url = "https://files.pythonhosted.org/packages/7f/d9/bb921df6b35be8412f519e58e86d1060fddf3ad401b783e4862e0a74c4c1/simplejson-3.20.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:8c09948f1a486a89251ee3a67c9f8c969b379f6ffff1a6064b41fea3bce0a112", size = 159027 },
+    { url = "https://files.pythonhosted.org/packages/03/c5/5950605e4ad023a6621cf4c931b29fd3d2a9c1f36be937230bfc83d7271d/simplejson-3.20.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cbbd7b215ad4fc6f058b5dd4c26ee5c59f72e031dfda3ac183d7968a99e4ca3a", size = 154380 },
+    { url = "https://files.pythonhosted.org/packages/66/ad/b74149557c5ec1e4e4d55758bda426f5d2ec0123cd01a53ae63b8de51fa3/simplejson-3.20.1-cp313-cp313-win32.whl", hash = "sha256:ae81e482476eaa088ef9d0120ae5345de924f23962c0c1e20abbdff597631f87", size = 74102 },
+    { url = "https://files.pythonhosted.org/packages/db/a9/25282fdd24493e1022f30b7f5cdf804255c007218b2bfaa655bd7ad34b2d/simplejson-3.20.1-cp313-cp313-win_amd64.whl", hash = "sha256:1b9fd15853b90aec3b1739f4471efbf1ac05066a2c7041bf8db821bb73cd2ddc", size = 75736 },
+    { url = "https://files.pythonhosted.org/packages/4c/ba/d32fe890a5edaf4a8518adf043bccf7866b600123f512a6de0988cf36810/simplejson-3.20.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a8011f1dd1d676befcd4d675ebdbfdbbefd3bf350052b956ba8c699fca7d8cef", size = 93773 },
+    { url = "https://files.pythonhosted.org/packages/48/c7/361e7f6695b56001a04e0a5cc623cd6c82ea2f45e872e61213e405cc8a24/simplejson-3.20.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e91703a4c5fec53e36875ae426ad785f4120bd1d93b65bed4752eeccd1789e0c", size = 75697 },
+    { url = "https://files.pythonhosted.org/packages/3c/2f/d0ff0b772d4ef092876eb85c99bc591c446b0502715551dad7dfc7f7c2c0/simplejson-3.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e39eaa57c7757daa25bcd21f976c46be443b73dd6c3da47fe5ce7b7048ccefe2", size = 75692 },
+    { url = "https://files.pythonhosted.org/packages/26/94/cab4db9530b6ca9d62f16a260e8311b04130ccd670dab75e958fcb44590e/simplejson-3.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceab2ce2acdc7fbaa433a93006758db6ba9a659e80c4faa13b80b9d2318e9b17", size = 138106 },
+    { url = "https://files.pythonhosted.org/packages/40/22/11c0f746bdb44c297cea8a37d8f7ccb75ea6681132aadfb9f820d9a52647/simplejson-3.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6d4f320c33277a5b715db5bf5b10dae10c19076bd6d66c2843e04bd12d1f1ea5", size = 146242 },
+    { url = "https://files.pythonhosted.org/packages/78/e9/b7c4c26f29b41cc41ba5f0224c47adbfa7f28427418edfd58ab122f3b584/simplejson-3.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b6436c48e64378fa844d8c9e58a5ed0352bbcfd4028369a9b46679b7ab79d2d", size = 133866 },
+    { url = "https://files.pythonhosted.org/packages/09/68/1e81ed83f38906c8859f2b973afb19302357d6003e724a6105cee0f61ec7/simplejson-3.20.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e18345c8dda5d699be8166b61f9d80aaee4545b709f1363f60813dc032dac53", size = 137444 },
+    { url = "https://files.pythonhosted.org/packages/9a/6b/8d1e076c543277c1d603230eec24f4dd75ebce46d351c0679526d202981f/simplejson-3.20.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:90b573693d1526bed576f6817e2a492eaaef68f088b57d7a9e83d122bbb49e51", size = 139617 },
+    { url = "https://files.pythonhosted.org/packages/d1/46/7b74803de10d4157c5cd2e89028897fa733374667bc5520a44b23b6c887a/simplejson-3.20.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:272cc767826e924a6bd369ea3dbf18e166ded29059c7a4d64d21a9a22424b5b5", size = 139725 },
+    { url = "https://files.pythonhosted.org/packages/4b/8f/9991582665a7b6d95415e439bb4fbaa4faf0f77231666675a0fd1de54107/simplejson-3.20.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:51b41f284d603c4380732d7d619f8b34bd04bc4aa0ed0ed5f4ffd0539b14da44", size = 148010 },
+    { url = "https://files.pythonhosted.org/packages/54/ee/3c6e91989cdf65ec75e75662d9f15cfe167a792b893806169ea5b1da6fd2/simplejson-3.20.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6e6697a3067d281f01de0fe96fc7cba4ea870d96d7deb7bfcf85186d74456503", size = 140624 },
+    { url = "https://files.pythonhosted.org/packages/9d/bd/05e13ebb7ead81c8b555f4ccc741ea7dfa0ef5c2a0c183d6a7bc50a02bca/simplejson-3.20.1-cp39-cp39-win32.whl", hash = "sha256:6dd3a1d5aca87bf947f3339b0f8e8e329f1badf548bdbff37fac63c17936da8e", size = 74148 },
+    { url = "https://files.pythonhosted.org/packages/88/c9/d8bf87aaebec5a4c3ccfd5228689578e2fe77027d6114a259255d54969bf/simplejson-3.20.1-cp39-cp39-win_amd64.whl", hash = "sha256:463f1fca8fbf23d088e5850fdd0dd4d5faea8900a9f9680270bd98fd649814ca", size = 75732 },
+    { url = "https://files.pythonhosted.org/packages/4b/30/00f02a0a921556dd5a6db1ef2926a1bc7a8bbbfb1c49cfed68a275b8ab2b/simplejson-3.20.1-py3-none-any.whl", hash = "sha256:8a6c1bbac39fa4a79f83cbf1df6ccd8ff7069582a9fd8db1e52cea073bc2c697", size = 57121 },
+]
+
+[[package]]
+name = "tomli"
+version = "2.2.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249", size = 131077 },
+    { url = "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6", size = 123429 },
+    { url = "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a", size = 226067 },
+    { url = "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee", size = 236030 },
+    { url = "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e", size = 240898 },
+    { url = "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", size = 229894 },
+    { url = "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", size = 245319 },
+    { url = "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", size = 238273 },
+    { url = "https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff", size = 98310 },
+    { url = "https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b", size = 108309 },
+    { url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762 },
+    { url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453 },
+    { url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486 },
+    { url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", size = 242349 },
+    { url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", size = 252159 },
+    { url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243 },
+    { url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645 },
+    { url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584 },
+    { url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", size = 98875 },
+    { url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", size = 109418 },
+    { url = "https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7", size = 132708 },
+    { url = "https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c", size = 123582 },
+    { url = "https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13", size = 232543 },
+    { url = "https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281", size = 241691 },
+    { url = "https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272", size = 251170 },
+    { url = "https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140", size = 236530 },
+    { url = "https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2", size = 258666 },
+    { url = "https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744", size = 243954 },
+    { url = "https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec", size = 98724 },
+    { url = "https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69", size = 109383 },
+    { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257 },
+]
+
+[[package]]
+name = "typing-extensions"
+version = "4.13.2"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/f6/37/23083fcd6e35492953e8d2aaaa68b860eb422b34627b13f2ce3eb6106061/typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef", size = 106967 }
+wheels = [
+    { url = "https://files.pythonhosted.org/packages/8b/54/b1ae86c0973cc6f0210b53d508ca3641fb6d0c56823f288d108bc7ab3cc8/typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c", size = 45806 },
+]